Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DWX 2019 Session. Machine Learning in .NET

104 views

Published on

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.

Published in: Software
  • DOWNLOAD FULL eBOOK INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

DWX 2019 Session. Machine Learning in .NET

  1. 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. 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
  3. 3. 3 Agenda Einführung. Machine Learning und ML.NET
  4. 4. Was ist Machine Learning? Frage ans Publikum
  5. 5. Das Nicht-Programmierbare „programmieren“ 5 f(x) {Frage ans Publikum Wie man eine Funktion in einem Computer-Programm umsetzt, welche ausgibt, was sie auf dem Bild „sieht“
  6. 6. Das neue KI Paradigma – die Programmierung durch Training ersetzen 6 Was ist ML?
  7. 7. AI, ML & Deep Learning Ontology 7 Source: www.deeplearningbook.org Was ist ML?
  8. 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. 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. 10 ML Fragen 1. – 4. Vier Machine Learning Tasks werden von ML.NET unterstützt – Klassifizierung, Regression, Clustering und Anomalie-Entdeckung
  11. 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. 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. 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
  14. 14. 14 .NET als “Alleskönner” DESKTOP .NET WEB CLOUD MOBILE GAMING IoT ML
  15. 15. Warum (aus .NET perspektive) reichen “konventionelle” Mittel wie ML Dienste oder mit Python erstellte ML Modelle manchmal nicht? Frage ans Publikum
  16. 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. 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
  18. 18. 18 ML.NET Framework Ein Framework für Benutzer-spezifische Machine Learning Modelle
  19. 19. 19 Pre-built vs. Custom-Models Vorgefertigtes (pre-built) Modell von Azure Cognitive Services * Au
  20. 20. 20 Pre-built vs. Custom-Models Benutzer-spezifisches (custom) Modell mit ML.NET See/Show Demo-Project: SentimentAnalysisConsoleApp
  21. 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
  22. 22. 22 Was kann ich mit ML.NET machen
  23. 23. 23 Episode 1. Agenda Episode 1. Stimmungsanalyse (aka Sentiment Analysis)
  24. 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
  25. 25. 25 Stimmungsanalyse. Analyse der ML-Aufgabe Episode 1. ML in .NET Apps Fazit: eine Aufgabe der binären Klassifizierung Ist es A or B ? Fragestellung: Toxischer Inhalt Ja(1) oder Nein (0)
  26. 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. 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. 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. 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. 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. 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. 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. 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. 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} ");
  35. 35. 35 Episode 1. ML in .NET Apps Episode 1. Stimmungsanalyse Demo 1.
  36. 36. 36 Episode 2. Agenda Episode 2. Automated Machine Learning (Auto-ML)
  37. 37. 37 Episode 2. Auto-ML Welcher ML Algorithmus (Trainer) passt am besten?
  38. 38. 38 Welche Hyperparameter sind richtig / optimal ? Episode 2. Auto-ML
  39. 39. 39 Episode 2. Auto-ML Episode 2. Automated Machine Learning (Auto-ML)
  40. 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
  41. 41. 41 Episode 2. Auto-ML Model Builder Demo – ML.NET Model Builder
  42. 42. 42 Episode 2. Auto-ML Evaluation Metrics
  43. 43. 43 Episode 2. Auto-ML ML.NET CLI ML.NET CLI - Installation Installation via CLI Installation prüfen
  44. 44. 44 Episode 2. Auto-ML ML.NET CLI ML.NET CLI – ML Lösung generieren Derzeit werden folgende ML-Aufgaben von der ML.NET-CLI unterstützt: • Binärklassifikation • Multiklassifizierung • Regression In Zukunft: Weitere maschinelle Lernaufgaben wie Empfehlung, Ranking, Anomalie-Erkennung, Clustering
  45. 45. 45 Demo – ML.NET CLI Episode 2. Auto-ML ML.NET CLI Anwendungsbeispiel: mlnet auto-train --task binary-classification --dataset "..DatawikiDetoxAnnotated40kRows.tsv" --label-column- name Label --max-exploration-time 20
  46. 46. 46 Episode 3. Agenda Episode 3. ML.NET Erweiterung mit Tensorflow und ONNX Bibliotheken
  47. 47. Warum hätte man ML.NET erweitern sollen / müssen? Frage ans Publikum
  48. 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.”
  49. 49. 49 Episode 3. Open AI Interop
  50. 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. 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. 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.
  53. 53. 53 Vielen Dank! Mykola Dobrochynskyy Software Factories www.soft-fact.de ceo@soft-fact.de ki19.eventbrite.de developer-media.de

×