Overview
I implemented a fully connected multi-layer perceptron using Python and NumPy, without relying on TensorFlow or PyTorch. The purpose was to work directly with the mathematics and training logic that machine learning frameworks normally handle.
What I implemented
- Forward propagation through configurable layers
- Activation functions and their derivatives
- Backpropagation to calculate gradients
- Gradient descent and parameter updates
- Training and evaluation on classification tasks
Following the training process
The implementation connects each stage of training: passing inputs through the network, calculating gradients through backpropagation, and using those gradients to update the weights.
Working with NumPy makes the matrix operations explicit. Rather than treating a layer or optimiser as a framework component, the project requires those operations to be expressed directly in code.
What I took from it
The value of this project was in connecting the equations to an implementation. Forward propagation, derivatives and weight updates become easier to reason about when they are parts of the same training process.
It gave me a practical foundation for understanding what higher-level neural network libraries do behind their interfaces.
Status
Completed.