Machine Learning, from scratch.
From neurons to transformers: building every major architecture from scratch.
Frameworks hide exactly the parts you should understand. So I built the parts: every model on this page is implemented from first principles, with no high-level ML wrappers, so you can see exactly how each algorithm works.
Each part is a full write-up of what I built, how it works, and what went wrong along the way, with the real trained model embedded on the page so you can try it yourself.
The series

Multi-Layer Perceptron
97%+→MNIST digit classification (0-9)
Goal Accurately predict hand-drawn digits in production
Dataset MNIST 28×28 grayscale images (60k train / 10k test)
Architecture 784 → 256 → 128 → 10 with ReLU, Adam, He init, L2 regularization
Result 97%+ test accuracy

Convolutional Neural Network
97.88%→Two-digit classification (0-99)
Goal Scale digit recognition to two-digit numbers (0-99)
Dataset Paired-MNIST 28×56 images (concatenated digits, 00-99 labels)
Architecture Conv(3×3,16) → ReLU → MaxPool → Conv(3×3,32) → ReLU → MaxPool → FC(256) → Dropout(0.4) → FC(100)
Result 97.88% test accuracy (10,000 samples)

Recurrent Neural Network
94.36%→Doodle classification (10 animals)
Goal Classify hand-drawn doodles into 10 animal classes
Dataset Google Quick, Draw! stroke sequences (dx, dy, pen-lift)
Architecture 2-layer bidirectional GRU (hidden 192), AdamW, label smoothing, dropout
Result 94.36% top-1 accuracy (188,779 test samples)

Transformers
~92%→Emotion, Shakespeare, EN→FR translation
Paper "Attention Is All You Need", re-implemented end to end
Encoder 6-class emotion classification + masked language modeling
Decoder Character-level Shakespeare generation (a small GPT)
Seq2Seq Full encoder-decoder translating English to French
The data
CNN
MNIST-100 (28×56, digits 0-99)
Paired from MNIST
Transformer
Tiny Shakespeare · GoEmotions · WMT14 EN-FR
Various
All training data is downloaded on demand by each part's setup script · trained weights live on the Hugging Face demos