This program uses a neural network (to try) to recognize different digits. Use the mouse to draw numbers C to clear the screen S to save a number for learning L to start learning Change the 'stop' slider to 1 to stop the learning algorithm T to test the neural network with a current onscreen character, then press C to close the lists and go back to the drawing R to reset the neural network synapse weights You can also change the number of neurons in the hidden layer via the hidden slider "neurons", but it requires you to reset the synapse weights to take effect.
Update: I'm working on a rewrite of this that will hopefully work fully as expected. I haven't posted any projects lately because I've been doing some more sophisticated programming, but I've been studying neural networks and I realized Scratch would be a fun place to implement one. The pixelation process is a fun little bit of code that I came up with for this project, but it has applications in other projects too, so feel free to use it! In addition, the actual matrix math operations and neural network architecture can be very easily adapted to other machine learning projects. Be aware that while the network itself is finished, I have not let it run for sufficient time (nor does it have enough samples) for it to actually be able to recognize different numbers. If you would like to, you can try to run this for a couple days and see if it is able to make progress. It's possible that I am not using enough neurons and/or layers in the network for the program to accurately recognize figures, so I will also be experimenting with changing these values. I'm also not entirely sure if I'm running all the math operations I'm doing correctly, so if anyone cares to proofread my program, that would be awesome! Eventually, I hope to add a cloud feature to this program so that anybody is able to help it learn! For a fantastic guide to neural networks, check out the free online book by Michael Nielsen at http://neuralnetworksanddeeplearning.com/index.html