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.
4. Microsoft Machine Learning.
Cloud-basierte Optionen
4
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
5. Microsoft Machine Learning.
Lokale Optionen
5
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
6. Microsoft Machine Learning.
Entwicklungsplattformen & Tools
6
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
7. 7
Microsoft 09.10.2018, 10:20 Uhr
Infer.NET: Machine Learning Framework wird Open Source
Das Machine Learning Framework Infer.NET von Microsoft
wird als Open Source veröffentlicht.
Geschichte
Infer.NET Projekt wird bei Microsoft Research in Cambridge
(GB) am 15 Okt. 2018 gestartet.
… und 10 Jahre später als Open-Source Projekt und Teil von
ML.NET veröffentlicht.
9. 9
Klassische ML
Algorithmen
logistic regression
Deep Learning
principal components
Boltzmann machines
SVMs (support vector
machines)
HMM
Gaussian mixture
Kalman filter
deep neural networks – FFN,
RNN/LSTM, GAN
decision trees
RVM
linear regression
Radial basis functions
Gaussian process
factor analysis
Markov random field
K-means clustering
kernel PCA
random forest
10. Wie unterscheidet sich ein
“klassisches” ML-Modell von einem
MBML-Modell?
Frage ans
Publikum
11. 11
Schritt 2.
MBML
• Ziel: Ein einheitliches Framework, das die Erstellung einer breiten
Palette von maßgeschneiderten Modellen unterstützt.
• Algorithmus-basiert (klassisch): "Wie kann ich mein Problem zu
einem Standard-Algorithmus zuordnen"? (Als Modell wird
passender Algorithmus ggf. mit antrainierten Parametern
verstanden)
• Modellbasiert (MBML): "Was ist das Modell, das mein Problem
darstellt"?
Modell-basiertes Machine Learning
12. 12
Schritt 2.
MBML
Einige potentielle Vorteile von
MBML
• Optimierte Modelle Für jede neue Anwendung
• Transparente Funktionalität
- Modelle, als kompakter C# Code ausgedrückt
- Sammlung von Modell-Buildern
• Trennung des MBML-Modell vom Trainings-
/Inferenzcode
• Neue Team-Mitglieder, die Modellierung-
Umgebung erlernen produzieren "richtigen Code"
automatisch
13. 13
Schritt 2.
MBML
Einige potentielle Vorteile von
MBML
• Optimierte Modelle Für jede neue Anwendung
• Transparente Funktionalität
- Modelle, als kompakter C# Code ausgedrückt
- Sammlung von Modell-Buildern
• Trennung des MBML-Modell vom Trainings-
/Inferenzcode
• Neue Team-Mitglieder, die Modellierung-
Umgebung erlernen produzieren "richtigen Code"
automatisch
14. 14
Schritt 2.
MBML
Intelligente Software
Player skill Filmeinstellungen Wörter
Kann durch ein Modell beschrieben werden
Spielergebnis TinteRatings
Ziel: Software, die sich anpassen, lernen
und begründen kann
15. 15
Schritt 2.
MBML
Intelligente Software
Ziel: Software, die sich anpassen, lernen
und begründen kann
Spielergebnis TinteRatings
Argumentation
rückwärts
Player skill Filmeinstellungen Wörter
16. 16
Agenda
Schritt 3. Ungewissheit
„I think it is much more interesting to live not knowing,
than have answers which might be wrong“
R. Feynman about Ucertainty of Knowing
17. 17
Schritt 3.
Ungewissheit
Mit Ungewissheit handeln
• Wir sind unsicher über die Fähigkeit
eines Spielers (s. vorletzte Folie).
• Jedes Ergebnis liefert relevante
Informationen, aber wir sind nie ganz
sicher
• Wie können wir mit den Unsicherheiten
grundsätzlich rechnen?
18. 18
Schritt 3.
Ungewissheit
Ungewissheit ist überall
• Welchen Film sollte der Benutzer als
nächstes ansehen?
• Welches Wort hat der Benutzer
geschrieben?
• Was hat der Benutzer gesagt?
• Welche Webseite versucht der Benutzer zu
finden?
• Auf welchen Link klickt der Nutzer?
• Welche Art von Produkt möchte der
Benutzer kaufen?
• Welche Geste macht der Benutzer?
• Und so weiter und so fort ...
25. 25
Schritt 4.
Wahrscheinlichkeiten
oder dem Täter auf der Spur
Wer hat der Schatz gestohlen?
Täter-Ermittlung
Beobachtung: Nur Direktors PKW hat das Museumsgelände verlassen
P(Täter= Direktor | Wagen = Dir.-privat) = P(Wagen=Dir.-privat | Täter=Direktor) * P(Täter=Direktor) / P(Wagen = Dir.-privat)
= 0,7 * 0,3 / 0,245 = 0,857 (85,7%)
26. 26
Schritt 4.
Wahrscheinlichkeiten
oder dem Täter auf der Spur
Ermittlungs-Formel allgemein.
Satz von Bayes
P(Täter | Wagen) = P(Wagen | Täter) * P(Täter) / P(Wagen)
Satz von Bayes
Der Satz von Bayes (auch als Formel von Bayes oder Bayes-Theorem bekannt) ist ein mathematischer
Satz aus der Wahrscheinlichkeitstheorie, der die Berechnung bedingter Wahrscheinlichkeiten
beschreibt. Er ist nach dem englischen Mathematiker Thomas Bayes benannt, der ihn erstmals in
einem Spezialfall in der 1763 veröffentlichten Abhandlung "An Essay Towards Solving a Problem in the
Doctrine of Chances" beschrieb.
Für zwei Ereignisse A und B mit einer Wahrscheinlichkeit P(B) > 0 lässt sich die Wahrscheinlichkeit von
A unter der Bedingung, dass B eingetreten ist – P(A|B), durch die Wahrscheinlichkeit von B unter der
Bedingung, dass A eingetreten ist – P(B|A), wie folgt errechnen:
P(A|B) = P(B|A) * P(A) / P(B)
dabei sind P(A) und P(B) die A-priori (unbedingte) Wahrscheinlichkeiten der jeweiligen Ereignissen A
und B.
Bayes-Satz erlaubt es die Schlussfolgerungen umzukehren. Man geht von einem bekannten bedingten
Ereignis mit einer Wahrscheinlichkeit P(B|A) aus, das beobachtet, gemessen usw. werden kann und
errechnet mit Bayes-Formel die Wahrscheinlichkeit des unbekannten bedingten Ereignisses P(A|B). Zum
Beispiel man möchte die Wahrscheinlichkeit der Schwangerschaft ermitteln, nachdem man ein
Schwangerschaft-Schnelltest durchgeführt (beobachtet) hat.
Wenn „Täter“ als „A“ und „Wagen“ als „B“ bezeichnen würde bekommt man
einen Bayes-Satz.
41. 41
Schritt 10.
Zusammenfassung
• 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.