Apps intelligenter machen: Machine Learning für Entwickler

Apps intelligenter machen: Machine Learning für Entwickler

32ae0ae04b5c4f1b29ee9e8826823fbc?s=128

Jörg Neumann

March 26, 2019
Tweet

Transcript

  1. JÖRG NEUMANN | ACANDO @JOERGNEUMANN APPS INTELLIGENTER MACHEN MACHINE LEARNING

    FÜR ENTWICKLER
  2. JÖRG NEUMANN THEMEN ▪ Mobile, UX, Machine Learning ▪ Consulting,

    Coaching, Training KONTAKT ▪ Mail: joerg.neumann@acando.de ▪ Twitter: @joergneumann ▪ GitHub: https://github.com/joergneumann ▪ Blog: http://www.headwriteline.blogspot.com
  3. “AI is going to disrupt every single business app—whether an

    industry vertical like banking, retail and health care, or a horizontal business process like sales, marketing and customer support.“ —Harry Shum, Microsoft Executive VP, AI and Research
  4. Neuronale Netzwerke sind die „Software 2.0“ —Andrej Karpathy, Director of

    Artificial Intelligence, Tesla
  5. ImageNet DATASET ▪ Enthält ca. 14 Mio. Bilder ▪ http://www.image-net.org

    CHALLENGES ▪ ImageNet Large Scale Visual Recognition Challenge (ILSVRC) ▪ Jährlicher Wettbewerb ▪ Object Classification ▪ Object Localization ▪ Object Detection
  6. ImageNet LSVRC 28,2% 25,7% 15,3% 14,8% 6,67% 3,57% 3% 2,3%

    ImageNet Classification top-5 error (%) NEC Xerox AlexNet ZFNet GoogleNet ResNet TSNet SENet 5-10% Human Performance 8 Layers 8 Layers 22 Layers 152 Layers Ensamble Ensamble
  7. SPEECH RECOGNITION DATASET ▪ Switchboard Dataset ▪ Sammlung von Telefongesprächen

    ▪ 2016 wurde erstmals eine Fehlerrate von ~6% bei der Worterkennung erreicht ~6% Human Performance
  8. NATURAL LANGUAGE PROCESSING (NLP) DATASET ▪ Stanford Question Answering Dataset

    (SQuAD) ▪ Fragen über Wikipedia-Artikel beantworten CHALLENGE ▪ Texte lesen und in Anschluss Fragen zu diesen beantworten ▪ 2018 wurde erstmals eine Rate von 82,6% erreicht (der Mensch schafft ~82,3%)
  9. WANN MACHINE LEARNING? EINSATZSZENARIEN ▪ Komplexität: Man kann es nicht

    programmieren (z.B. Bilderkennung, Spracherkennung) ▪ Menge: Man kann es nicht skalieren (z.B. Spam & Betrugserkennung, Medizin) ▪ Personalisierung: Personenbezogene Lösungen entwickeln (z.B. Amazon, Netflix) ▪ Selbstlernend: Computer soll selbstständig Entscheidungen treffen (z.B. autonom fahrende Autos)
  10. Entwickler ▪ Grundlegendes Verständnis von ML ▪ Verwendung von Tools

    & Libraries ▪ Nutzung von vorgefertigten Modellen ▪ Entwicklung mit Java, C# oder JavaScript Data Scientist ▪ Tiefes Verständnis von ML ▪ Aufbau neuronaler Netze ▪ Entwicklung und Optimierung von Modellen ▪ Entwicklung mit Python oder R
  11. findet Muster erkennt Muster stellt Daten bereit, prüft auf Muster

    WAS IST MACHINE LEARNING? DEFINITION ▪ Muster in Daten erkennen ▪ Vorhersagen treffen App Model Daten Algorithmus enthalten Muster
  12. FRAGESTELLUNGEN BEISPIELE ▪ Ist etwas A oder B? ▪ Ist

    da etwas ungewöhnlich? ▪ Wie viel oder wie viele ▪ Wie ist das organisiert? ▪ Was soll ich als nächstes tun?
  13. ALGORITHMEN IST ETWAS A ODER B? ▪ Classification Algorithmen BEISPIELE

    ▪ „Geht die Maschine in den nächsten 3 Monaten kaputt?“ ▪ „Hat der Patient Lungenkrebs?“ ▪ „Bekomme ich mehr Kunden durch einen 5€ Gutschein oder ein Rabatt von 20%?“ ▪ Gibt es mehr als zwei Antwortmöglichkeiten? → Multiclass Classification ▪ „In welche Kategorie gehört dieser Artikel?“
  14. ALGORITHMEN IST DA ETWAS UNGEWÖHNLICH? ▪ Anomaly Detection Algorithmen BEISPIELE

    ▪ „Ist diese Kreditkartentransaktion ungewöhnlich?“ ▪ „Ist die Motortemperatur im normalen Bereich?“ ▪ „Ist der Zugriff auf meinen Shop außergewöhnlich hoch?“
  15. ALGORITHMEN WIE VIEL ODER WIE VIELE? ▪ Regression Algorithmen BEISPIELE

    ▪ „Wie wird die Temperatur am Dienstag sein?“ ▪ „Wie hoch ist der durchschnittliche Preise für ein Haus mit 120m2?“ ▪ „Wie hoch wird mein Umsatz im März sein?“
  16. ALGORITHMEN WIE IST DAS ORGANISIERT? ▪ Clustering Algorithmen BEISPIELE ▪

    „Welche Kundengruppen kaufen meine Produkte?“ ▪ „Welche Zuschauer mögen die gleiche Art von Filmen?“ ▪ „Welche Drucker fallen aus den gleichen Gründen aus?“
  17. ALGORITHMEN WAS SOLL ICH ALS NÄCHSTES TUN? ▪ Reinforcement Learning

    Algorithmen BEISPIELE ▪ Staubsauger-Roboter orientiert sich anhand von Hindernissen ▪ Selbstfahrende Autos entscheiden selbständig wann sie bremsen
  18. WIE MÜSSEN DIE DATEN AUSSEHEN? SCHLÜSSELFAKTOREN ▪ Relevanz Habe ich

    die richtigen Daten um eine Vorhersage treffen zu können? ▪ Vollständigkeit Haben alle Spalten meines Datasets Werte? ▪ Qualität Sind die Werte realistisch und decken Sie die Skala an Möglichkeiten ab? ▪ Menge Habe ich genügend Daten um sichere Vorhersagen treffen zu können?
  19. FRAGESTELLUNG VORGEHEN ▪ Stelle eine möglichst konkrete Frage ▪ Beziehe

    mögliche Einflussfaktoren mit ein BEISPIEL ▪ „Wieviel kostet ein Haus mit 100m2“ ▪ „Wieviel kostet ein Haus mit 100m2 und 5 Zimmern?“ ▪ „Wieviel kostet ein Haus mit 100m2 und 5 Zimmern in Hamburg?“
  20. FRAGESTELLUNG FORMULIERUNG ▪ Ist entscheidend für die Auswahl des Algorithmus

    BEISPIEL ▪ „Welche Bücher sind für den Kunden interessant?“ → Classification ▪ „Wie interessant sind die folgenden Bücher für den Kunden?“ → Regression
  21. DATENSTRUKTUR FEATURES ▪ Daten die für die Vorhersage benötigt werden

    LABELS ▪ Reale Werte aus der Vergangenheit BEISPIEL ▪ Ein Haus mit 100 m2 und 4 Zimmern kostet € 350.000 Sqft Rooms Price 90 3 180.000 100 4 350.000 200 6 450.000 320 10 580.000
  22. ALGORITHMEN Neural Networks Decision Trees Bayesian K-means

  23. ALLES HÄNGT VON DEN DATEN AB! Lineare Regression Principal Component

    Analysis Descision Trees Logistic Regression Support Vector Machines Neuronal Networks
  24. NEURONALE NETZE DEFINITION ▪ Vom Gehirn inspirierte Lernalgorithmen ▪ Lösen

    zwei- oder mehrklassige Klassifizierungsprobleme ▪ Inputs werden durch mehrere Layer weitergegeben ▪ In jedem werden Inputs in verschiedenen Kombinationen gewichtet, summiert und an den nächsten Layer übergeben ▪ Der letzte Layer enthält ein oder mehrere Outputs ▪ Diese Kombination aus einfachen Berechnungen resultiert in der Fähigkeit, komplexe Klassengrenzen und Datentrends lernen zu können ▪ Netzwerke mit vielen Schichten führen „Deep Learning“ aus
  25. Quelle: MachineLearningMastery.com

  26. None
  27. DER MACHINE LEARNING PROZESS Data Store 1 Data Store 2

    Dataset vorläufiges Model finales Model Daten vorbereiten Algorithmus zuweisen Model testen Daten anpassen Algorithmus anpassen
  28. TRAINING Labels 75% Trainings- daten 25% Test- daten Feature A

    Feature B Feature C Algorithmus erzeugt Vorläufiges Model Trainings- daten
  29. TESTING Labels 75% Trainings- daten 25% Test- daten Feature A

    Feature B Feature C Ergebnisse generiert Ergebnisse vergleicht Ergebnisse mit Labels Test- daten vorläufiges Model anwenden
  30. ANPASSUNGEN Labels 75% Trainings- daten 25% Test- daten Feature A

    Feature B Feature C Parameter ändern o. Algorithmus wechseln erzeugt Finales Model Trainings- daten
  31. DEMO Models trainieren

  32. CONFUSION MATRIX True positives (TP) False positives (FP) False negatives

    (FN) True negatives (TN) 1 2 0 2 Tatsächlich Vorhersage
  33. EVALUIERUNGSMETRIKEN Accurancy Precision Recall / Sensitivity F1 Score TP +

    TN P + N = 2 + 2 2 + 0 + 1 +2 = 0,8 TP TP + FP = 2 2 + 1 = 0,66 TP TP + FN = 2 2 + 0 = 1 Precision ∙ Recall Precision + Recall = 2 ∙ 0,66 ∙ 1 0,66 + 1 ≈ 0,79 2 ∙
  34. RECEIVER OPERATING CHARACTERISTIC (ROC CURVE) besser schlechter Area under the

    curve (AUC)
  35. OVERFITTING UND UNDERFITTING underfitting overfitting Modellkomplexität (Iterationen) Vorhersagefehler Trainingsdaten Testdaten

    Beispiel: ▪ Score Training: 0,97 ▪ Score Test: 0,75 Gut oder schlecht?
  36. FRAMEWORKS & TOOLS

  37. AZURE MACHINE LEARNING STUDIO DEFINITION ▪ Web-basierte Umgebung für Entwicklung,

    Training und Bereitstellung von ML-Modellen ▪ Drag & Drop statt Programmierung ▪ Keine Installation – Bedienung über den Browser FEATURES ▪ Viele Algorithmen ▪ Einfache Bereitstellung von Modellen als Services ▪ Kollaboration mit anderen Entwicklern ▪ Support für R Studio, Python, Jupyter Notebook ▪ Fertige Modelle in der Azure AI Gallery https://studio.azureml.net/
  38. MACHINE LEARNING LIBRARIES FRAMEWORKS ▪ TensorFlow ▪ Cognitive Toolkit (CNTK)

    ▪ Apache MXNet ▪ PyTorch ▪ Keras ▪ Caffe2 ▪ Theano ▪ Torch ▪ Gluon
  39. JUPYTER NOTEBOOKS DEFINITION ▪ Interaktive Dokumentation / Arbeitsmappe ▪ Quelle:

    https://Jupyter.org AZURE NOTEBOOKS ▪ Quelle: https://notebooks.azure.com ▪ Zur Zeit kostenlos GOOGLE COLAB ▪ Quelle: https://colab.research.google.com ▪ Zur Zeit kostenlos ▪ Direkte Verlinkung zu GitHub https://colab.research.google.com/github/UserName/Repo/blob/master/myFile.ipynb
  40. MACHINE LEARNING LIBRARIES FOR JAVA LIBRARIES ▪ JavaML ▪ Deeplearning4j

    ▪ JSAT ▪ MALLET ▪ Mahout ▪ Weka ▪ …
  41. MACHINE LEARNING LIBRARIES FOR .NET LIBRARIES ▪ ML.NET ▪ Microsoft

    Cognitive Toolkit ▪ TensorFlowSharp ▪ SharpLearning ▪ Accord.NET Machine Learning Framework ▪ Sharpkit.Learn
  42. MACHINE LEANING SERVICES SERVICES MIT VORTRAINIERTEN MODELLEN ▪ Microsoft Cognitive

    Service ▪ Google Cloud Machine Learning ▪ AWS Machine Learning ▪ DeepAI
  43. Microsoft Cognitive Services

  44. COGNITIVE SERVICES – COMPUTER VISION Berühmte Personen/Orte erkennen Bilder analysieren

    Text in Bildern lesen Miniaturansichten generieren Handschriftlichen Text lesen Videos analysieren https://azure.microsoft.com/de-de/services/cognitive-services/face
  45. COGNITIVE SERVICES – GESICHTSERKENNUNG Gesichtsvergleich Emotionserkennung Gesichtserkennung Gesichtsbestimmung ähnliche Gesichter

    suchen Gesichtsgruppierung https://azure.microsoft.com/de-de/services/cognitive-services/face
  46. CUSTOM VISION HINTERGRUND ▪ Benutzerdefinierte Bild-/Objekterkennung ▪ Konfiguration über Web

    Site ▪ Training in der Cloud ▪ Export des Models QUELLE ▪ https://customvision.ai
  47. CUSTOM VISION EXPORT ▪ iOS (CoreML) ▪ Android (TensorFlow) ▪

    Windows (ONNX) ▪ Azure (Docker File) VERWENDUNG ▪ iOS Sample ▪ Android Sample ▪ ONNX Sample ▪ Xamarin iOS Sample
  48. DEMO Custom Vision

  49. FAZIT MÖGLICHKEITEN ▪ Bietet Möglichkeiten jenseits einfacher Logik ▪ Software

    kann echte Intelligenz enthalten ▪ Datenbasis, Fragestellung und Algorithmen spielen eine entscheidende Rolle TOOLS UND LIBRARIES ▪ Leichter Einstieg über Azure ML Studio ▪ Frameworks und Libraries für Java und .NET vereinfachen den Einstieg ▪ Komplexere ML-Entwicklung findet in Python statt ▪ Die Cognitive Services bieten vortrainierte Modelle und spezialisierte Dienste