Understanding Machine Learning by Building It From First Principles.
ScratchMind is a growing, open research-and-learning ecosystem focused on re-deriving, re-implementing, and re-explaining machine learning systems from scratch — without shortcuts, hidden abstractions, or blind reliance on libraries.
The goal is not speed.
The goal is clarity.
Modern ML education often jumps straight to frameworks, APIs, and benchmarks.
ScratchMind takes the opposite path.
We believe that:
- True understanding comes from reconstruction
- Implementation sharpens theory
- Teaching is a form of verification
- Systems thinking matters more than isolated tricks
Every project here starts with a simple question:
Why does this exist — and how would I build it if nothing existed already?
ScratchMind is organized as a set of focused repositories, each exploring a specific axis of machine learning.
-
ScratchVision
Vision models from first principles — from MLPs and convolutional ideas to biologically inspired architectures. -
ScratchGen
Generative modeling explored bottom-up: probability, likelihoods, latent variables, and generative processes. -
ScratchSeq (Coming Soon)
Sequential reasoning, temporal models, and the evolution from recurrence to attention.
Each repository is self-contained, with:
- conceptual notes
- from-scratch implementations
- experiments and reflections
- links back to theory and motivation
Alongside code, ScratchMind emphasizes documentation as a first-class artifact.
Writing serves three purposes:
- Revisit and refine understanding
- Expose gaps honestly
- Create reusable mental models for others
Blog posts and notes are linked directly from the repositories and may live as:
- Markdown documents
- GitHub READMEs
- External articles (Medium, GitHub Pages)
→ Blogs
The code explains how.
The writing explains why.
This is:
- deliberate, slow learning
- principled re-implementation
- systems-oriented ML thinking
- an evolving public notebook
This is not:
- a framework
- a tutorial dump
- a benchmark race
- production ML advice
- Start with any repository README
- Follow links from notes → code → experiments
- Use this page as the ecosystem map
There is no required order.
ScratchMind is intentionally unfinished.
Understanding is iterative.
Clarity compounds.
If something feels slow here, that is by design.