I have been spending some time sharpening my skills on Artificial Intelligence again. I have been around https://www.tensorflow.org and, although it’s nice, powerful and useful, I still like very much to write my own code and completely understand and dominate the object of study, so that is what I did recently — a personal neural network framework entirely written from scratch. I am not an expert mathematician though, so I surely struggle a bit with the different back-propagation gradient formulas and a few other math details, but code-wise I fully dominate the implementation and am satisfied with the current results. The acquired knowledge helps me to better understand bigger frameworks like Tensorflow, for example.
This tiny unnamed Neural Network library of mine is cross-platform, compatible with basically all hardware platforms and Operating Systems, and still small and with no external dependencies at all. It is fully self-contained. I like that, because deployment is very easy, and I can easily integrate it in any app, on desktop, mobile and embedded platforms in a matter of minutes.
The following simple video shows basic learning and recognition of digits. I ran it inside Unity3D because of its easiness for visual prototyping, but as said, the NN library itself has no dependencies, so it’s not tied to Unity or any other engines or libraries.
I will be constantly adding features to this personal lib — it’s not just for digits recognition! — and I intend to have it running on an intelligent robot which is going to entertain the family for a long time. =)
More on this later, thanks for reading.