The clique — click a neuron and watch the house of cards
This 8-neuron net was just trained (in your browser, on page load) without any dropout. It fits the data beautifully — but look how it did it: some neurons grew huge opposite weights that cancel each other out. That's co-adaptation: a fragile conspiracy, not eight independent detectors. Click any neuron to fire it and watch the prediction curve — and the measured error — react.
Neuron size = |output weight|. The net is genuinely retrained fresh each page load, so which neuron is the keystone varies — hunt for it.
Layoffs live — train through the flicker
Now train with dropout. Every step, each hidden neuron survives only with probability 1−p — the dead ones flash red and contribute nothing for that step. No neuron can rely on a partner that might vanish, so each is forced to be independently useful. Try p = 0.5, then push to 0.8 and watch the layoffs become so brutal the team can't learn at all.
Real training, ~40 steps/frame. The flashing mask is the actual mask used in that step's forward and backward pass — inverted dropout (activations scaled by 1/(1−p)) so no test-time correction is needed.
The ablation exam — who handles losing a teammate
The fair fight. Press the button: two identical nets train from the same init — one plain, one with dropout 0.5. Then the exam: remove each of the 8 neurons in turn and measure how much the error jumps. The bars are the measured damage. Plain nets have keystones — one bar towers over the rest. Dropout nets took the layoffs in training, so no single neuron matters much.
Both nets: 8 hidden units, same data, same steps, same seed for the init. Sixteen ablations measured per click. Numbers change run to run — the pattern doesn't.
The volume bug — everyone came back and now it's too loud
Classic real-world bug. Train with p = 0.5 the "naive" way (no scaling during training). At test time all neurons are back — so the hidden layer's total output is roughly 2× louder than anything the output layer saw during training. Toggle the fix and watch the prediction curve snap onto the data. The offset you see is measured, not drawn.
Modern frameworks use "inverted dropout" (scale by 1/(1−p) during training) precisely so nobody can forget this step. This machine trains the naive variant on purpose so the bug is visible.
The hidden ensemble — one net, many opinions
Deepest way to see dropout: every random mask defines a different sub-network, and training visits millions of them with shared weights. So after training you own an ensemble. Keep dropout ON at test time and sample: each thin gold line is one masked sub-net's opinion. Crank K and watch the white average settle — and notice the opinions fan out exactly where there's no data.
This is Monte-Carlo dropout (Gal & Ghahramani): the spread of the gold lines is a usable uncertainty estimate. Data lives only in the middle of the range — watch the fan at the edges.