Machine Learning (1): Was, was nicht und wann?

Machine Learning (oder richtig auf Deutsch “Maschinelles Lernen”) oder Data Science ist überall, sei es um die Ergebnisse der Fußball-WM vorherzusagen, persönliche Empfehlungen in Amazon oder Netflix zu erhalten oder in der Produktion präventive Wartunsmaßnahmen zu ergreifen. Dementsprechend sind Data Scientists eine der heiß begehrtesten Leute in der IT-Branche, um aus der Datenflut Erkenntnisse zu gewinnen.

Diese Machine Learning Serie ist wie folgt aufgebaut (und wird natürlich stets erweitert):

1 Was ist das (nicht) und wann?
2 Supervised versus Unsupervised Learning
3 Machine Learning Prozess
4 Azure Machine Learning: Was und Warum?
5 Experiment in Azure ML: Binäre Klassifizierung – Flugverspätungen

Wie man sehen kann, wird diese Serie sich mit Microsoft Azure Machine Learning beschäftigt – ein Dienst von Microsoft Azure, mit dem Entwickler Predictive Analytics-Modelle anhand von Machine Learning-Algorithmen bauen und als Web Service veröffentlichen können.

AzureMachineLearning_00EAB562

Wo findet man Machine Learning?

Machine Learning findet man überall. Meine Lieblingsbeispiele von Machine Learning findet man auch gleich im Alltag: die Kinect, Skype Translator und Netflix.

1 kinect

Die Kinect ist ein gutes Beispiel, wo Machine Learning und Computer Vision sich überlappen. Das Ziel von Machine Learning bei der Kinect ist es, alle Körperteile in allen möglichen Positionen, Körpergrößen und –formen in Super-Echtzeit zu tracken/folgen:

1 kinect

Um die Sensorik innerhalb der Kinect kümmere ich mich jetzt nicht, sondern eher, was danach kommt: die erfassten Bilder zu verstehen. Angefangen mit einem Tiefenbild wird anhand von Random Forests jedes einzelne Pixel des Tiefenbilds (ohne Hintergrund) in eines der Körperteil-Kategorien klassifiziert. Daraufhin werden die Körperbereiche in “body joints” (quasi Gelenkpositionen) mit Clustering “zusammengefasst”, um diese dann miteinander zu einem Skelett zu verbinden. Natürlich ist das hier sehr oberflächlich behandelt; das Paper Real-Time Human Pose Recognition in Parts from a Single Depth Image (2011) von MS Research  gibt noch  viel tiefgründigere Informationen. Was nennenswert ist, ist dass für das Trainieren der Machine Learning Modelle hinter der Kinect (u.a. Random Forests und Clustering) 100.000 verschiedene Köperhaltungen vor der Kinect “durchgespielt” wurden.

Was für großartige Sachen das Microsoft Research (Cambridge), in den Bereichen Computer Vision und Machine Learning machen und wo man ihre Forschungen im alltäglichen Leben wiederfindet, könnt ihr in diesem Blog nachlesen.

1 skype translator

Skype Translator ist ein weiteres Beispiel, wo einige Bereiche von Machine Learning (also Spracherkennung, automatische Übersetzung und weitere Machine Learning Methoden) unseren Alltag beeinflussen. Was Skype Translator macht, ist zunächst Deine Stimme oder eher Deine Worte erkennen (Deep Learning oder Deep Neural Networks), die erkannten Worte “bereinigen” und dann in eine andere Sprache übersetzen. Beim Übersetzen sind wiederum Machine Learning Modelle im Einsatz. Natürlich kann das Modell nicht alles schon perfekt aussagen; deswegen wir das System immer weiter verbessert, indem wir Feedback geben. In diesem Video kann man Skype Translator schön im Einsatz sehen – vor allem kurz nach der gewonnen Fußball-WM 2014 :)

1 netflix

Und natürlich kann man im Wohnzimmer Netflix fast gar nicht mehr wegdenken. Hinter den persönlichen Empfehlungen versteckt ebenfalls sich Machine Learning. Diese Empfehlungen (Collaborative Filtering) basieren auf vielen Faktoren: was Du bisher gesehen hast, wie oft Du einen Film geschaut hast, wie schnell Du eine Serie verschlungen hast, ob und wann Du in einem Film oder einer Serie pausiert hast, etc. Langfristig soll der Empfehlungsdienst die Übersichtsseite über alle angebotenen Filme und Serien ersetzen, vor allem weil die bisherigen Empfehlungen von Netflix sowieso schon als Navigation für 75% der Abonnenten dient. Sehr interessant ist, wie Netflix Big Data für die Erstellung von neuen eigenen Serien (Netflix Original Series) nutzt. So wurde 100 Millionen USD investiert, um auf eine übliche Pilotfolge zu verzichten und gleich ein 2-Staffel-Remake aus der gleichnamigen BBC-Miniserie House of Cards zu produzieren. Dieses durchdachte Risiko basiert auf Daten, die besagen, dass Fans von der Original-BBC-Serie ebenfalls Filme mit Kevin Spacey oder produziert von David Fincher verschlingen. Hat sich jedenfalls bei dem Zuwachs von 17 Millionen Abonnenten gelohnt – und für den Zuschauer selbst alle Male.

Darüber hinaus ist Predictive Maintenance ein guter Anwendungsfall von Machine Learning in der Industrie: sei es in der Produktion, darüber benachrichtig zu werden, dass Gerät/Sensor A zu einer Wahrscheinlichkeit von 90% in den nächsten zwei Wochen ausfallen wird, oder in der Kundenansprache, wenn man als Kunde einen Anruf erhält, weil aufgrund des Fahrverhaltens die Bremsscheiben in der nächsten Woche auszutauschen.

Was ist Machine Learning?

Also akzeptiert, Machine Learning kann man in allen möglichen Szenarien gut einsetzen. Was ist denn jetzt genau Machine Learning? Für Machine Learning gibt es zwei gängige Definitionen:

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.

Tom M. Mitchell, Machine Learning, 1997

In anderen Worten, je mehr Erfahrungen E wir machen, desto besser können wir die Aufgabe T lösen (gemessen an Leistung P).

Also ganz nach dem Motto “Übung macht den Meister”. Zum Beispiel, mein Schachspiel verbessert sich, je mehr Schach ich gegen verschiedene Spieler spiele:

  • T = Schach spielen,
  • P = Anzahl an Schachspielen, die ich gewonnen habe,
  • E = Anzahl an Schachspielen, die ich gegen andere gespielt habe.

Ein anderes Beispiel ist die Platzierung von Werbungen auf Internetseiten. Mein Ziel ist, so viele Nutzer zum Anklicken der einen Werbung zu bringen. Je mehr Leute auf die Internetseite kommen, können wir mehr über diese in Erfahrung bringen, ob sie überhaupt auf die Werbung klicken oder nicht. Dies können wir dann wiederum in die Optimierung der Werbung (in Farbe, Größe, etc.) einfließen lassen, um die Werbung und dann auch die Klickrate wieder zu verbessern.

Eine weitere Definition von Machine Learning ist wie folgt:

Machine learning is programming computers to optimize a
performance criterion using example data or past experience .

Introduction to Machine Learning, Second Edition, MIT Press

In dieser Definition ist speziell von Beispieldaten und historischen Daten die Rede. Was oft unterschätzt wird, ist, dass für das Erstellen von Machine Learning Modellen bereits vorhandene Daten nötig sind, und zwar viele von denen. Basiert auf den Modellen kann man dann bei künftigen Events “die Zukunft vorhersagen”.

Zusammengefasst kann man Machine Learning (ML) so darstellen:

1 was ist ml

Bei ML reden wir von System, die

  • sich automatisch an neue Trends (durch eingeflossenes Feedback) und ohne manueller Eingabe anpassen,
  • neue Daten auf Basis von historischen Daten vorhersagen bzw. Wahrscheinlichkeiten von Ausgängen berechnen,
  • Aktionen optimieren (Deskriptive Statistik),
  • Informationen aus vorhandenen (Beispiel-)Daten extrahieren, oder
  • aus einem großen Datentopf die relevanten Daten und Spalten/Attribute herausfinden und dementsprechend die Daten zusammenfassen.

Wir werden auf einige Punkte detaillierter in 3 Supervised versus Unsupervised Learning eingehen.

Was ist Machine Learning nicht?

Ebenso wichtig ist schon mal im Voraus die richtige Erwartungshaltung gegenüber ML zu haben, und zu verstehen, was ML nicht ist:

1 was ist ml nicht

Machine Learning funktioniert nur, wenn man eine Datenmodellierung vornimmt und die einzelnen Spalten/Attribute/Features genauer untersucht (Feature Engineering), da nicht jedes Feature relevant ist. Die Erwartung, dass mit Machine Learning automatisch (ohne Eigenarbeit) einem gesagt wird, welche Daten denn relevant sind oder was ich am Montag machen soll, ist falsch – also kein “Garbage-In-Knowledge-Out”. Den Datenmüll muss man schon vor dem ML-Modellbau säubern.

ML ist auch nicht dafür gedacht, Regeln auswendig zu lernen. Wenn bereits viele Regeln vorhanden sind, die alles abdecken, ist ML einfach ein Overkill. ML ist nur dann in einem Bereich gut geeignet, wenn man nicht alles mit Regeln abdecken kann, z.B. Handschrift- oder Spracherkennung.

Wann soll ich Machine Learning einsetzen?

Joseph Sirosh, CVP für Machine Learning bei Microsoft, hat auf einer Konferenz vier Regeln aufgelistet, wann ML eine gute Option ist:

1 wann ml

In Deutsch:

1 wann ml - de

  • Komplex, z.B. Natural Language Processing, Handschrifterkennung, Computer Vision
  • Zum Skalieren, z.B. Spam, Betrugsaufdeckung (Fraud Detection), Gesundheitswesen (CTs,…)
  • Personalisiert, z.B. Amazon, Netflix
  • Autonomes Lernen, z.B. Robotik

Pi mal Daumen: Wenn Du viele Daten bereits vorhanden hast (Millionen von Datenpunkten), eignet sich ML ganz gut. Wenn jedoch schon viele Regeln vorhanden sind oder man wenige Daten hat, sollte man die Finger von ML zunächst noch lassen.