I have trained several networks. The first, which I call B1, will be used if you press the "Recognize B1" button below. It is a standard fully-connected network of two hidden layers, 100 neurons in the first and 10 in the second. It achieved 98.01% accuracy rate on MNIST test data set. I've also trained a deeper network, B2, which consists of 150, 200 and 100 hidden neurons in the three hidden layers. It incidentally achieved the same 98.01% accuracy as the simpler B1. The estimates of the two networks do sometimes differ, and when one fails, sometimes the other succeeds, suggesting that an ensamble of networks could probably improve my results. The pie chart appearing on the right side represents some sort of confidence in the decision that the network made. Check yourself how it recognizes digits written by you. When I draw the digit, both networks seem to have some trouble with detecting my "8s", and they often think it is a "3". My "4" sometimes kind of looks like a "9", then this is evidenced in the probabilities in the pie chart. I find that if I put in minimal effort into drawing the digit, the recognition works great except for 8s. Of course, the data used for learning was actual scanned human-handwritten digits, while here we input something drawn on a computer screen, so certain difficulties are understandable. I would still like to fix that, perhaps a more advanced convolutional network would take care of this.
Draw in the left box. Change stroke width with slider below.