Machine Learning (2) - Supervised versus Unsupervised Learning

In Machine Learning unterscheidet man hauptsächlich (aber nicht ausschließlich) zwischen zwei große Arten an Lernproblemen: Supervised (überwachtes) und Unsupervised Learning (unüberwachtes). Während es bei Supervised Learning konkret darum geht, die "Zukunft vorherzusagen", ist das Ziel bei Unsupervised Learning, die vorhandenen Daten zu verstehen.

Dieser Artikel ist Teil 2 der Machine Learning Serie, die wie folgt aufgebaut:

  1. Was ist das, was ist das nicht und wann ist das gut?
  2. Supervised versus Unsupervised Learning
  3. Machine Learning Prozess
  4. Azure Machine Learning
  5. Azure Machine Learning Ressourcen
  6. Experiment in Azure ML: Binäre Klassifizierung – Titanic überleben, Flugverspätungen und gezieltes Marketing (englisch)

Supervised Learning

In Supervised Learning (in Deutsch Überwachtes Lernen genannt) haben wir Daten vorliegen, die quasi schon ein "Label" enthalten. In anderen Worten, jeder Datenpunkt in der vorhandenen Datenmenge besteht aus Eingabe- und Ausgabewerten (Input & Output), oder mathematisch ausgedrückt:
$f(\mathbf{X}) = \mathbf{y}$,

wobei $\mathbf{X}$ eine Matrix mit Eingabewerten und $\mathbf{y}$ ein Vektor mit Ausgabewerten ist.

(Quelle: Real-Time Human Pose Recognition in Parts from a Single Depth Image)

Nehmen wir den ersten Schritt in dem Kinect-Körperteil-Erkennungsprozess: Jedem Pixel wird genau ein Label (Bezeichnung) verpasst: rechte Hand oder Hals oder linke Schulter... Hier besteht eine Reihe in der Matrix $\mathbf{X}$ aus allen möglichen Charakteristika oder Features von einem Pixel, und das entsprechende Element im Vektor $\mathbf{y}$ aus dem entsprechenden Label.

In anderen Worten, bei Supervised Learning haben wir Daten, bei denen wir bereits die "richtigen Antworten" kennen, weil sie schon markiert ("gelabelt") wurden. Basiert darauf wollen wir bei künftigen Eingabewerten genau die entsprechenden Labels vorhersagen. Ein sehr vereinfachtes Beispiel: Wir haben ein Pixel vorliegen, welches

  1. sich im unteren linken Drittel des Bildes befindet, und
  2. einen bestimmten Gradientenfarbenwert oder ähnliches beinhaltet.

Basiert auf diesen zwei erfassten Eigenschaften ist die Wahrscheinlichkeit hoch, dass es sich hierbei um ein Pixel des rechten Beines handelt (also: vorhergesagtes Label vom neuen und unbekannten Pixel = "rechtes Bein").

So werden all die historischen oder Beispiel-Daten vor dem Trainieren mit entsprechenden Labels markiert (meist manuell), um darauf basiert ein Modell zu erlernen. Nachdem ein Modell trainiert ist, kann man das Modell auch klar bewerten, indem die vorhergesagten Labels/Ausgabewerte mit den richtigen Antworten verglichen und dementsprechend geprüft werden. Die Bewertung wird als Feedback in das iterierte Training des Modells einfließen. Aber dazu mehr im Teil 3 - Der Machine Learning Prozess.

Typische Lernprobleme unter Supervised Learning sind Klassifizierung (Classification) und Regressionsanalyse (Regression). In Azure Machine Learning sind beide enthalten, wie auch ein Empfehlungsdienst (Recommender Engine) und Algorithmen zur Erkennung von Anomalien (Anomaly Detection):

Bei einer Klassifizierung haben wir Daten, die wir in vorgegebene Kategorien einsortieren wollen. Das Kinect-Beispiel ist ganz klar eine Klassifizierung, wo die Kategorien die einzelnen Körperteile darstellen, z.B. rechte Hand, Hals, Stirn, etc. Eine spezielle Form der Klassifizierung ist die binäre Klassifizierung: Da unterscheidet man nur zwischen zwei Kategorien (Ja/Nein, 0 oder 1, Wahr/Falsch,...).

(Quelle: Linear Regression - Wikipedia)

Im Gegensatz zur Klassifizierung gibt es bei der Regression keine "Eimer", in die wir unsere Datenpunkte unterbringen; stattdessen haben wir einen Zahlenbereich. Basiert auf Eingabewerten wollen wir eine Zahl vorhersagen.

Salopp gesagt: Bei Supervised Learning kennen wir schon im Voraus die richtigen Antworten, sei es eine Kategorie oder eine Zahl.

Unsupervised Learning

Bei Unsupervised Learning (in Deutsch Unüberwachtes Lernen) handelt es sich um das allgemeine Verstehen der vorliegenden Daten. Was wir als "Knowledge Discovery" bezeichnen ist letzendlich das Entdecken von versteckten Strukturen in den Daten. Im Gegensatz zu Supervised Learning haben wir hier dann mit Daten zu tun, die nicht markiert oder durch Labels gekennzeichnet sind.

Wann nutzt man Unsupervised Learning?

(Object Segmentation. Quelle: Real-Time Human Pose Recognition in Parts from a Single Depth Image)

Ein typisches Szenario ist die Segmentierung, sei es in der Industrie (Kunden- oder Marktsegmentierung), oder Bildsegmentierung und wetieres. Hierbei gilt es, die Daten nach Gemeinsamkeiten zu gruppieren; also eine klassische Clusteranalyse (Clustering). Darüber hinaus kann man Clustering auch so nutzen, um neue Gruppen in den Daten zu identifizieren, z.B. in der Bildverarbeitung, um diese im Anschluss zur Erkennung von Mustern einzusetzen (siehe Object Segmentation oben).

Ein anderes Anwendungsszenario für Unsupervised Learning ist die Komprimierung der Daten. Nehmen wir an, wir haben unsere Datenpunkte mit jeweils 40.000 Attributen/Charakteristika - viel zu viele! Und bestimmt sind nicht alle Attribute wirklich relevant für das Trainieren unseres Modells. Deswegen gilt es, die Zahl der Attribute so weit zu reduzieren, dass wir immer noch genug Informationen zu jedem Datenpunkt haben. Letzendlich ist es ein Balanceakt: Man will am liebsten das Modell so einfach wie möglich halten (läuft schnell und ist simpel), also so wenige Attribute wie nur möglich, aber auf der anderen Seite will man so viel Informationen wie nur möglich zu allen Datenpunkten haben. Die Hauptkomponentenanalyse (Principal Component Analysis) ist eine Methode, die Datendimension zu reduzieren, indem die vielen Attribute durch eine geringere Zahl an aussagekräftigen Linearkombinationen ("Hauptkomponenten") ersetzt werden.

In der Genomforschung wird Unsupervised Learning insofern eingesetzt, dass die Dimensionen der genetischen Daten drastisch reduziert wird (also Anzahl der Attribute wird gesenkt), indem Clusters zwischen den genetischen Eigenschaften gebildet werden. Mehr Informationen, was Microsoft Research unter anderem in der Genomforschung treibt, findet ihr hier.

In Azure Machine Learning sind Stand heute K-Means Clustering und Principal Component Analysis im Angebot:

Supervised versus Unsupervised

Die Gegenüberstellung von Supervised und Unsupervised Learning kann man natürlich bildlich viel einfacher darstellen:

(Quelle: Lecture 1, Andrew Ng's Machine Learning course on Coursera)

Während wir bei Supervised Learning schon im Voraus wissen, dass es genau zwei Kategorien gibt (blauer Kreis oder rotes Kreuz), ergeben sich bei Unsupervised Learning zwei Gruppen.

Nehmen wir die große Menge an Filmen in Netflix. Unsupervised Learning ist, wenn wir die Filme anhand verschiedener Eigenschaften gruppieren wollen, sei es danach, was bei den unterschiedlichen Demografien am besten ankommt: Die weiblichen Twenty-Somethings gucken viele Filme mit Gerard Butler o.ä.. Supervised Learning dagegen ist, wenn wir die Filme klar nach den Genres kategorisieren: Romantische Komödien, Actionfilme, Thrillers, etc.

comments powered by Disqus