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?
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?
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?