Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Was ist eigentlich Deep Learning?

Der Name ist erfreulich ehrlich: Deep heißt „viele Ebenen (Layer)“, Learning heißt „Training“. Deep Learning ist also das Training von künstlichen neuronalen Netzen mit vielen Ebenen. Was ein künstliches neuronales Netz ist, was eine Ebene ist und was beim Training passiert, ist der Inhalt dieser Vorlesung. Am Ende des Kapitels haben wir zumindest eine erste Definition.

Was Sie mitbringen sollten

Wir setzen voraus, dass Sie die folgenden Begriffe schon einmal gesehen haben und keine Angst vor ihnen haben: Vektorraum und Vektor, Matrix, Ableitung, Zufallsvariable, und eine grobe Idee davon, was lineare Regression ist. Dazu Grundlagen in Python, idealerweise mit NumPy. Am besten hat man vorher das Modul „Data Science“ bestanden; die Module „Machine Learning“ oder „Data Science 2“ sind nicht erforderlich.

Was wir zusammen lernen

Begriffe wie Gradientenabstieg, Loss-Funktion, Matrizen- und Tensorkalkül, latenter Raum, logistische Regression. Die Grundlagen von PyTorch. Was ein neuronales Netz ist, wie man fertige Modelle benutzt, wie man fertige Modelle verändert, und was die Besonderheiten bei Text und bei Bildern sind.

Der grobe Plan in Stichworten: Geschichte (Perzeptron) – Hugging Face (fertige Modelle) – PyTorch (eigene Modelle) – logistische Regression (Softmax) – Gradientenabstieg und Backpropagation – Sparse Autoencoder und VAE für die Klassifikation von MNIST-Ziffern – NLP mit word2vec und Tokenizern – CNNs für MNIST – LLMs benutzen – GANs (wie DALL-E mini).

Wieso Python eine Katastrophe ist

Für maschinelles Lernen ist Python eigentlich völlig ungeeignet, denn es ist

Wieso Python ganz toll ist

Für maschinelles Lernen ist Python perfekt, weil

Der scheinbare Widerspruch löst sich auf, wenn man Python als Steuersprache betrachtet: Die eigentliche Arbeit – Matrixmultiplikationen auf Millionen von Zahlen – passiert in kompiliertem Code, oft auf der GPU. Python sagt nur, welche Operation als Nächstes dran ist. Genau das ist die Idee der vektorisierten Programmierung mit NumPy, und PyTorch treibt sie weiter.

Erinnerung: Begriffe aus dem maschinellen Lernen

Daten und erzeugende Verteilung

Wir haben Datenpunkte x1,x2,…,xNx_1, x_2, \dots, x_N mit jeweils xi∈Rnx_i \in \mathbb{R}^n. Die Grundannahme des maschinellen Lernens ist, dass es eine erzeugende Verteilung (die Population) einer Zufallsvariable XX gibt, aus der die Datenpunkte als Stichprobe gezogen wurden – und die wir nicht kennen.

Ein Modell für XX ist eine Beschreibung dieser Verteilung, etwa durch eine Dichtefunktion p(x)p(x) oder durch einen Sampler, also einen Algorithmus, der neue Stichproben x~∼X\tilde{x} \sim X erzeugt. Ein solches Modell heißt generativ, weil man damit Stichproben generieren kann. Ein klassisches Beispiel ist ein Gaussian Mixture Model, mit dem man etwa ein Bild in Vorder- und Hintergrund segmentieren kann.

Ein generatives Modell in Aktion: Ein Gaussian Mixture Model mit zwei Komponenten wird an das Histogramm der Pixelwerte gefittet und trennt so Vorder- und Hintergrund (nach einem Beispiel aus den Scipy Lectures).

Ein generatives Modell in Aktion: Ein Gaussian Mixture Model mit zwei Komponenten wird an das Histogramm der Pixelwerte gefittet und trennt so Vorder- und Hintergrund (nach einem Beispiel aus den Scipy Lectures).

Supervised und Unsupervised

Wenn es zu den Datenpunkten auch (bekannte) Label gibt, d.h. nicht nur x1,…,xNx_1, \dots, x_N, sondern auch y1,…,yNy_1, \dots, y_N mit yi∈Rmy_i \in \mathbb{R}^m, so sprechen wir von Supervised Learning. Oft ist m=1m = 1 (einfache Regression) oder sogar yi∈{0,1}y_i \in \{0, 1\} (binäre Klassifikation). Ohne Label ist es Unsupervised Learning; dazu gehören generative Modelle wie oben, aber auch Clustering und Dimensionsreduktion.

In beiden Fällen unterscheiden wir zwei Phasen:

Regression und Klassifikation

Regression ist supervised, d.h. es gibt (x,y)(x, y)-Paare. Das Ziel ist ein funktionaler Zusammenhang

Y=f(X)+ε,Y = f(X) + \varepsilon,

sodass für die Stichprobe (xi,yi)(x_i, y_i) der Fehler ε\varepsilon möglichst klein ausfällt. Bei der linearen Regression ist ff affin-linear, f(x)=w⋅x+bf(x) = w \cdot x + b.

Klassifikation ist der Spezialfall, in dem YY nur endlich viele Werte annimmt, z.B. Y∈{0,1}Y \in \{0, 1\}. Man kann Klassifikation als Regression betreiben – man fittet ff mit reellen Werten und färbt anschließend nach f(x)>12f(x) > \tfrac12 – aber wir werden sehen, dass das nicht die beste Idee ist und die logistische Regression es besser macht.

Zwei linear trennbare Klassen (links) und eine lineare Regression mit der Klasse als abhängiger Variable (rechts): Die Vorhersage ist eine reelle Zahl, die man bei \tfrac12 abschneiden kann.

Zwei linear trennbare Klassen (links) und eine lineare Regression mit der Klasse als abhängiger Variable (rechts): Die Vorhersage ist eine reelle Zahl, die man bei 12\tfrac12 abschneiden kann.

Die Kernfrage: Wie gut ist das Modell?

Wie bewerte ich die Güte des Modells, wie bewerte ich den Erfolg der Inferenz? Die Standardantwort ist der Training-Test-Split: Man hält einen Teil der Datenpunkte zurück (verwendet ihn nicht im Training), um damit das trainierte Modell zu testen. Die kompliziertere Variante ist die kk-fold cross validation, bei der man die Daten in kk Teile zerlegt und reihum jeden Teil einmal als Testset verwendet.

Und was misst man auf dem Testset? Bei Klassifikation naheliegend die Accuracy, den Anteil korrekt klassifizierter Samples. Die ist irreführend, wenn die Klassen unbalanciert sind (99 % Nicht-Spam: ein Modell, das immer „kein Spam“ sagt, hat 99 % Accuracy). Dann schaut man pro Klasse auf Precision (welcher Anteil der als positiv vorhergesagten Samples ist wirklich positiv?) und Recall (welcher Anteil der wirklich positiven Samples wurde gefunden?); bei Regression auf den mittleren quadratischen Fehler. Wir kommen bei den Loss-Funktionen darauf zurück.

Antwort: Wer Modelle vergleicht und Hyperparameter nach dem Testergebnis wählt, lässt das Testset indirekt ins Modell einfließen – die gemessene Güte ist dann zu optimistisch. Deshalb spaltet man vom Trainingsset ein Validation-Set ab (Validation-Split), trifft daran alle Entscheidungen und fasst das Testset genau einmal an, ganz am Ende.

Kurzgeschichte

Bis 2010

2010–2015

Lesetipp: „The Decade of Deep Learning“ von Leo Gao, bmk.sh/2019/12/31/The-Decade-of-Deep-Learning. Die Highlights für diese Vorlesung:

Nach 2015

Das meiste davon ist Stoff der aufbauenden Module. Die Transformer sind die Ausnahme:

Diese Prozentzahlen sind die unzuverlässigsten in diesem Kapitel, und zwar aus einem Grund, der über den Benchmark hinausgeht: Ein Modell wird hier nie allein gemessen, sondern immer zusammen mit seinem Harness. Das Harness ist das Programm drumherum – es entscheidet, welche Dateien das Modell zu sehen bekommt, welche Werkzeuge es aufrufen darf, was passiert, wenn ein Test fehlschlägt und was aus dem Verlauf weggeworfen wird, wenn der Kontext voll ist. Lewis (2026, Same Model, Different Harness: Different Coding-Agent Results) hält die Gewichte fest und ändert nur, wie das Harness ältere Werkzeugausgaben kürzt: Der Anteil reparierter Tests steigt von 28 % auf 49 %. Einundzwanzig Prozentpunkte, ohne dass am Modell etwas geändert wurde.

Daraus folgen zwei Dinge. Erstens ist die Frage „welches Modell ist besser?“ in dieser Disziplin schlecht gestellt – gemessen wird das Paar aus Modell und Harness. Zweitens sind Zahlen aus verschiedenen Quellen nur dann vergleichbar, wenn dasselbe Harness benutzt wurde; selbst der Benchmark-Betreiber Epoch AI hat sein Standard-Scaffold im Februar 2026 ausgetauscht, worauf die Werte aller Modelle sprangen. Wer eine solche Zahl zitiert, nennt das Harness dazu – sonst ist sie ungefähr so aussagekräftig wie eine Laufzeit ohne Angabe des Rechners.

Übung

Ein Rissdetektor findet unter 200 Bauteilen 30 als „rissig“ markierte, davon sind 24 tatsächlich rissig; insgesamt gibt es 40 rissige Bauteile. Berechnen Sie Precision und Recall. Welche der beiden Zahlen würden Sie in der Qualitätssicherung höher gewichten, und warum?

Antwortprobe: die beiden Werte verhalten sich wie 4 zu 3, und der größere ist der, in dessen Nenner die 30 steht.