Der Flaschenhals: Wie ein Netz einen Latent Space erfindet
Ein Netz, das seine Eingabe durch einen Engpass aus zwei Zahlen quetschen und danach wieder herstellen muss — ohne ein einziges Etikett. Dabei entsteht von selbst ein Raum, in dem Ähnliches nahe beieinander liegt. Mit Autoencoder-Labor: Sieh zu, wie der Raum beim Training geboren wird, und wandere hindurch.
👋 HerrKI hier — heute lernt ein Netz ohne Lehrer
🧭 Einfach gesagt: Ein Freund beschreibt ein Gesicht mit fünf Wörtern statt Millionen Pixeln — dein Netz presst Daten durch so einen engen Flaschenhals und baut sie wieder auf.
Ein Freund beschreibt dir am Telefon ein Gesicht — fünf Wörter: „rund, Vollbart, Brille, müde, freundlich“. Du siehst die Person vor dir und erkennst sie später auf einem Foto wieder. Fünf Wörter statt Millionen Pixel — und es reicht.
Das Prinzip dahinter: Kompression zwingt zum Verstehen. Wer mit wenigen Zahlen beschreiben muss, muss wissen, was wichtig ist. Wer unbegrenzt Platz hat, kopiert einfach alles mit.
Bis hierher hatte jedes Trainingsbeispiel ein Etikett: in 220 „Klasse A“ oder „Klasse B“, in 230 eine von mehreren Klassen. Heute gibt es kein einziges. Das Netz bekommt nur die Eingabe — und die Aufgabe, sie selbst wieder herzustellen. Klingt sinnlos? Es ist der Trick.
In 310 betrittst du bald einen Latent Space aus Milliarden Sätzen. Hier siehst du zu, wie einer geboren wird — live in deinem Browser.
- ✅ Die drei Teile eines Autoencoders: Encoder, Flaschenhals, Decoder
- ✅ Wie der Rekonstruktionsfehler das Etikett ersetzt — Lernen ohne Labels
- ✅ Warum im Flaschenhals ein Raum entsteht, in dem Nähe Ähnlichkeit heißt
- ✅ Was ein zu enger und ein zu weiter Flaschenhals anrichtet
- ✅ Wo das überall steckt: Embeddings, Bild-KIs, Anomalie-Erkennung
💡 HerrKI-Tipp: Ein Satz für dieses Kapitel — „Wer zusammenfassen muss, muss verstehen.“
🍾 Ein Netz mit Engpass
Ein Autoencoder (auto = selbst, encode = verschlüsseln) ist ein normales Netz aus 110 — mit einer Besonderheit: In der Mitte ist es absichtlich viel zu dünn. Drei Teile:
- Encoder — quetscht die Eingabe auf wenige Zahlen zusammen.
- Flaschenhals (Bottleneck) — diese wenigen Zahlen selbst, hier eine oder zwei.
Fachbegriff: Latent-Vektor, meist
z. - Decoder — baut daraus die Eingabe wieder auf.
x
[2]z
[1]x̂ ≈ x
[2]Gelesen: [2] → [8] → [1] → [8] → [2]. Zwei Zahlen rein, zwei raus — und in der Mitte muss
alles durch ein Nadelöhr von einer einzigen Zahl.
🎓 Lernen ohne Etiketten
Womit trainiert man, wenn niemand sagt, was richtig ist? Die Eingabe ist die richtige
Antwort. Das Netz misst den Abstand zwischen seiner Ausgabe x̂ und der Eingabe
x — mit dem MSE aus 115. Dieser
Abstand heißt Rekonstruktionsfehler.
Überwacht oder nicht? Weil kein Mensch Etiketten vergeben musste, heißt das unüberwachtes Lernen (unsupervised) — im Gegensatz zum überwachten (supervised) aus 220/230. Präziser sagen viele selbstüberwacht: Das Lernsignal steckt in den Daten selbst statt in einer Extra-Spalte. Etiketten sind teuer, Rohdaten umsonst — davon leben moderne Modelle.
🔬 Runter zum Tensor
Konkret. N Datenpunkte mit je zwei Zahlen, die Shapes
(010) durch das ganze Netz:
Die ReLUs (145) sorgen dafür, dass die gelernte Kurve krumm sein darf. Der Loss ist ein Skalar []; von dieser einen Zahl läuft der Gradient Descent (118) rückwärts durch alle vier Schichten. Einziger Unterschied zum überwachten Training: Ziel und Eingabe sind dieselben Daten.
Wie viele Gewichte sind das?
Eine Dense-Schicht mit e Eingängen und a Ausgängen hat e·a
Gewichte plus a Bias:
| Schicht | Rechnung | Parameter |
|---|---|---|
| Encoder 1: 2 → 8 | 2·8 + 8 | 24 |
| Flaschenhals: 8 → 1 | 8·1 + 1 | 9 |
| Decoder 1: 1 → 8 | 1·8 + 8 | 16 |
| Decoder 2: 8 → 2 | 8·2 + 2 | 18 |
| Summe | 24 + 9 + 16 + 18 | 67 |
67 Parameter — lächerlich wenig. Das Modul unten zeigt die Zahl selbst an, direkt aus TensorFlow.js: nachgezählt statt behauptet.
z ist eine Koordinate. Das
Netz muss jeden Punkt mit einer einzigen Zahl beschreiben und daraus wieder herstellen — es
kann sich nicht merken, welcher Punkt das war, sondern muss lernen, WO auf der Form
der Daten er liegt. Aus einem Speicherproblem wird eine Landkarte.
🧪 Das Autoencoder-Labor
Die Daten: rund 300 Punkte, verrauscht auf einer S-Kurve. Für dich eine Linie — für das frisch initialisierte Netz nur 300 Zahlenpaare.
🧪 Autoencoder-Labor
📍 Daten & Rekonstruktion
x ·
x̂ ·
Regler-Punkt
🌈 Der Latent-Strahl
Farbe = z. Tippe einen Punkt an — sein Code springt in den Regler.
Worauf du achten solltest. Anfangs liegen die blauen Punkte irgendwo. Mit jeder Epoche wandern sie näher an die S-Kurve — und rechts entsteht dabei ein Farbverlauf entlang der Kurve. Niemand hat dem Netz gesagt, dass die Punkte auf einer Linie liegen. Es hat sich diese Achse selbst ausgedacht, weil sie der einzige Weg war, den Fehler klein zu bekommen.
Und jetzt der Moment, um den es geht: Zieh am Regler. Du gibst dem Decoder eine Zahl, die in keinem Datenpunkt vorkommt — er macht daraus den roten Marker links. Schieb langsam durch, und der Marker läuft die Kurve entlang. Du wanderst gerade durch einen Latent Space — dieselbe Bewegung wie in 310 zwischen zwei Wörtern.
🔩 Was der Flaschenhals erzwingt
Die Breite des Flaschenhalses ist die zentrale Entwurfsentscheidung: Sie bestimmt, wie viel das Netz verstehen muss. Zwei Fehler:
- Zu eng. Passt die Form der Daten nicht auf so wenige Achsen, gehen Details verloren — die Rekonstruktion wird matschig.
- Zu weit. Ist der Flaschenhals so breit wie die Schicht davor, gibt es keinen Engpass mehr: Das Netz reicht die Eingabe durch. Fehler nahe null, gelernt hat es nichts.
🔩 Flaschenhals-Regler
Probier die Reihenfolge: „S-Kurve“ mit 1 — kommt weit, denn eine Linie ist eindimensional. Dann „Zwei Kurven“ mit 1: zwei getrennte Bögen auf einer Achse, der Fehler bleibt um ein Vielfaches höher. Dieselben Daten mit 2 — es passt wieder. Zum Schluss 8: Der Fehler fällt auf einen winzigen Wert, weil das Netz nur noch durchkopiert. Nichts verstanden, auswendig gelernt. (Die Werte schwanken von Lauf zu Lauf — es zählt der Größenunterschied, nicht die dritte Nachkommastelle.)
🌍 Zurück zur Anwendung: Wo das überall steckt
a) Embeddings: dieselbe Idee für Sprache
Ein Wort-Embedding aus 040, die Vektor-Rechnung aus 060 und der Latent Space aus 310 sind im Kern genau das hier, nur größer: Ein Satz wird zu wenigen hundert Zahlen, aus denen die Bedeutung rekonstruierbar bleibt. Der Flaschenhals ist die Embedding-Dimension.
b) Bild-KIs — warum Diffusion bezahlbar ist
Stable Diffusion und Verwandte (340) rechnen nicht auf Pixeln:
Der Diffusionsprozess läuft in diesem 48-fach kleineren Raum ab — erst das macht Bild-KIs auf einer normalen Grafikkarte bezahlbar. Der Autoencoder dort ist ein VAE (Variational Autoencoder), der den Latent Space zusätzlich glatt und lückenlos hält.
c) Anomalie-Erkennung: der Fehler als Alarm
Trainiere den Autoencoder nur auf Normalfällen. Danach rekonstruiert er Normales gut und Ungewöhnliches schlecht — der Rekonstruktionsfehler wird zum Alarmsignal. So findet man Ausfälle in Maschinen-Sensordaten oder Kreditkartenbetrug, ohne vorher eine Liste aller möglichen Fehler zu haben, die es ohnehin nie gibt.
d) Denoising: Rauschen rausrechnen
Gib dem Encoder eine verrauschte Eingabe, verlange die saubere Ausgabe: Das Netz lernt, Rauschen zu ignorieren und nur Struktur zu behalten — ein Denoising Autoencoder. Merk dir das für 340: „aus verrauscht mach sauber“ ist der Kern der Diffusionsmodelle.
🧭 Was heißt das für dich?
- „Unsupervised“ ist kein Buzzword mehr. Steht irgendwo „lernt ohne Labels“, weißt du, woher das Lernsignal kommt: aus einer Aufgabe, die sich die Daten selbst stellen.
- Kompression und Verständnis sind dasselbe. Eine gute Zusammenfassung schreibt nur, wer den Text verstanden hat.
- Wenn ein Ergebnis zu gut ist, sei misstrauisch. Ein Fehler nahe null kann heißen, dass nichts gelernt wurde.
- Du weißt jetzt, was ein Embedding ist. Kein magischer Bedeutungsvektor, sondern das Ergebnis eines Engpasses, durch den etwas hindurchmusste.
📚 Zum Weiterlesen
- Der Klassiker: Geoffrey Hinton & Ruslan Salakhutdinov, „Reducing the Dimensionality of Data with Neural Networks“, Science 2006 — PDF (cs.toronto.edu)
- Der VAE: Diederik P. Kingma & Max Welling, „Auto-Encoding Variational Bayes“, 2013 — arxiv.org/abs/1312.6114
- Latent Diffusion (die Basis von Stable Diffusion): Robin Rombach u. a., „High-Resolution Image Synthesis with Latent Diffusion Models“, 2021 — arxiv.org/abs/2112.10752
- Das Lehrbuch: Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, Kapitel 14 „Autoencoders“ — deeplearningbook.org
🧠 Kurzer Check — hast du es?
x
und x̂ ist das komplette Lernsignal.✅ Das nimmst du mit
- Encoder → Flaschenhals → Decoder. Ein Netz, das in der Mitte absichtlich zu dünn ist.
- Der Rekonstruktionsfehler ersetzt das Etikett. Die Eingabe ist das Ziel.
- Kompression erzwingt Struktur. Wer zusammenfassen muss, muss wissen, was wichtig ist.
- Die Breite des Engpasses ist die Entwurfsentscheidung. Zu eng verliert Details, zu weit lernt nichts.
- Nähe heißt Ähnlichkeit — zwangsläufig. Weil der Decoder glatt ist, muss der Encoder Ähnliches nebeneinander legen.
🚀 Weiter geht’s: Du hast gerade einen Latent Space mit einer Achse gebaut und bist mit dem Regler hindurchgelaufen. Bevor du in 310 „Latent Space“ einen Raum mit hunderten Achsen betrittst, gelernt aus Milliarden Sätzen, bekommt in 270 „Zeitreihen: fortschreiben oder klassifizieren“ erst einmal die Zeit eine Achse — am ehrlichen Beispiel Börse. Den Raum aus 310 wirst du danach wiedererkennen.
📎 So zitierst du dieses Kapitel
HerrKI: Der Flaschenhals: Wie ein Netz einen Latent Space erfindet. herrki.de/260_autoencoder, ein privates Hobbyprojekt von Terragon.de, abgerufen am 4. November 2026.
Lizenz: CC BY 4.0 — frei nutzen, teilen, anpassen. Nennung: „HerrKI (herrki.de), ein privates Hobbyprojekt von Terragon.de“.
