Machine Learning von Grund auf · Lektion 1.1 · 2 von 33 fertigen Lektionen · 10 Min.
Was ist maschinelles Lernen?
Kurz gesagt
Beim maschinellen Lernen findet ein Programm seine Regel in Beispielen, statt dass ein Mensch sie schreibt. Die Lektion zeigt das an echten Tumordaten.
Wie würdest du ein Programm schreiben, das einen gefährlichen Tumor von einem harmlosen unterscheidet? Du könntest dich mit einer Ärztin zusammensetzen und ihre Erfahrung in Regeln gießen: „Wenn die Zellen größer sind als ein bestimmter Wert, schlag Alarm.“ Oder du zeigst dem Computer Hunderte früherer Fälle mit bekanntem Ausgang und lässt ihn die Regel selbst finden. Der zweite Weg ist maschinelles Lernen – und in diesem Kurs geht es darum, warum er funktioniert, wann er scheitert und wie man das eine vom anderen unterscheidet. Probier es zuerst selbst aus, bevor du die Erklärung liest.
Wähle eine Antwort und wie sicher du bist.
Antworte, um das Labor freizuschalten.
Interaktives Labor
Dieses interaktive Labor läuft im Browser mit aktiviertem JavaScript. Der Text drumherum beschreibt, was es zeigt.
Antwort anzeigen
Richtige Antwort: Schlechter als auf den Trainingsbiopsien
Die gelernte Schwelle erreicht im Training 89,7 % Genauigkeit, im Test aber nur 86,0 % (171 Biopsien): Eine Regel, die auf einen Datensatz zugeschnitten ist, schneidet bei neuen Daten meist schlechter ab. Außerdem erreicht eine von Hand gesetzte Schwelle von 15,0 im Test 88,3 %, also mehr als die gelernte. Im Training am besten zu sein heißt nicht, auch bei neuen Daten am besten zu sein.
Probier es aus
- Schieb den Schwellenwert-Regler langsam von links nach rechts und beobachte die Genauigkeit auf den Trainingsdaten. Halte dort an, wo die Regel deiner Meinung nach am besten funktioniert.
- Drück auf Lernen und vergleiche den Schwellenwert des Algorithmus mit deinem. Sieh dir beide Zahlen an: die Genauigkeit auf den Trainingsdaten und auf den Testdaten.
- Schieb den Schwellenwert-Regler ganz an ein Ende. Die Regel gibt jetzt fast jedem Tumor dieselbe Antwort – und trotzdem fällt die Genauigkeit nicht auf null. Überleg dir, warum, bevor du weiterliest.
- Prüf nach dem Klick auf „Lernen“, welcher Wert höher ist, Training oder Test, und entscheide, welchem du bei einer echten Patientin trauen würdest.
Die Idee in einfachen Worten
Beim klassischen Programmieren schreibt ein Mensch die Regel, und der Computer wendet sie an. Beim maschinellen Lernen liefert der Mensch Beispiele – Eingaben zusammen mit den richtigen Antworten –, und ein Algorithmus sucht eine Regel, die diese Antworten reproduziert. Die gefundene Regel heißt Modell. Danach wird das Modell genau wie eine handgeschriebene Regel benutzt: neue Eingabe rein, Vorhersage raus.
Denk daran, wie man lernt, ob eine Avocado reif ist. Niemand gibt dir eine Formel. Du drückst ein paar, schneidest sie auf, merkst dir, welche gut waren, und nach einem Dutzend Versuchen „weiß“ dein Daumen Bescheid. Aufgeschrieben hast du die Regel nie, aber du hast eine – gebaut aus Beispielen mit bekanntem Ergebnis. Ein Lernalgorithmus macht dasselbe, nur mit Zahlen und mit sehr viel mehr Geduld.
Warum es funktioniert
Die Beispiele in dieser Lektion stammen aus einem echten medizinischen Datensatz: 569 Brusttumoren, jeder beschrieben durch Messwerte von Zellkernen unter dem Mikroskop und jeder von einer Pathologin als bösartig (212 Fälle) oder gutartig (357 Fälle) eingestuft. Für den Anfang nehmen wir nur einen dieser Messwerte und die einfachste denkbare Regel: „über dem Schwellenwert → bösartig, darunter → gutartig“.
Den Schwellenwert von Hand zu wählen heißt raten. Den Schwellenwert zu lernen heißt, jeden möglichen Wert an den Beispielen auszuprobieren und den zu behalten, der die wenigsten Fehler macht. Mehr ist „Lernen“ hier nicht: eine von Daten gelenkte Suche nach der Einstellung, die bei bereits bekannten Fällen am besten funktioniert. Jedes Modell, dem du später begegnest – von der Geraden bis zum Sprachmodell mit Milliarden von Parametern –, folgt demselben Rezept: eine Familie möglicher Regeln, eine Bewertung und die Suche nach der besten Bewertung.
Es gibt einen Haken, und er ist die wichtigste Idee des ganzen Fachs. Eine Regel, die zu den bekannten Fällen gut passt, ist nicht automatisch gut. Was uns interessiert, sind die Fälle, die wir noch nicht gesehen haben: die nächste Patientin. Deshalb verstecken wir vor dem Lernen einen Teil der Daten. Das Modell lernt aus den Trainingsdaten und wird danach auf den Testdaten benotet, die es nie gesehen hat. Die Note ist meist die Genauigkeit (Accuracy), also der Anteil der Fälle, die die Regel richtig einordnet:
Genauigkeit = richtige Vorhersagen / alle Vorhersagen
Eine auf den Trainingsdaten gelernte Regel schneidet auf den Testdaten oft etwas schlechter ab. Diese Lücke ist der ehrliche Preis für die Begegnung mit neuen Daten, und der Testwert ist der, den du einer Ärztin nennen würdest.
Häufiger Fehler
Der klassische Anfängerfehler ist, ein Modell danach zu beurteilen, wie gut es auf den Daten abschneidet, aus denen es gelernt hat. Auf diesen Fällen hatte der Algorithmus jede Chance, sich anzupassen, also schmeichelt ihm der Wert. Die zweite Falle ist, die Baseline zu vergessen. Die meisten Tumoren in diesem Datensatz sind gutartig, also liegt eine „Regel“, die immer „gutartig“ sagt, schon in 357 von 569 Fällen richtig – fast zwei Drittel. Deshalb sinkt die Genauigkeit selbst dann nicht auf null, wenn eine Regel fast jedem Tumor dieselbe Antwort gibt. Jedes gelernte Modell muss diese triviale Antwort schlagen, bevor es Aufmerksamkeit verdient, und in der Medizin muss es außerdem die richtige Art von Fehlern machen – ein Thema, auf das wir in Lektion 6 zurückkommen.
Maschinelles Lernen ist also weder Magie noch Verstehen. Es ist eine disziplinierte Suche nach einer Regel, gefolgt von einer ehrlichen Prüfung auf Daten, die die Suche nie berührt hat. In der nächsten Lektion sehen wir uns den Rohstoff genauer an – Daten, Merkmale und Labels – und warum die Art, wie man die Daten aufteilt, den Wert verändert, den man erhält.
Quiz
Drei Fragen zur Selbstkontrolle. Wähle eine Antwort oder klappe die Lösung unter der Frage auf. Mit der Tastatur: Pfeiltasten wählen, Enter oder Leertaste bestätigt.
Das Wichtigste
- Beim maschinellen Lernen stammt die Regel aus gelabelten Beispielen, nicht aus dem Kopf einer Programmiererin.
- Lernen ist eine Suche: eine Familie von Regeln, eine Bewertung und die Einstellung mit der besten Bewertung.
- Ein Modell wird auf Testdaten benotet, die es nie gesehen hat; der Trainingswert schmeichelt ihm.
- Vergleiche immer mit einer trivialen Baseline, etwa der Vorhersage der häufigsten Antwort.
Tiefer: Formel, Code, Praxis
Die Mathematik
Die Genauigkeit ist accuracy = correct / n. Eine Schwellenregel sagt „bösartig“, wenn x > t gilt. Das Lernen wählt das t mit den wenigsten Fehlern auf den Trainingszeilen: t* = argmin over t of (mistakes on the training set). Nur die Mittelpunkte zwischen benachbarten sortierten Werten können sich unterscheiden, deshalb ist die Suche endlich und exakt.
- Der Wert auf den Trainingsdaten ist nach oben verzerrt:
t*wurde so gewählt, dass diese Zahl möglichst hoch ausfällt. - Der Wert auf den Testdaten ist eine unverzerrte Schätzung der künftigen Genauigkeit, weil mit ihm keine Wahl getroffen wurde.
- Die Baseline ist der Anteil der größten Klasse,
max(n₀, n₁) / n. Eine gelernte Regel lohnt sich nur, wenn sie ihn deutlich übertrifft.
Im Code (Python)
Anzahlen und die Baseline „immer gutartig“ für den gesamten Datensatz (das Lab nutzt nur den mittleren Radius und eine Aufteilung, deshalb werden seine 89,7 % und 86,0 % hier nicht reproduziert):
from sklearn.datasets import load_breast_cancer
from sklearn.dummy import DummyClassifier
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
print("tumours:", len(y))
print("malignant:", (y == 0).sum(), "benign:", (y == 1).sum()) # in sklearn gilt 0 = bösartig
always_benign = DummyClassifier(strategy="most_frequent").fit(X, y)
print(f"always 'benign': {always_benign.score(X, y):.1%}")
Ausgabe
tumours: 569
malignant: 212 benign: 357
always 'benign': 62.7%
Eine Regel, die den Tumor gar nicht ansieht, liegt in 62,7 % der Fälle richtig. Das ist die Latte, die jede gelernte Regel überspringen muss.
Notebook herunterladen (.ipynb). Öffne es in Jupyter oder lade es in Google Colab hoch; fehlende Daten lädt es selbst.
Für die Praxis
- Berechne zuerst die Baseline.
DummyClassifier(strategy="most_frequent")braucht eine Zeile und sagt dir, was „gut“ bei diesen Daten heißen muss. - Teile auf, bevor du irgendetwas lernst, auch eine Schwelle. Jede Entscheidung, die auf den Testzeilen getroffen wird, und sei sie noch so klein, macht den Testwert zu optimistisch.
- Nutze bei Klassifikation
stratify=yintrain_test_split, damit Training und Test denselben Anteil bösartiger Fälle behalten. - Die Genauigkeit zählt alle Fehler gleich. Ein übersehener bösartiger Tumor und ein Fehlalarm kosten nicht dasselbe, schau dir also die beiden Fehlerarten auch getrennt an (Lektion 6).
- Ein Testset mit 171 Zeilen liefert einen Wert, der um zwei oder drei Punkte schwankt (Lektion 2: Der Standardfehler beträgt bei 86 % etwa 2,7 Punkte). Lies aus einer so kleinen Lücke nicht ab, dass eine Regel besser ist.
War das hilfreich?
Danke! Das hilft uns, besser zu werden.
Mehr im Atlas
Einträge der Enzyklopädie zu den Ideen dieser Lektion: