School assignments and final project from my Machine Learning course (Spring 2025).
This repository showcases a progression from classical regression theory all the way to deep learning and zero-shot vision-language models.
| # | Folder | Topic | Key Techniques |
|---|---|---|---|
| 1 | hw1-regression/ |
Regression on spatial data | RBF basis functions, ML / MAP / Bayesian estimation, k-fold CV |
| 2 | hw2-classification/ |
Image classification (from scratch) | Logistic regression (binary), Softmax regression (10-class), gradient descent |
| 3 | hw3-emotion-cnn/ |
Facial emotion recognition | Custom ResNet-like CNN in PyTorch, FocalLoss, cosine LR scheduling |
| 4 | final-project-few-shot-food-classification/ |
Few-shot food recognition | CLIP zero-shot inference, 30-class food dataset, Hugging Face Transformers |
HW1 → Classical Bayesian regression (no deep learning)
HW2 → Linear models for image classification (NumPy only)
HW3 → Deep CNN with modern training tricks (PyTorch)
Final → Zero-shot learning with vision-language models (CLIP)
- Python 3.10+
- NumPy / Pandas — for classical ML implementations
- PyTorch — CNN training and inference
- Hugging Face Transformers — CLIP model for few-shot/zero-shot learning
- scikit-learn — stratified splits, utilities
Each sub-project has its own README.md with detailed setup and run instructions.
In general:
# Install dependencies (recommend using a virtual environment)
pip install numpy pandas pillow torch torchvision transformers tqdm scikit-learn
# Then navigate to the project folder and follow its README
cd hw1-regression/
python problem_1.pyEach homework folder includes a report.pdf with analysis, results, and discussion.
Student ID: 312709045