Maschinelles Lernen (ML / Machine Learning) ist ein essentielles Kernstück der modernen Künstlichen Intelligenz (KI) und hilft unseren Programmen immer besser ("intelligenter") zu werden indem man wiederkehrend Erfahrungen (Daten) sammelt, die durch geschickte ML-Algorithmen viele nützliche Aufgaben wie z.B. Stimmungsanalyse, Objekt-Erkennung und Klassifikation, Preis- bzw. Verkaufsvorhersage uvm. erledigen lassen. Aber was muss man machen, um all das in einem .NET Programm zu ermöglichen - Python lernen, KI-Dienst konsumieren? Nicht unbedingt! Es gibt einen kürzeren Weg - ML.NET als ein open-source und plattformübergreifendes Framework für maschinelles Lernen, das speziell für .NET Entwickler gebaut ist. Damit kann jeder eigene ML-Modelle bauen, ohne vertrautes .NET Eco-System verlassen zu müssen. Teilnehmer dieser Session werden erfahren wie man typische KI-Aufgaben mit ML.NET schnell und einfach löst, spezifische Modelle mit einem brandneuen AutoML-Werkzeug ML.NET Model Builder erstellt und eine Brücke zu populären ML-Frameworks wie z.B. Tensorflow, Infer.NET, ONNX uvm. baut.
Infer.NET ist ein in C# geschriebenes open-source Framework, das die Bayes'sche Inferenz mittels probabilistischen Programmierens unter .NET ausführen lässt. Es bietet moderne Algorithmen und Routinen, um intelligente Features in die Apps einzubauen. Infer.NET hat hervorragende Merkmale, die dieses Framework auszeichnen - verschiedene Inferenz-Algorithmen, perfekte Skalierbarkeit, Plattform-Unabhängigkeit und Erweiterbarkeit. Mit modellbasiertem Ansatz lässt sich das Domänenwissen in ein Modell integrieren. Anstatt ein Problem einem bereits vorhandenen Lernalgorithmus zuzuordnen, wird es direkt aus jeweiligem Modell ein maßgeschneiderte ML-Algorithmus erstellt und als C#-Code generiert.
Anwendungsszenarien - Spam- und Daten-Eingabe Prüfung/Hervorsage, Programm-Verifikation, Personalisierung, Empfehlung, Rating, Beurteilung uvm.
Die Teilnehmer werden Infer.NET kennenlernen und dieses hervorragende Werkzeug in Praxis für ein- und ausbauen der intelligenten App-Features einsetzen können.
Machine Learning ist eine Art von Software-Entwicklung, bei der man nicht direkt Code schreibt, sondern ein Modell anhand von Daten trainiert. Das kann in Situationen von Vorteil sein, in denen man keinen passenden Code schreiben kann oder dieser extrem komplex werden würde. TensorFlow ist das bekannteste Framework im Bereich Neuronaler Netzwerke mit dem man solche Modell erzeugen und nutzen kann. TensorFlow.js (https://js.tensorflow.org/api/latest/) implementiert die volle API von TensorFlow mit JavaScript und erlaubt sowohl die Ausführung, als auch das Training von Neuronalen Netzwerken auf jeder GPU.
Im ersten Teil des Workshops werden wir ein Modell zur Bilderkennung in einer grafischen Webanwendung trainieren und in einer eigenen Anwendung zum Laufen bringen. Hier geht es um die Grundlagen von Machine Learning und den Teil der TensorFlow.js API zum Ausführen eines Modells.
Im zweiten Teil werden wir ein eigenes Modell mit der TensorFlow.js API trainieren und als Teil einer JS-Anwendung integrieren.
Es sind keine Vorkenntnisse nötig und zur Teilnahme wird lediglich eine beliebige IDE zur Entwicklung von JavaScript benötigt.
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...Amazon Web Services
Maschinelles Lernen: Chancen, Werkzeuge und Beispiel-Anwendungen für öffentliche Einrichtungen
Durch die Zusammenführung von innovativen Algorithmen, Big Data Methoden und leistungsfähiger Hardware wie GPUs hat das Maschinelle Lernen (ML) in den letzten Jahren einen großen Aufschwung erlebt. In diesem Vortrag betrachten wir Werkzeuge, Technologien und Beispiele für ML in der Cloud, von einfachen, API-gesteuerten Diensten für Bild-, Sprach- und Text-Erkennung und -Verstehen bis zu Forschungs- und Entwicklungs-Plattformen für Entwickler und Wissenschaftler im ML-Umfeld.
Sprecher: Constantin Gonzalez, Principal Solutions Architect - AWS
BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge...BATbern
AI oder ML Services werden in der Regel von Data Scientists
entwickelt, die gute Kenntnisse in Mathematik und Informatik
haben. Ein explorativer Ansatz ist erwünscht und häufige
Änderungen an der Codebasis werden erwartet. Mit
zunehmender Anzahl der Codezeilen wird es jedoch schwieriger,die Übersicht zu behalten und die Nachvollziehbarkeit wird zur Herausforderung. Um AI Modelle für einen breiten Einsatz zu implementieren und zu operationalisieren, benötigt es nicht nur gute Data Analytics-Fähigkeiten, sondern auch die Denkweise und Werkzeuge der traditionellen Softwareentwicklung. Nach einer Einführung in AI und Beispielen wie in einer modernen Versicherung AI-Funktionalität eingesetzt werden kann, wird mittels eines selbst gebauten autonomen Autos der Workflow bei der Erstellung von AI-Services erklärt.
Wie die Mobiliar den Workflow der Data Scientists und der
traditionellen Softwareentwicklung verbindet und wie Pythagoras (die Plattform für die Entwicklung und das Betreiben von AI-Services der Mobiliar) den AI Ansatz unterstützt, wird im zweiten Teil aufgezeigt. Die Verbindung von bewährten Konzepten mit der AI Modellentwicklung führt zu Analytics und AI as Code, die nächste Generation der Softwareentwicklung.
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungMarc Müller
DevOps ist derzeit in aller Munde und das IT-Buzzword schlecht hin. Doch was verbirgt sich genau hinter diesem Begriff? Es ist definitiv viel mehr als nur die verbesserte Zusammenarbeit zwischen Entwicklung und Betrieb. Agile Planung, kurze Releasezyklen, Automatisierung und das kontinuierliche Feedback sind zentrale Themen, mit denen sich jedes Entwicklungsteam heutzutage auseinandersetzen muss. Der Vortrag zeigt die Anforderungen und Herausforderungen an einen modernen und effizienten DevOps Prozess auf und untermauert diese mit Praxisbeispielen aus unserer langjährigen Beratertätigkeit.
Infer.NET ist ein in C# geschriebenes open-source Framework, das die Bayes'sche Inferenz mittels probabilistischen Programmierens unter .NET ausführen lässt. Es bietet moderne Algorithmen und Routinen, um intelligente Features in die Apps einzubauen. Infer.NET hat hervorragende Merkmale, die dieses Framework auszeichnen - verschiedene Inferenz-Algorithmen, perfekte Skalierbarkeit, Plattform-Unabhängigkeit und Erweiterbarkeit. Mit modellbasiertem Ansatz lässt sich das Domänenwissen in ein Modell integrieren. Anstatt ein Problem einem bereits vorhandenen Lernalgorithmus zuzuordnen, wird es direkt aus jeweiligem Modell ein maßgeschneiderte ML-Algorithmus erstellt und als C#-Code generiert.
Anwendungsszenarien - Spam- und Daten-Eingabe Prüfung/Hervorsage, Programm-Verifikation, Personalisierung, Empfehlung, Rating, Beurteilung uvm.
Die Teilnehmer werden Infer.NET kennenlernen und dieses hervorragende Werkzeug in Praxis für ein- und ausbauen der intelligenten App-Features einsetzen können.
Machine Learning ist eine Art von Software-Entwicklung, bei der man nicht direkt Code schreibt, sondern ein Modell anhand von Daten trainiert. Das kann in Situationen von Vorteil sein, in denen man keinen passenden Code schreiben kann oder dieser extrem komplex werden würde. TensorFlow ist das bekannteste Framework im Bereich Neuronaler Netzwerke mit dem man solche Modell erzeugen und nutzen kann. TensorFlow.js (https://js.tensorflow.org/api/latest/) implementiert die volle API von TensorFlow mit JavaScript und erlaubt sowohl die Ausführung, als auch das Training von Neuronalen Netzwerken auf jeder GPU.
Im ersten Teil des Workshops werden wir ein Modell zur Bilderkennung in einer grafischen Webanwendung trainieren und in einer eigenen Anwendung zum Laufen bringen. Hier geht es um die Grundlagen von Machine Learning und den Teil der TensorFlow.js API zum Ausführen eines Modells.
Im zweiten Teil werden wir ein eigenes Modell mit der TensorFlow.js API trainieren und als Teil einer JS-Anwendung integrieren.
Es sind keine Vorkenntnisse nötig und zur Teilnahme wird lediglich eine beliebige IDE zur Entwicklung von JavaScript benötigt.
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...Amazon Web Services
Maschinelles Lernen: Chancen, Werkzeuge und Beispiel-Anwendungen für öffentliche Einrichtungen
Durch die Zusammenführung von innovativen Algorithmen, Big Data Methoden und leistungsfähiger Hardware wie GPUs hat das Maschinelle Lernen (ML) in den letzten Jahren einen großen Aufschwung erlebt. In diesem Vortrag betrachten wir Werkzeuge, Technologien und Beispiele für ML in der Cloud, von einfachen, API-gesteuerten Diensten für Bild-, Sprach- und Text-Erkennung und -Verstehen bis zu Forschungs- und Entwicklungs-Plattformen für Entwickler und Wissenschaftler im ML-Umfeld.
Sprecher: Constantin Gonzalez, Principal Solutions Architect - AWS
BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge...BATbern
AI oder ML Services werden in der Regel von Data Scientists
entwickelt, die gute Kenntnisse in Mathematik und Informatik
haben. Ein explorativer Ansatz ist erwünscht und häufige
Änderungen an der Codebasis werden erwartet. Mit
zunehmender Anzahl der Codezeilen wird es jedoch schwieriger,die Übersicht zu behalten und die Nachvollziehbarkeit wird zur Herausforderung. Um AI Modelle für einen breiten Einsatz zu implementieren und zu operationalisieren, benötigt es nicht nur gute Data Analytics-Fähigkeiten, sondern auch die Denkweise und Werkzeuge der traditionellen Softwareentwicklung. Nach einer Einführung in AI und Beispielen wie in einer modernen Versicherung AI-Funktionalität eingesetzt werden kann, wird mittels eines selbst gebauten autonomen Autos der Workflow bei der Erstellung von AI-Services erklärt.
Wie die Mobiliar den Workflow der Data Scientists und der
traditionellen Softwareentwicklung verbindet und wie Pythagoras (die Plattform für die Entwicklung und das Betreiben von AI-Services der Mobiliar) den AI Ansatz unterstützt, wird im zweiten Teil aufgezeigt. Die Verbindung von bewährten Konzepten mit der AI Modellentwicklung führt zu Analytics und AI as Code, die nächste Generation der Softwareentwicklung.
DevDay 2016 Keynote - Die Evolution agiler Software EntwicklungMarc Müller
DevOps ist derzeit in aller Munde und das IT-Buzzword schlecht hin. Doch was verbirgt sich genau hinter diesem Begriff? Es ist definitiv viel mehr als nur die verbesserte Zusammenarbeit zwischen Entwicklung und Betrieb. Agile Planung, kurze Releasezyklen, Automatisierung und das kontinuierliche Feedback sind zentrale Themen, mit denen sich jedes Entwicklungsteam heutzutage auseinandersetzen muss. Der Vortrag zeigt die Anforderungen und Herausforderungen an einen modernen und effizienten DevOps Prozess auf und untermauert diese mit Praxisbeispielen aus unserer langjährigen Beratertätigkeit.
JavaScript: Von einfachen Scripten zu komplexen Anwendungenmolily
Folien-Download, Videomitschnitt und Linksammlung unter:
http://molily.de/mmt28
JavaScript hat sich von einer beschränkten Scriptsprache zu einer mächtigen Sprache entwickelt, in der umfangreiche clientseitige Anwendungen geschrieben werden. Doch der Sprung von einfachem DOM-Scripting mit Hilfsmittel wie jQuery zu komplexen Anwendungen ist schwierig und verlangt Know-How. Der Vortrag gibt einen Einblick in aktuelle Konzepte und Techniken, die Struktur in die Entwicklung von JavaScript-Anwendungen bringen.
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
AndroMDA ist ein freiverfügbarer erweiterbarer Generatorbaukasten in Anlehnung an die Spezifikationen zur Model Driven Architecture (MDA) der Object Management Group (OMG). Aus UML-Modellen wird Code für beliebige Zielplattformen erzeugt. Anders als andere MDA-Toolkits bringt AndroMDA fertige Cartridges für aktuelle Entwicklungsplattformen wie Struts, JSF, Spring, Hibernate, EJB und jBPM mit. Weiterhin besteht zusätzlich die Möglichkeit zur Erstellung eigener Cartridges.
Nach einer kurzen Einführung in MDA gibt der Vortrag einen Überblick über AndroMDA und erläutert die Architektur und Grundprinzipien. Die Möglichkeiten des Toolkits werden anhand einer Web-Anwendung für Pizza-Bestellungen erklärt. Anschließend besteht die Möglichkeit zur Diskussion und zum Erfahrungsaustausch aus Projekten.
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
This is the presentation I held during the oral exam of my Bachelor Thesis.
The presentation is about where we can find expert knowledge around the internet and how we can excerpt this knowledge and use it as a basis for a Case-Based Reasoning system.
The second part of the thesis shows which principles of Software Engineering are used to implement an extraction prototype into a sophisticated development tool for CBR-systems.
The slides are provided in German.
Machine Learning - Eine Einführung der COMLINE Business ConsultingChristian Guenther
Maschinelles Lernen ist eines der heißesten Topics im IT- und Business-Umfeld. Aber was heißt maschinelles Lernen? Was ist Künstliche Intelligenz und wie integriert man so etwas in seine eigenen Prozesse und IT-Landschaft?
Splunk Software ermöglicht den Interessierten unter uns, das anzusehen, was andere ignorieren - Maschinendaten - und das zu finden, was andere niemals sehen - wertvolle Einblicke, durch die Ihr Team und Unternehmen produktiver, profitabler, wettbewerbsfähiger und sicherer wird.
Sind Sie schon neugierig, welche Informationen in Ihren Maschinendaten stecken?
In diesem Webinar zeigen wir Ihnen, wie Sie in Splunk mit Hilfe von Machine Learning noch mehr Erkenntnisse aus Ihren Daten ziehen können und in folgenden Einsatzszenarien nutzbar machen können:
- Einstieg in Machine Learning in Splunk
- Clustering von Events
- Verfahren zur Erkennung von Anomalien
- Vorhersagemodelle z.B. für Kapazitäts- und Auslastungsplanung
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2001 hervorzusagen. Auf der Liste sind:
- UML
- .NET/C#
- SOAP
- P2P
- DivX ;-)
- UMTS
- RDF
- Micropayments
- XForms
- Spracherkennung/VoiceXML
Weitere ähnliche Inhalte
Ähnlich wie DWX 2019 Session. Machine Learning in .NET
JavaScript: Von einfachen Scripten zu komplexen Anwendungenmolily
Folien-Download, Videomitschnitt und Linksammlung unter:
http://molily.de/mmt28
JavaScript hat sich von einer beschränkten Scriptsprache zu einer mächtigen Sprache entwickelt, in der umfangreiche clientseitige Anwendungen geschrieben werden. Doch der Sprung von einfachem DOM-Scripting mit Hilfsmittel wie jQuery zu komplexen Anwendungen ist schwierig und verlangt Know-How. Der Vortrag gibt einen Einblick in aktuelle Konzepte und Techniken, die Struktur in die Entwicklung von JavaScript-Anwendungen bringen.
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
AndroMDA ist ein freiverfügbarer erweiterbarer Generatorbaukasten in Anlehnung an die Spezifikationen zur Model Driven Architecture (MDA) der Object Management Group (OMG). Aus UML-Modellen wird Code für beliebige Zielplattformen erzeugt. Anders als andere MDA-Toolkits bringt AndroMDA fertige Cartridges für aktuelle Entwicklungsplattformen wie Struts, JSF, Spring, Hibernate, EJB und jBPM mit. Weiterhin besteht zusätzlich die Möglichkeit zur Erstellung eigener Cartridges.
Nach einer kurzen Einführung in MDA gibt der Vortrag einen Überblick über AndroMDA und erläutert die Architektur und Grundprinzipien. Die Möglichkeiten des Toolkits werden anhand einer Web-Anwendung für Pizza-Bestellungen erklärt. Anschließend besteht die Möglichkeit zur Diskussion und zum Erfahrungsaustausch aus Projekten.
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
This is the presentation I held during the oral exam of my Bachelor Thesis.
The presentation is about where we can find expert knowledge around the internet and how we can excerpt this knowledge and use it as a basis for a Case-Based Reasoning system.
The second part of the thesis shows which principles of Software Engineering are used to implement an extraction prototype into a sophisticated development tool for CBR-systems.
The slides are provided in German.
Machine Learning - Eine Einführung der COMLINE Business ConsultingChristian Guenther
Maschinelles Lernen ist eines der heißesten Topics im IT- und Business-Umfeld. Aber was heißt maschinelles Lernen? Was ist Künstliche Intelligenz und wie integriert man so etwas in seine eigenen Prozesse und IT-Landschaft?
Splunk Software ermöglicht den Interessierten unter uns, das anzusehen, was andere ignorieren - Maschinendaten - und das zu finden, was andere niemals sehen - wertvolle Einblicke, durch die Ihr Team und Unternehmen produktiver, profitabler, wettbewerbsfähiger und sicherer wird.
Sind Sie schon neugierig, welche Informationen in Ihren Maschinendaten stecken?
In diesem Webinar zeigen wir Ihnen, wie Sie in Splunk mit Hilfe von Machine Learning noch mehr Erkenntnisse aus Ihren Daten ziehen können und in folgenden Einsatzszenarien nutzbar machen können:
- Einstieg in Machine Learning in Splunk
- Clustering von Events
- Verfahren zur Erkennung von Anomalien
- Vorhersagemodelle z.B. für Kapazitäts- und Auslastungsplanung
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2001 hervorzusagen. Auf der Liste sind:
- UML
- .NET/C#
- SOAP
- P2P
- DivX ;-)
- UMTS
- RDF
- Micropayments
- XForms
- Spracherkennung/VoiceXML
Ähnlich wie DWX 2019 Session. Machine Learning in .NET (20)
1. Machine Learning in .NET
Das Nicht-Programmierbare “programmieren“!
Drei Episoden von Machine Learning mit ML.NET
Mykola Dobrochynskyy
Software Factories, 2019
ceo@soft-fact.de
1
2. 2
Agenda
• Einführung – Machine Learning und
ML.NET
• Episode 1. ML in .NET Apps integrieren
• Episode 2. Automated ML – ML.NET
Model-Builder und ML.NET CLI
• Episode 3. ML.NET Erweiterung mit
Tensorflow und ONNX Bibliotheken
6. Das neue KI Paradigma – die Programmierung
durch Training ersetzen
6
Was ist ML?
7. AI, ML & Deep Learning Ontology
7 Source: www.deeplearningbook.org
Was ist ML?
8. Machine Learning - Definition
Maschinelles Lernen (ML) ist ein allgemeiner Begriff für die
künstliche Generierung von Wissen aus Erfahrung.
Ein ML System lernt aus Beispielen und kann
nach Abschluss der Lernphase verallgemeinern. D.h. es
merkt sich nicht nur die Datenbeispiele, sondern erkennt sie
in den gelernten Daten als Regelmäßigkeiten.
Definition vom Maschinellen Lernen nach Thomas Mitchell
lautet:
"A computer program is said to learn from experience E with
respect to some class of tasks T and performance measure P if
its performance at tasks in T, as measured by P, improves with
experience E".
Was ist ML?
9. 9
5 Fragen an ML
1. Ist dies A oder B (C,D,E…)? - Classification
2. Wie viel – oder – wie viele? (Regression)
3. Wie ist dies organisiert? (Clustering)
4. Ist dies merkwürdig? (Anomaly detection)
5. Was soll ich als Nächstes tun? (Reinforcement)
10. 10
ML Fragen 1. – 4.
Vier Machine Learning Tasks werden von ML.NET unterstützt –
Klassifizierung, Regression, Clustering und Anomalie-Entdeckung
11. Microsoft Machine Learning.
Cloud-basierte Optionen
11
Cloudoptionen Funktionsbeschreibung Gebotene Möglichkeiten
Azure Machine
Learning Service
Verwalteter Clouddienst für ML Trainieren, Bereitstellen und
Verwalten von Modellen in Azure
mithilfe von Python und CLI
Azure Machine Learning
Studio
Visuelle Drag-&-Drop-Oberfläche
für ML
Erstellen von, Experimentieren
mit und Bereitstellen von
Modellen mithilfe von
vorkonfigurierten Algorithmen
(Python und R)
Azure Databricks
Spark-basierte Analyseplattform Erstellen und Bereitstellen von
Modellen und Datenworkflows
Azure
Cognitive Services
Azure-Dienste mit
vorkonfigurierten KI- und ML-
Modellen
Fügen Sie Ihren Apps auf einfache
Weise intelligente Features hinzu
Azure Data Science
Virtual Machine
Virtueller Computer mit
vorinstallierten Data Science-
Tools
Entwickeln von ML-Lösungen in
einer vorkonfigurierten
Umgebung
Microsoft ML
On-Cloud
12. Microsoft Machine Learning.
Lokale Optionen
12
Lokale Optionen Funktionsbeschreibung Gebotene Möglichkeiten
SQL Server Machine Learning
Services
In SQL eingebettete
Analyse-Engine
Erstellen und Bereitstellen
von Modellen innerhalb
von SQL Server
Microsoft Machine Learning
Server
Eigenständiger
Enterprise-Server für
prädiktive Analyse
Erstellen und Bereitstellen
von Modellen mit R und
Python
Microsoft ML
On-Premise
13. Microsoft Machine Learning.
Entwicklungsplattformen & Tools
13
Entwicklungstools Funktionsbeschreibung Gebotene Möglichkeiten
ML.NET
Plattform-übergreifendes
Open-Source Machine
Learning Framework
Entwickeln von ML-Lösungen für .NET-
Anwendungen mit ML-API
Infer.NET
Plattformübergreifendes
Open-Source Machine
Learning Framework (wird
in ML.NET integriert)
Bayessche Inferenz in graphischen Modellen
und probabilistische Programmierung mit C#
auf .NET und .NET Core Plattformen
Das Microsoft Cognitive
Toolkit (CNTK) ist ein
Open-Source-Bibliothek
für Deep Learning.
Erlaubt es populäre Deep Learning Modelle
wie z.B. Multi-layer Perceptrons (MLPs),
Convolutional Neural Networks (CNNs),
Recurrent Neural Networks (RNNs/LSTMs) zu
realisieren und kombinieren.
Windows AI / ML
Windows 10 Machine
Learning Plattform
Auswerten von trainierten ONNX-Modellen
auf einem Windows 10-Gerät
Microsoft ML
Libs & Tools
15. Warum (aus .NET perspektive) reichen
“konventionelle” Mittel wie ML Dienste oder mit
Python erstellte ML Modelle manchmal nicht?
Frage ans
Publikum
16. ML.NET
Merkmale
Ein Machine Learning Framework gemacht
für .NET Entwickler
.NET Skills wiederverwenden Solide und skalierbar
Custom Models, Auto ML, Builder / CLI Erweiterungen & Anbindungen
.NET Core basiert Open-source, erweiterbar
17. ML.NET 1.0
(Rel. 06.05.2019)
Get started: dot.net/ml
GitHub: github.com/dotnet/machinelearning
Ein Open-Source Framework für Benutzer-
spezifische Machine Learning Modelle
21. 21
Cognitive Services
vs. ML.NET Custom
Model
Test-Bild: dog1.jpg
Vorhersage von Azure Machine Vision API
Vorhersage von
ML.NET
Custom Model
s. Demo-Projekt
TensorFlowEstimator
24. 24
2 - Comment 0 - Label (Toxic)
== Are you a female????? ==
mootmootmootmootmootmootmootmootmootmo
ot
1
:::::Good enough for me; thanks for the info. I'll
check the Sheffield references later.
0
There's probably at least a website somewhere that
you could cite.
0
SUZANNE IS A LOSER!!! 1
Features (input) Label (output)
Stimmungsanalyse.
Features & Labels
Episode 1.
ML in .NET Apps
26. 26
Machine Learning Workflow
Episode 1.
ML in .NET Apps
Daten aufbereiten:
• Laden
• Feature extrahieren
Build & Train:
• Modell trainieren
• Modell auswerten
Ausführen:
• Modell anwenden
• Workflow-Zyklus
ggf. wiederholen
27. 27
Wichtige Konzepte. ML-Kontext
Episode 1.
ML in .NET Apps
// ML.NET Namespace
using Microsoft.ML;
// STEP 1.
// Create MLContext to be shared across the model
// creation workflow objects
// Set a random seed for repeatable/deterministic
// results across multiple trainings.
var mlContext = new MLContext(seed: 1);
28. 28
Wichtige Konzepte.
Geschäftsobjekt (POCO)
Episode 1.
ML in .NET Apps
public class SentimentIssue
{
[LoadColumn(0)]
public bool Label { get; set; }
[LoadColumn(2)]
public string Text { get; set; }
}
Label rev_id comment year logged_in ns sample split
0
66667
4821
==He is a Rapist!!!!!== Please
edit the article to include this
important fact. Thank You.
Preceding unsigned comment
added by 2015 True article blocked train
1
24297
552
== Are you a female????? ==
mootmootmootmootmootmoo
tmootmootmootmoot 2005 False article random train
Datenauszug:
29. 29
Wichtige Konzepte. Daten
Episode 1.
ML in .NET Apps
// STEP 2: Common data loading configuration
IDataView dataView =
mlContext.Data.LoadFromTextFile<SentimentIssue>(
DataPath, hasHeader: true);
// Traing/Test data split 80% to 20% respectively
TrainTestData trainTestSplit =
mlContext.Data.TrainTestSplit(
dataView, testFraction: 0.2);
IDataView trainingData = trainTestSplit.TrainSet;
IDataView testData = trainTestSplit.TestSet;
30. 30
Wichtige Konzepte. Transformer
Episode 1.
ML in .NET Apps
// STEP 3: Common data process configuration
// with pipeline data transformations
var dataProcessPipeline =
mlContext.Transforms.Text.FeaturizeText(
outputColumnName: "Features",
inputColumnName:
nameof(SentimentIssue.Text));
Text Featurizer
Featurized Text
[0.76, 0.65, 0.44, …]
[0.98, 0.43, 0.54, …]
[0.35, 0.73, 0.46, …]
[0.39, 0, 0.75, …]
Text
==RUDE== Dude, you are rude …
== OK! == IM GOING TO VANDALIZE …
I also found use of the word "humanists” …
Oooooh thank you Mr. DietLime …
31. 31
Wichtige Konzepte.
Trainer & Estimator
Episode 1.
ML in .NET Apps
// STEP 4: Set the training algorithm, then create and
config the modelBuilder
var trainer = mlContext.BinaryClassification
.Trainers.SdcaLogisticRegression(
labelColumnName: "Label",
featureColumnName: "Features");
var trainingPipeline =
dataProcessPipeline.Append(trainer);
32. 32
Wichtige Konzepte.
Modell trainieren und auswerten
Episode 1.
ML in .NET Apps
// STEP 5: Train the model fitting to the DataSet
ITransformer trainedModel =
trainingPipeline.Fit(trainingData);
// STEP 6: Evaluate the model with the test data
// and show accuracy stats
var predictions = trainedModel.Transform(testData);
var metrics =
mlContext.BinaryClassification.Evaluate(
data: predictions,
labelColumnName: "Label",
scoreColumnName: "Score");
33. 33
Wichtige Konzepte.
Modell speichern / laden
Episode 1.
ML in .NET Apps
// STEP 7.1: Save/persist the trained model
// to a .ZIP file
mlContext.Model.Save(
trainedModel, trainingData.Schema, ModelPath);
// STEP 7.2: Load saved Model
DataViewSchema loadedSchema;
var loadedTrainedModel =
mlContext.Model.Load(
ModelPath, out loadedSchema);
34. 34
Wichtige Konzepte.
Run Predictions
Episode 1.
ML in .NET Apps
// TRY IT: Make a single test prediction after loading the
// model from a .ZIP file
SentimentIssue sampleStatement1 =
new SentimentIssue {
Text = "This is a very rude movie" };
// Create prediction engine related
// to the loaded trained model
var predEngine = mlContext.Model.CreatePredictionEngine
<SentimentIssue, SentimentPrediction>(loadedTrainedModel);
// Score 1
var resultprediction1 = predEngine.Predict(sampleStatement1);
Console.WriteLine($"Text: {sampleStatement1.Text} | Prediction:
{(Convert.ToBoolean(resultprediction1.Prediction) ? "Toxic" : "Non
Toxic")} sentiment | Probability of being toxic:
{resultprediction1.Probability} ");
40. 40
Automated Machine Learning
(Auto-ML)
• Aktuell als Preview-Version verfügbar
• Erstellt automatisch ML Modelle mit am besten
passenden Trainer (Algorithmus) und Einstellungen
• Wird lokal ausgeführt und unterstützt 3 ML
Aufgaben – Regression, Binäre und Multi-
Klassifizierung
• Wird in drei Varianten zur Verfügung gestellt:
• ML.NET Model Builder
• ML.NET CLI
• ML.NET AutoML API (für ISVs)
Mehr auf: aka.ms/dotnetmodelbuilder und aka.ms/mlnet-cli
Episode 2.
Auto-ML
47. Warum hätte man ML.NET
erweitern sollen / müssen?
Frage ans
Publikum
48. 48
Episode 3.
ML.NET Extensions
• Fortgeschrittene DeepLearning Features wie Computer Vision, Speech
Recognition, Natural Language Processing (NLP), Translation etc. mit
Tensorflow / ONNX-Modellen
• Probabilistische Programmierung, Modell-basierte ML (Geschäfts-
/Problem-Modell) mit Infer.NET (nächste Session!)
• Wiederverwendung der vortrainierten Modellen – re-use, customize,
Transfer Learning*
* - „Transfer learning is a machine learning method where a model developed for a
task is reused as the starting point for a model on a second task.”
50. 50
Episode 3.
ML.NET Extensions
Episode 3. Demo*
ML.NET Erweiterung mit
Tensorflow und ONNX Bibliotheken
– Beispiel-Projekte unter
TensorFlowEstimator.Solution und
ObjectDection(E2E).Solution
* Es wird den Teilnehmern empfohlen selbst mit den
Beispiel-Lösungen zu „spielen“ ;)
51. 51
Links
1. ML.NET Home: https://dot.net/ml
2. ML.NET Tutorials:
https://dotnet.microsoft.com/learn/machinelearning-ai/ml-
dotnet-get-started-tutorial/next
3. ML.NET Dokumentation: https://docs.microsoft.com/de-
de/dotnet/machine-learning/
4. ML.NET Model Builder: aka.ms/dotnetmodelbuilder
5. ML.NET CLI: aka.ms/mlnet-cli
6. ML.NET 1.0 Code on GitHub:
https://github.com/dotnet/machinelearning/
7. ML.NET Samples on GitHub:
https://github.com/dotnet/machinelearning-samples
8. Blog Cesar De la Torre (PPM ML.NETI):
https://devblogs.microsoft.com/dotnet/author/cesardl/
9. ML.NET Session on YouTube
52. 52
Zusammenfassung
• ML.NET als ein open-source und plattformübergreifendes Framework
für maschinelles Lernen, das speziell für .NET Entwickler gebaut ist.
• Damit kann jeder eigene Machine Learning Modelle bauen, trainieren
und anwenden, ohne vertrautes .NET Eco-System verlassen zu müssen.
• ML.NET lässt typische KI-Aufgaben wie Stimmungsanalyse, Bild-
Klassifizierung, Objekterkennung, Preis- und Verkaufsvorhersage,
Empfehlung, Segmentierung, Betrugsentdeckung uvm. schnell und
einfach lösen.
• Benutzer-spezifische Modelle mit optimalen Parametern können mit
einem brandneuen AutoML-Werkzeug und dem Model Builder
generiert werden (derzeit in Preview).
• Anbindung an andere ML-Frameworks wie z.B. Tensorflow, Infer.NET,
sowie alle andere mit ONNX-Standard – MXNet, PyTorch, Caffe2,
Matlab, Chainer, CNTK , Accord.NET uvm.
• Solide und gut skaliert – wird unter anderem von Bing, Outlook, Excel,
PowerPoint (Design Ideen), PowerBI, Windows 10 (Microsoft Defender)
uvm. verwendet.