Course
Neural networks in t27: from one neuron to a transformer block
The agents of this project think with neural networks, and here their parts are written as t27 specs with tests, specs the compiler checks. Every widget runs the fn bodies of a specs/ml spec compiled to WebAssembly: move a slider and the spec answers.
Course 10, 27 lessons, a live widget and a t27 spec each: activations, softmax and embeddings, pooling and batch norm, losses, SGD, RMSProp and Adam, backpropagation and XOR, recurrent cells, attention, a transformer block and PPO. Every number is computed by a compiled spec.
All lessons
Module 1 · One neuron
A neuron sums its inputs and bends the sum: ReLU, the sigmoid and tanh, and where each one stops passing a gradient back.
Module 2 · New bends
The smooth curves of current models: GELU with its dip, Swish with its knob, and ELU with a floor instead of a cliff.
Module 3 · A layer
What sits around the neurons: softmax turns scores into a choice, an embedding turns a word into numbers, dropout switches units off.
Module 4 · Pictures
Reading a picture in patches: a window averaged over its patch, max pooling, and batch normalisation of features on different scales.
Module 5 · The error
How wrong a guess is, as one number: mean squared error, cross-entropy for probabilities, and the Huber loss for outliers.
Module 6 · Downhill
Walking down the loss: gradient descent with momentum, RMSProp that ignores the gradient's size, and Adam that combines them.
Module 7 · Learning
Where the gradients come from and what they achieve: backpropagation through a layer, a network that learns XOR, and LAMB for large batches.
Module 8 · Memory and attention
Networks that read a sequence: a recurrent cell and its fading echo, the gates of an LSTM, and attention over every position at once.
Module 9 · The transformer and the reward
The parts of a transformer and of an agent: positions as clocks, one encoder block, and PPO, which learns from reward without lurching.