The underlying foundations of the project are built entirely from scratch, including even implementations of gradient descent and backpropagation without using PyTorch's automatic differentiation. These foundational modules include:
- neuron.py: Forward and backward propagation of a single neuron
- backprop.py: Manually implemented backpropagation algorithm
- mlp.py: Complete implementation of a Multilayer Perceptron (MLP)
- activations.py: Various activation functions (ReLU, Sigmoid, Tanh, etc.)
- loss.py: Implementation of loss functions
- training_loop.py: Complete training loop
- dead_relu_detector.py: Tool to detect and diagnose the problem of dead ReLU neurons
By manually implementing these components, developers can build an intuitive understanding of the "mechanical principles" of neural networks. When you write every step of the chain rule derivation by hand, vanishing and exploding gradients are no longer abstract concepts—they become concrete phenomena that can be observed and debugged in code.