PREVIEW
DigiSim Museum

Neuron Lab

Open Simulator
A real fully-connected network learning to read digits. Every ball is a neuron, every line is a weight. Click any ball to open it and watch its exact sum; a line is bright because upstream activation × its weight is large.
∇-check pending…
epoch
0
samples seen
0
train loss
test accuracy
parameters
status
idle
speed
lr η
batch
forward · activation signal
excitatory (+ weight)
inhibitory (− weight)
backward · error gradient
gradient pulse →
lines = the model (weights)
balls = activations (per input)
wires show
drag orbit · scroll zoom · click a ball open it
During training: known vs learned
INPUTvalues KNOWN — the pixels we feed
HIDDEN 1weights UNKNOWN — meaning self-taught · no target
HIDDEN 2weights UNKNOWN — meaning self-taught · no target
OUTPUTmeaning + target KNOWN · weights UNKNOWN
Every wire is a weight = UNKNOWN; training solves for all of them. We design the layers, sizes, activations & loss; we obtain the trained weights. Hidden layers get no answer key — only blame passed back from the output.

Inside the neuron · the exact sum

— pick one —

Why is a line bright? · the mechanism

Each wire carries one number: the upstream neuron's activation times this wire's weight (ai · wij). A wire is bright when that product is large — because the source neuron is firing hard, or the weight is big, or both. Warm = pushing the target up, cool = pulling it down. Open a neuron, then hover its bars to light up the exact wire.

Supervision · what's given

probing
the image always known
answer:
net's guess:
loss: (how wrong it is)
correction sent backward
Each training image arrives paired with its correct answer; the net shifts its weights toward it. At probe / test time the answer is withheld — the net must produce it alone.

Output · the 10 answer neurons (softmax)

The last layer's 10 neurons compete; softmax turns their scores into probabilities that sum to 1.

Probe & draw · feed it a digit

Send a clean digit, or paint one (16×16 is the network's real input size). The whole graph re-fires instantly.

Real net, MNIST stand-in data. Real handwriting uses MNIST (28×28, 60k human samples). To keep the graph legible and every wire visible, inputs here are 16×16 digits drawn procedurally with random shifts/rotations/noise (that's data augmentation), trained end-to-end for real. Architecture 256 → 16 → 12 → 10 (ReLU, softmax + cross-entropy, momentum SGD). The ∇-check badge confirms the backprop numerically. A fully-connected net is the most transparent kind — not the most accurate; convolutional nets do better on real images.
Drag to orbit · click a neuron to open it · ⌘/Ctrl + scroll to zoom