ML Experiments
A collection of machine learning experiments and Jupyter notebooks exploring various algorithms, architectures, and techniques. Built as a learning resource while studying ML fundamentals and modern deep learning approaches.
Overview
This repository is my ML learning lab - a place to implement algorithms from scratch, experiment with different architectures, and build intuition for how these models actually work beyond just calling library functions.
Each notebook focuses on a specific concept, starting with mathematical foundations and building up to working implementations with visualizations and experiments.
Experiments
Neural Networks from Scratch
Implementing forward pass, backpropagation, and gradient descent using only NumPy to understand the fundamentals.
CNN Architectures
Implementing and comparing LeNet, AlexNet, VGG, and ResNet for image classification tasks.
Sequence Models
RNNs, LSTMs, and Transformers for text classification and sequence prediction tasks.
Classical ML
Decision trees, random forests, SVMs, and ensemble methods with scikit-learn.
Featured: Attention Visualization
One of my favorite experiments visualizes attention weights in a transformer model. By extracting and plotting attention patterns, you can see what the model "focuses on" when making predictions.
This visualization helped me understand why transformers are so effective for NLP tasks - they can learn to attend to relevant context regardless of distance in the input sequence.
The attention visualization notebook has been starred by 50+ researchers and is used in several university courses as teaching material.
Tech Stack
What I Learned
Implementing algorithms from scratch, even inefficiently, builds understanding that no amount of library usage can match. Debugging why your gradients are exploding or your model isn't learning teaches you far more than achieving good accuracy on a benchmark.
I also learned about reproducibility - the importance of seeding random numbers, logging hyperparameters, and versioning both code and data.