Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apps intelligenter machen: Machine Learning für Entwickler

Apps intelligenter machen: Machine Learning für Entwickler

Jörg Neumann

March 26, 2019
Tweet

More Decks by Jörg Neumann

Other Decks in Programming

Transcript

  1. JÖRG NEUMANN THEMEN ▪ Mobile, UX, Machine Learning ▪ Consulting,

    Coaching, Training KONTAKT ▪ Mail: [email protected] ▪ Twitter: @joergneumann ▪ GitHub: https://github.com/joergneumann ▪ Blog: http://www.headwriteline.blogspot.com
  2. “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
  3. 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
  4. 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
  5. SPEECH RECOGNITION DATASET ▪ Switchboard Dataset ▪ Sammlung von Telefongesprächen

    ▪ 2016 wurde erstmals eine Fehlerrate von ~6% bei der Worterkennung erreicht ~6% Human Performance
  6. 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%)
  7. 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)
  8. 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
  9. 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
  10. 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?
  11. 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?“
  12. 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?“
  13. 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?“
  14. 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?“
  15. 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
  16. 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?
  17. 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?“
  18. 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
  19. 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
  20. ALLES HÄNGT VON DEN DATEN AB! Lineare Regression Principal Component

    Analysis Descision Trees Logistic Regression Support Vector Machines Neuronal Networks
  21. 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
  22. 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
  23. TRAINING Labels 75% Trainings- daten 25% Test- daten Feature A

    Feature B Feature C Algorithmus erzeugt Vorläufiges Model Trainings- daten
  24. 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
  25. ANPASSUNGEN Labels 75% Trainings- daten 25% Test- daten Feature A

    Feature B Feature C Parameter ändern o. Algorithmus wechseln erzeugt Finales Model Trainings- daten
  26. CONFUSION MATRIX True positives (TP) False positives (FP) False negatives

    (FN) True negatives (TN) 1 2 0 2 Tatsächlich Vorhersage
  27. 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 ∙
  28. 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/
  29. MACHINE LEARNING LIBRARIES FRAMEWORKS ▪ TensorFlow ▪ Cognitive Toolkit (CNTK)

    ▪ Apache MXNet ▪ PyTorch ▪ Keras ▪ Caffe2 ▪ Theano ▪ Torch ▪ Gluon
  30. 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
  31. MACHINE LEARNING LIBRARIES FOR JAVA LIBRARIES ▪ JavaML ▪ Deeplearning4j

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

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

    Service ▪ Google Cloud Machine Learning ▪ AWS Machine Learning ▪ DeepAI
  34. 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
  35. COGNITIVE SERVICES – GESICHTSERKENNUNG Gesichtsvergleich Emotionserkennung Gesichtserkennung Gesichtsbestimmung ähnliche Gesichter

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

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

    Windows (ONNX) ▪ Azure (Docker File) VERWENDUNG ▪ iOS Sample ▪ Android Sample ▪ ONNX Sample ▪ Xamarin iOS Sample
  38. 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