This repository contains solutions for different Machine Learning courseworks at Imperial College London (2022-2024).
- Built a decision tree for WiFi localization with pruning and cross-validation.
📜 Coursework 1 Specification
📑 Coursework 1 Report
📂 Coursework 1 Files
- Developed a modular neural network library from first principles using NumPy.
📜 Coursework 2 Specification
📑 Coursework 2 Report
📂 Coursework 2 Files
- Implemented image filters from scratch, including moving average, Gaussian smoothing, and Sobel filters, to reduce noise and enhance image quality.
- Applied edge detection techniques to identify important features, experimenting with different filter sizes and methods for better accuracy.
- Transitioned to PyTorch’s Conv2D filtering for a more efficient and optimized approach to image processing.
📜 Coursework 1 Specification
📓 Coursework 1 Notebook | 🔗 View in nbviewer | 📝 View PDF
- Trained and evaluated a U-Net model for brain tumor segmentation on 2D MRI slices.
📜 Coursework 2 Specification
📓 Coursework 2 Notebook | 🔗 View in nbviewer | 📝 View PDF
- Used gradient descent to optimize mathematical functions and study how different types behave during convergence.
- Explored how learning rates, function properties, and stopping criteria affect optimization, using tools like finite differences, autograd, and visualizations.
📜 Coursework Specification
📓 Coursework Notebook | 🔗 View in nbviewer
- Explored key theoretical concepts in machine learning.
- Implemented and trained a fully connected neural network.
- Linked deep neural networks to Gaussian processes by implementing an NNGP model.
📜 Coursework 1 Specification
📓 Coursework 1 Notebook | 🔗 View in nbviewer
- Optimized a diffusion model for generative tasks using a U-Net-based denoising process.
- Built a DeepDream pipeline with a pre-trained Inception-V3 for artistic feature visualizations.