Projects
-
Now 2024 - Ongoing
Convolutional Neural Network (from scratch in C++)
github.com/madmax755/cnn-from-scratch
Custom implementation of a Convolutional Neural Network (CNN) for image classification without ML libraries.
Features:
- Convolutional layers with configurable kernels
- Pooling layers
- Dense layers for classification
- Tensor3D class for efficient 3D data handling
- AdamW optimiser
- Model serialisation (save/load functionality)
Results:
- Trained model on MNIST dataset (+augmentation) to achieve a 99.4% accuracy - see demo
-
Oct 2024 - Nov 2024
Gated Recurrent Unit (GRU) Neural Network (from scratch in C++)
github.com/madmax755/gru-from-scratch
Custom implementation of Gated Recurrent Unit (GRU) architecture for time series sequence processing without ML libraries.
Features:
- GRU cell implementation with MLP output layers
- Configurable input, hidden, and output dimensions
- AdamW optimiser
- Financial metrics for stock prediction (profit/loss, directional accuracy)
Results:
- See demo to reveal the models strength and weaknesses on a sentiment analysis task
-
Sep 2024 - Oct 2024
Feedforward Neural Network (from scratch in C++)
github.com/madmax755/mlp-from-scratch
Custom implementation of a feedforward MLP neural network without external ML libraries.
Features:
- Flexible network topology with configurable layer sizes
- Multiple activation functions (ReLU, Sigmoid, Softmax)
- Advanced optimisers (SGD, SGD+Momentum, NAG, Adam, AdamW)
- Multi-threaded training for improved performance
- Model serialisation (save/load functionality)
- Evaluation metrics (accuracy, precision, recall, F1 score)
Results:
- Acheived 91% peak accuracy on a large-scale handwritten digit classification dataset (MNIST).
-
Aug 2024 - Ongoing
Self-hosted Web Server
• Created portfolio, minesweeper, and personal todo-list websites, self-hosted on a Raspberry Pi Zero W using Nginx as a reverse proxy, the cloudflare API to DDNS allocation, and CI/CD via github actions
• Used HTML, JavaScript, and CSS to create responsive, mobile-friendly user interfaces.