Was maschinelles Lernen ist
Der Unterschied zwischen programmierten Regeln und gelernten Regeln, die drei Lernarten und die Frage, wann sich maschinelles Lernen überhaupt lohnt.
Die Idee
Um einem Programm beizubringen, eine Rechnung von einem Lieferschein zu unterscheiden, gibt es zwei Wege. Der klassische Weg: jemand schreibt Regeln. „Wenn das Wort Rechnungsnummer vorkommt, dann …". Der zweite Weg: man zeigt dem Programm zehntausend Rechnungen und zehntausend Lieferscheine und lässt es selbst herausfinden, woran der Unterschied hängt.
Der zweite Weg ist maschinelles Lernen. Er lohnt sich immer dann, wenn die Regeln zu viele Ausnahmen haben, um sie aufzuschreiben.
Die drei Lernarten
| Art | Was vorliegt | Beispiel |
|---|---|---|
| Überwacht | Beispiele mit richtiger Antwort | Rechnung oder Lieferschein, mit Etikett |
| Unüberwacht | Beispiele ohne Antwort | Kundengruppen finden, ohne zu wissen welche |
| Bestärkend | Belohnung für gute Entscheidungen | Roboterarm, Spielstrategie, Regelung |
Der Ablauf, der immer gleich ist
- 01
Frage festlegen
Was genau soll vorhergesagt werden, und woran erkennt man, dass die Antwort richtig war? Diese Frage vor den Daten zu klären spart die meiste Zeit.
- 02
Daten aufteilen
Training, Validierung, Test. Der Testsatz wird genau einmal angefasst, ganz am Ende. Siehe Kreuzvalidierung.
- 03
Ausgangswert bestimmen
Wie gut ist die einfachste denkbare Regel? Ohne diesen Vergleichswert lässt sich später kein Fortschritt behaupten.
- 04
Modell anpassen und bewerten
Erst danach folgen Modellwahl und Hyperparameter, und zwar in dieser Reihenfolge, nicht umgekehrt.
Wann klassische Programmierung besser ist
- Die Regel ist bekannt und stabil, etwa eine gesetzliche Frist.
- Es gibt weniger als ein paar hundert Beispiele.
- Jeder Einzelfall muss begründbar sein, und eine Näherung genügt nicht.
- Der Fehlerfall ist teuer und selten. Dann prüft man lieber alles.
Was ein Modell formal tut
Das Problem: 𝓓 ist unbekannt. Man minimiert stattdessen das empirische Risiko
auf der Stichprobe, und der ganze Rest der Disziplin beschäftigt sich mit der
Lücke zwischen beidem, siehe
Überanpassung, Bias und Varianz.
Ein vollständiges Beispiel
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
X, y = load_breast_cancer(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.25,
stratify=y, random_state=0)
# stratify=y haelt die Klassenverteilung in beiden Teilen gleich;
# ohne das schwankt die gemessene Guete allein durch den Split.
model = LogisticRegression(max_iter=5000).fit(Xtr, ytr)
print(classification_report(yte, model.predict(Xte), digits=3))Der Fehler, der am meisten kostet
Ein Modell zu bauen, bevor die Erfolgsmessung feststeht. Ohne vorher definierte Metrik und ohne Ausgangswert wird am Ende die Metrik gesucht, bei der das Modell gut aussieht. Das ist keine Bewertung mehr, sondern eine Erzählung.
Passende Kurse und Quellen
Jupyter
Notizbücher, in denen Text, Code und Ergebnis nebeneinander stehen. Das übliche Werkzeug, um Rechnungen nachvollziehbar festzuhalten.
Für die ersten eigenen Rechnungen; hält Text, Code und Ergebnis an einer Stelle nachvollziehbar.
Kaggle Learn
Kurze Einheiten mit ausführbaren Notebooks, von Python über Pandas bis zu ersten Modellen. Ohne Installation, direkt im Browser.
Für den allerersten Einstieg ohne Installation, direkt im Browser.
Machine Learning Specialization
Der Kurs von Andrew Ng in überarbeiteter Fassung. Regression, Klassifikation, neuronale Netze und die Fehler, die in der Praxis tatsächlich passieren. Rechnen inbegriffen.
Kostenlos anzusehen, das Zertifikat kostet. Wer nur verstehen will, braucht es nicht.
MIT 6.036 Einführung in Machine Learning
Formaler als die meisten Onlinekurse, mit Herleitungen statt Rezepten. Passt gut nach einem praktischen Kurs, wenn die Frage nach dem Warum offen bleibt.
Für alle, denen nach einem Praxiskurs die Frage nach dem Warum offen geblieben ist.
Probabilistic Machine Learning
Kevin Murphys Bände, die maschinelles Lernen konsequent aus der Wahrscheinlichkeitsrechnung heraus aufbauen. Umfangreich und frei verfügbar.
Für alle, die maschinelles Lernen konsequent aus der Wahrscheinlichkeitsrechnung aufbauen wollen.
scikit-learn Benutzerhandbuch
Kein Handbuch, sondern ein Lehrbuch mit Code. Zu jedem Verfahren steht dabei, wann es nicht passt, was in Lehrbüchern selten so deutlich steht.
Für alle, die klassische Verfahren einsetzen; nennt zu jedem auch, wann es nicht passt.