Was sollte jeder über Maschinenlernen wissen?
Ich denke zu allererst ist es hilfreich, wenn man einen groben Überblick über die Kategorien und Methoden des maschinellen Lernens (ML) hat. Grundsätzlich kann man einen ML-Algorithmus einer von zwei Kategorien zuordnen. Bei den Kategorien handelt es sich um Regression und Klassifikation. Außerdem sollte man ein Verständnis von neuronalen Netzen haben, um die neusten Errungenschaften einordnen zu können.
Regression:
Bei der Regression geht es darum ausgehend von vorhandenen Daten, eine Aussage über zukünftige Daten zu treffen. Ein Beispiel hierfür ist die Einfache lineare Regression[1].
Beispiel:
Im Wikipediaartikel dazu findet sich ein gutes Beispiel für den Zweck des Verfahrens. Ich gebe es in einfachen Worten wieder. Im Artikel ist es detaillierter.
Man möchte wissen, wie sich der Preis (x) eines Produkts auf die Anzahl der verkauften Stückzahlen (y) auswirkt. Ausgehend von gemessenen Erfahrungswerten berechnet man eine mathematische Funktion.
Wenn man nun die Anzahl der verkauften Produkte für einen gewissen Preis abschätzen möchte, dann setzt man x in die Funktion ein und erhält damit einen Wert für y.
Regression ist also die Vorhersage eines Wertes.
Klassifikation:
Bei der Klassifikation geht es darum ausgehend von vorhandenen Daten eine Aussage über die Kategorie neuer Daten zu treffen. Ein Beispiel hierfür sind Support Vector Machine[2] (SVM).
Beispiel:
Hier geht es darum Daten zu gruppieren. Anhand einer Visualisierung ist es sehr einfach zu verstehen.
Die Abbildung zeigt zwei Datenwolken (Rot & Blau). und zwei lineare Funktionen (A & B). Die Funktion fungiert hierbei als Grenze zwischen den Datenwolken. Ziel der SVM ist es eine Funktion zu finden, die zu beiden Datenwolken den größt möglichen Abstand besitzt und somit eine optimale Grenze darstellt. Hat man nun einen neuen Datenpunkt, dann trägt man ihn in das Koordinatensystem ein und schaut auf welcher Seite der Grenze er liegt. Auf diese Weise ist er dann Klassifiziert. Betrachtet man die Abbildung dann wird klar das die Funktion A eine bessere Grenze darstellt, da sie einen größeren Abstand zu den Datenwolken besitzt und so einen größeren Spielraum für Variationen bei neuen Daten zulässt.
Klassifikation ist das Zuordnen von Daten zu einer Klasse.
Neuronale Netze:
Jeder ML-Algorithmus ist letztlich abhängig von den Daten die er zum Lernen verwendet. Je besser die Daten desto besser die Ergebnisse. In der Vergangenheit wurden für die Algorithmen von Menschen generierte Daten verwendet. Damit ist gemeint, dass ein Mensch entscheidet auf Grundlage welcher Eigenschaften ein Algorithmus lernt. Die Erfolge, die in letzter Zeit im Bereich erzielt wurden, verwenden hauptsächliche neuronale Netze[3].
Diese haben zwei Vorteile. Zum einen sind sie ab einer gewissen Größe in der Lage nicht lineare Funktionen darzustellen. Das heißt Sie können Daten wie in der folgenden Abbildung klassifizieren.
Zum anderen sind sie in der Lage selber zu entscheiden welche Daten relevant sind, um etwas zu lernen. Um Beispielsweise einen roten Ball in einem Bild zu erkennen wurde bisher einfach nach roten Bildpunkten gesucht, die Kreisförmig angeordnet sind. In der Praxis ist es jedoch sehr Fehleranfällig zu entscheiden was relevant ist und was nicht. Beispielsweise werden runde Objekte durch perspektivische Verzerrung häufig elliptisch. Alle Sonderfälle zu beachten ist so gut wie unmöglich. Neuronale Netze sind in der Lage anhand des Bildes zu lernen wie rote Bälle aussehen. Sie benötigen dazu nur das Bild und die Klasse (Roter Ball). Davon benötigen sie jedoch sehr viele Exemplare.
Neuronale Netze können bis zu einen gewissen grad selber Entscheiden was relevant ist.
Sie sind in der Lage nicht lineare Klassifikationen durchzuführen.
TL;DR
Maschinelles Lernen hat zwei Ziele (Regression und Klassifikation.)
Regression ist die Vorhersage eines Wertes.
Klassifikation ist das Zuordnen von Daten zu einer Klasse.
Neuste Ergebnisse verwenden im Allgemeinen neuronale Netze. Diese haben zwei Vorteile.
Neuronale Netze können bis zu einen gewissen grad selber Entscheiden was relevant ist zu lernen.
Neuronale Netze sind in der Lage nicht lineare Klassifikationen durchzuführen.
Fußnoten
[1] Einfache lineare Regression – Wikipedia
[2] Support Vector Machine – Wikipedia
[3] Künstliches neuronales Netz – Wikipedia