Milestone map
Milestone map
3 milestones
Implement Linear and Logistic Regression From Scratch
6–10 weeks
Implement linear regression with gradient descent and logistic regression with stochastic gradient descent using only NumPy — no scikit-learn or ML library for the core algorithm. Train each on a real dataset, evaluate with appropriate metrics, and compare results to the scikit-learn reference implementation.
Proof required
Submit: a public GitHub repository (or Colab notebook) containing your NumPy implementations with training and evaluation report showing your implementation's metrics vs scikit-learn's on the same dataset; and a 200-word explanation of why gradient descent converges and what the learning rate controls. A data scientist or ML engineer must confirm the implementations are correct and the comparison is valid.
What gets checked
- Implementations use only NumPy — no scikit-learn or ML frameworks for the core algorithm
- Comparison to scikit-learn shows metrics within 1% on identical inputs — not just 'similar' results
- A data scientist or ML engineer has confirmed the implementations are correct
Common mistakes
- Using scikit-learn's Lasso or Ridge as a 'scratch implementation' — the proof requires manual gradient descent
- Comparison to scikit-learn on different datasets or preprocessing — the comparison must be on identical inputs
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Are the implementations using only NumPy — no scikit-learn for the core algorithm?
- Is the scikit-learn comparison on identical inputs and preprocessing steps?
- Does the gradient descent explanation correctly describe why the learning rate matters?
You'll sign in first, then come straight back here.
Implement a Neural Network and Backpropagation From Scratch
10–16 weeks (after milestone 1)
Implement a multi-layer feedforward neural network with backpropagation using only NumPy — no PyTorch, TensorFlow, or automatic differentiation. Implement forward pass, cross-entropy loss, and backpropagation with manual gradient derivation. Train on MNIST and achieve at least 95% test-set accuracy.
Proof required
Submit: a public GitHub repository (or Colab notebook) containing your NumPy neural network with training script, accuracy plot, and confusion matrix; a handwritten or typed derivation of the backpropagation equations for at least two layers; and a comparison to a PyTorch baseline on the same dataset. A data scientist or ML engineer must confirm the implementation is correct and the accuracy is measured on the test set.
What gets checked
- Implementation uses only NumPy — no automatic differentiation libraries
- Backpropagation derivation is written out for at least two layers — not just code with gradient variables
- Test-set accuracy of at least 95% on MNIST — not training-set accuracy
Common mistakes
- Using PyTorch autograd for the backpropagation — the proof requires manual gradient derivation
- Accuracy measured on the training set rather than the test set — generalisation is what matters
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Is the neural network implemented in NumPy only — no automatic differentiation?
- Is the backpropagation derivation written out for at least two layers?
- Is the accuracy measured on the test set — not the training set?
You'll sign in first, then come straight back here.
Present ML Implementations and Answer Novel Design Questions
2–4 weeks to prepare and schedule (after milestone 2)
Present your ML implementation portfolio to a data scientist or ML engineer in a live technical review. The reviewer will ask you to explain a design choice in one of your implementations in depth, and pose a novel ML algorithm question you must sketch in real time.
Proof required
Submit: a recording or transcript of a live technical review with a data scientist or ML engineer; the portfolio repositories; and documentation of the novel algorithm question posed, your on-the-spot sketch, and the reviewer's assessment of whether the approach is sound.
What gets checked
- Review was live — not an async written exchange
- A novel algorithm design question was posed that was not covered in the portfolio
- Reviewer's assessment of the on-the-spot sketch is documented
Common mistakes
- Live review that becomes a portfolio walkthrough without novel questions from the reviewer
- Novel question that can be answered by recalling the portfolio — must be genuinely new
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Was the review live — not async?
- Was the novel question genuinely new — not answerable by recalling the portfolio?
- Is the reviewer's assessment of the sketch documented?
You'll sign in first, then come straight back here.