An LSTM is a recurrent cell with a protected memory lane — the cell state — guarded by three gates that decide what to erase, what to write, and what to reveal. It is the standard fix for the forgetting problem of the plain RNN (tool 109).
Where you meet it
- The lecture right after simple RNNs — the LSTM was invented precisely to cure their vanishing-memory problem.
- Long sequences where distant context matters: machine translation, speech recognition, long documents, time-series forecasting.
- Framework code:
nn.LSTMin PyTorch, theLSTMlayer in Keras — for years the default recurrent layer. - Exam questions like "how does an LSTM avoid the vanishing gradient?"
What it does
A plain RNN keeps one hidden state and rewrites it every step, so old information erodes. An LSTM adds a second memory — the cell state C — that runs along a near-uninterrupted highway, touched only by small additive edits. Three gates control the traffic: what to drop from memory, what new to store, and what to expose to the rest of the network. Information can then ride the cell state across dozens or hundreds of steps without fading.
A plain RNN multiplies its memory at every step; an LSTM adds to it — and addition is what lets the past survive.
How it works
The cell state is updated by adding, and the hidden state is read out from it through a gate:
Cₜ = fₜ · Cₜ₋₁ + iₜ · C̃ₜ # keep some old, add some new
hₜ = oₜ · tanh(Cₜ) # reveal a gated view
Reading it piece by piece:
- fₜ — the forget gate, a value from 0 to 1 per memory slot: 1 keeps the old memory untouched, 0 wipes it.
- iₜ · C̃ₜ — the input gate
iₜ(0 to 1) decides how much of a proposed new valueC̃ₜto write in. - oₜ — the output gate: how much of the memory to expose as the hidden state
hₜthat the rest of the network sees.
Each gate is a sigmoid σ, which squeezes any number into 0 to 1 — a soft switch. And the gates are not fixed dials: at every step they are computed from the current input and the previous hidden state, so the cell learns when to hold and when to let go.
Why this beats vanishing: when the forget gate sits near 1, the update is almost the identity — Cₜ ≈ Cₜ₋₁ plus a small edit. Along that path the memory is multiplied by about 1 each step instead of by Wₕ, so the gradient neither shrinks to zero nor explodes as it travels far back in time. This protected path is the constant error carousel at the heart of the original LSTM.
Watch out
- The gates are learned, not hand-set. The sliders here let you feel their effect, but in a real LSTM
f,i,oare outputs of small sigmoid layers the network trains — it decides the gate values itself, per step and per input. - Two states, two jobs. The cell state
Cis the long-term memory highway; the hidden statehis the gated working copy the rest of the net reads. They are not the same vector — a low output gate can hideCwithout erasing it. - Better, not magic. LSTMs ease the vanishing gradient but don't abolish it; over very long ranges memory still degrades, training is still sequential and slow, and for many tasks attention and transformers have since replaced them.
Swap "multiply the memory" for "add to the memory," and a network can finally remember across long gaps — that one change is the whole idea.
Go deeper
- Hochreiter & Schmidhuber (1997) — Long Short-Term Memory, Neural Computation (the original paper)
- Christopher Olah — Understanding LSTM Networks
- Deep Learning (Goodfellow, Bengio, Courville) — Ch. 10, §10.10 The LSTM and Other Gated RNNs
- Stanford CS230 — Recurrent Neural Networks cheatsheet (LSTM gates)
Ein LSTM ist eine rekurrente Zelle mit einer geschützten Gedächtnisspur — dem Zellzustand — bewacht von drei Gattern, die entscheiden, was gelöscht, was geschrieben und was gezeigt wird. Es ist die Standardlösung für das Vergessensproblem des einfachen RNN (Tool 109).
Wo es vorkommt
- In der Vorlesung direkt nach den einfachen RNNs — das LSTM wurde genau dafür erfunden, deren schwindendes Gedächtnis zu heilen.
- Lange Sequenzen, in denen weit entfernter Kontext zählt: maschinelle Übersetzung, Spracherkennung, lange Dokumente, Zeitreihen-Prognose.
- Framework-Code:
nn.LSTMin PyTorch, dieLSTM-Schicht in Keras — jahrelang die rekurrente Standardschicht. - Prüfungsfragen wie „Wie vermeidet ein LSTM den Vanishing Gradient?"
Was es tut
Ein einfaches RNN hält einen Hidden State und überschreibt ihn in jedem Schritt, sodass alte Information erodiert. Ein LSTM ergänzt ein zweites Gedächtnis — den Zellzustand C —, das über einen fast ungestörten Highway läuft und nur durch kleine additive Änderungen berührt wird. Drei Gatter regeln den Verkehr: was aus dem Gedächtnis fällt, was neu gespeichert wird und was dem Rest des Netzes gezeigt wird. So kann Information über Dutzende oder Hunderte Schritte auf dem Zellzustand mitreisen, ohne zu verblassen.
Ein einfaches RNN multipliziert sein Gedächtnis in jedem Schritt; ein LSTM addiert dazu — und das Addieren ist es, was die Vergangenheit überleben lässt.
Wie es funktioniert
Der Zellzustand wird durch Addieren aktualisiert, und der Hidden State wird über ein Gatter daraus abgelesen:
Cₜ = fₜ · Cₜ₋₁ + iₜ · C̃ₜ # etwas Altes behalten, etwas Neues addieren
hₜ = oₜ · tanh(Cₜ) # eine gesteuerte Sicht zeigen
Stück für Stück gelesen:
- fₜ — das Forget-Gatter, ein Wert von 0 bis 1 je Speicherplatz: 1 lässt das alte Gedächtnis unberührt, 0 löscht es.
- iₜ · C̃ₜ — das Input-Gatter
iₜ(0 bis 1) bestimmt, wie viel eines vorgeschlagenen neuen WertsC̃ₜhineingeschrieben wird. - oₜ — das Output-Gatter: wie viel des Gedächtnisses als Hidden State
hₜgezeigt wird, den der Rest des Netzes sieht.
Jedes Gatter ist ein Sigmoid σ, das jede Zahl in 0 bis 1 quetscht — ein weicher Schalter. Und die Gatter sind keine festen Regler: In jedem Schritt werden sie aus der aktuellen Eingabe und dem vorherigen Hidden State berechnet, die Zelle lernt also, wann sie hält und wann sie loslässt.
Warum das Vanishing schlägt: Sitzt das Forget-Gatter nahe 1, ist das Update fast die Identität — Cₜ ≈ Cₜ₋₁ plus eine kleine Änderung. Auf diesem Pfad wird das Gedächtnis pro Schritt mit etwa 1 multipliziert statt mit Wₕ, sodass der Gradient weder auf null schrumpft noch explodiert, wenn er weit in der Zeit zurückwandert. Dieser geschützte Pfad ist das Constant Error Carousel im Kern des ursprünglichen LSTM.
Worauf achten
- Die Gatter werden gelernt, nicht von Hand gesetzt. Die Regler hier lassen dich ihre Wirkung fühlen, aber in einem echten LSTM sind
f,i,oAusgaben kleiner Sigmoid-Schichten, die das Netz trainiert — es bestimmt die Gatterwerte selbst, pro Schritt und pro Eingabe. - Zwei Zustände, zwei Aufgaben. Der Zellzustand
Cist der Langzeit-Highway; der Hidden Statehist die gesteuerte Arbeitskopie, die der Rest des Netzes liest. Es sind nicht dieselben Vektoren — ein niedriges Output-Gatter kannCverbergen, ohne es zu löschen. - Besser, nicht magisch. LSTMs mildern den Vanishing Gradient, schaffen ihn aber nicht ab; über sehr lange Distanzen verblasst das Gedächtnis weiterhin, das Training bleibt sequenziell und langsam, und für viele Aufgaben haben Attention und Transformer sie inzwischen abgelöst.
Tausche „das Gedächtnis multiplizieren" gegen „zum Gedächtnis addieren", und ein Netz kann sich endlich über lange Lücken erinnern — diese eine Änderung ist die ganze Idee.
Mehr dazu
- Hochreiter & Schmidhuber (1997) — Long Short-Term Memory, Neural Computation (Originalpaper)
- Christopher Olah — Understanding LSTM Networks
- Deep Learning (Goodfellow, Bengio, Courville) — Kap. 10, §10.10 The LSTM and Other Gated RNNs
- Stanford CS230 — Recurrent Neural Networks cheatsheet (LSTM-Gatter)