A neural network that learns to read your handwriting while you watch
This trains a small neural network on 1,797 real handwritten digits, live, in your browser, using ConvNetJS, the same library behind Adam Harley's well known MNIST visualizer. Watch the layers light up on every forward pass, then watch the gradient sweep back through them on every backward pass. The hidden layers are editable: add or remove perceptrons and the network rebuilds and retrains from scratch.
Getting this to read your handwriting, rather than just the dataset's, took the three things that usually matter more than network size. Every digit is randomly shifted, rotated and rescaled before each pass, so thirty epochs means thirty different views of it rather than the same one thirty times. What you draw is framed on its centre of mass, the way the training images were, so the answer doesn't depend on where or how big you drew. And each prediction is averaged over seven small variations of your drawing, which stops the answer flickering between two digits while you are still mid-stroke.
Those changes are measured, not assumed. Against the previous version of this demo — 32 → 16 units, plain SGD, fourteen epochs, no augmentation — accuracy on clean held-out digits went from 93.3% to 96.7%. On the same held-out digits shifted, rotated and rescaled the way a hand would, it went from 44.8% to 82.3%. Almost all of that comes from the augmentation; the averaging earns its place on steadiness rather than on accuracy.
Draw as big as you can, filling most of the canvas.
Training on 1,797 handwritten digits…
Press Retrain to re-split the data and train a fresh network from new random weights. The held-out accuracy moves by a point or two each time, which is the honest answer to “how good is this model”: a range, not a number.
This is how I'd bring a black box model into a form your team can actually inspect. I show it thinking, not just its answer. On interpretability and trust