Artificial Intelligence. Machine Learning. Neural Networks.
We hear these buzzwords often these days, as technology takes a larger role in our lives. Have you used voice recognition on your smartphone? Followed a prompt by Facebook to tag a friend or family member in a photo that you’ve uploaded? Those are just two typical examples of the wizardry that modern computing platforms are capable of, and “wizardry” is an appropriate term to use here.
As Arthur C. Clarke famously proposed, “any sufficiently advanced technology is indistinguishable from magic“. When talking about topics like Artificial Intelligence and Neural Networks, that quote seems to suit the vast majority of us.
What if you could get a look at the details behind such technology, however, and walk along as a working example is created from scratch?
In Make Your Own Neural Network* (by Tariq Rashid) you get that chance, and it might surprise you how the combination of just a few critical concepts can lead to such amazing power.
How To Build A Neural Network, Step By Step
Perhaps the most impressive thing about this book is the pacing. The concepts that make up a neural network are introduced one at a time, in a way that slowly builds up a practical, working application: having a computer recognize handwritten digits.
The basic idea is to create a computational system that mimics the activity and structure of biological nervous systems, as opposed to the straightforward calculating power which we traditionally associate with computers. Input nodes take in the data, output nodes spit out the answers, and what lies between them is a network of internal nodes that are connected by links which vary in their strength. By using a set of training data (for example, a sample of handwritten digits which are tagged with the correct answer), those links can be tuned by a surprisingly simple process to yield a system which can accurately identify other handwritten digits at a rate of greater than 97%.
That last paragraph may seem complex, but this book breaks down that process in an elegant, easy-to-understand manner. Over the course of several chapters, a program which completely handles the handwritten-digit problem gets written in Python. And no, you don’t need to understand the language to enjoy this book, I’ve never touched it myself.
What’s truly remarkable is how short the finished program turns out to be. Back in the days when I subscribed to computer magazines and had to type BASIC programs by hand (ah, the good old days), I rarely ran into a program that would take so little time to put together. Yes, the Python code takes advantage of publicly available packages and functions to simplify the code, but that helps the reader focus on the problem at hand (developing a neural network) rather than figuring out how to perform mathematical mechanics in code.
The bottom line? Make Your Own Neural Network delivers on its promise, as it clearly walks the reader through the steps to create a functioning neural network. Once completed, the reader is left to ponder the various types of problems that a neural network might help with. The possibilities are endless – and if you’re curious about where to learn more about Neural Networks, this page at Stanford’s computer science department is a good place to start.
*yes this is an Amazon affiliate link, so if you click through and buy I get a small commission that does not impact your price. I bought the book on Kindle and read it on a recent business trip.