Neural Networks, or more correctly Artificial Neural Networks, have turned out to be a very versatile tool in the world of Machine Learning, Artificial Intelligence and Data Science. They were originally inspired by biological neural networks (animal brains), but have shown to be powerful in their own right.

Many frameworks exist that with relative ease allow users to create complex models within a diverse field of applications.

This blog series will go back and look at the fundamentals of neural networks. In essense, a neural network is simply a mathematical function and we will look at them as such. We will, from first principles, build the theory of neural networks. We will then look at how to turn the theory into code (using Numpy for efficient numerical linear algebra).

A disclaimer: I am not a Machine Learning expert, I have a background in applied mathematics and scientific computing. Everything should be correct (I hope! If not, please write me and I will correct it), but some terminology or approaches may be off compared to what is usually done (again, let me know).

If you are into online courses then I highly recommend Andrew Ng's course Neural Networks and Deep Learning, which also inspired some the approaches in this blog series.

Each post will be centered around a specific topic: