Skip to content

Latest commit

 

History

History
7 lines (4 loc) · 1.05 KB

File metadata and controls

7 lines (4 loc) · 1.05 KB

Python

A trainable, learning neural-network built in Python without using any machine learning libraries. The network, which is customizable in size, performs a forward pass beginning with randomized weights and biases. It then repeatedly runs backpropagation to learn from its mistakes, minimizing the loss function by calculating the gradient of every node and doing gradient descent. Around 30 epochs were ran on 20,000 training images due to performance limitations.

Using a multilayer perceptron (MLP) architecture, it can recognize handwritten digits with up to 86% accuracy. To improve this model to match industry standards, a CNN architecture could be used as those perform better on image classification tasks, the loss function could be changed to cross-entropy loss, and calculations could be performed using matrices to drastically improve performance.

The weights of the model are in the model.json file. Credit to Andrej Karpathy for his tutorials on micrograd.