The following is a review of the book Deep Learning from Scratch: Building with Python from First Principles by Seth Weidman.
Deep Learning is probably the most powerful branch of Machine Learning. In the previous decade due partly to the increase of the computing capabilities we have, and partly to the massive amounts of data that we have accumulated, Deep Learning has re-surged and become the core of many Artificial Intelligence applications.
When trying to learn about Deep Learning and Artificial Neural Networks, many people come across Keras or TensorFlow tutorials, and other libraries that allow them to easily build systems and applications that can have good results. Other resources, like the Deep Learning Specialisation on Coursera, can be too theoretical, and try to cover too much content, overwhelming the students on some occasions.
It is not easy to find a balance of theory and implementation expertise, and to know what happens under the hood of these deep artificial neural networks. This last knowledge, the expertise of what goes on in the guts of a Deep Neural Network is just what you will learn with this book.
You will learn what neural nets are, how they work, and why they work. Starting from the very beggining, you will build your knowledge up, implementing the different pieces and building blocks of neural networks from zero, to fully understand what is happening, and then you will progress to using frameworks like Pytorch.
For us, this is the best way to learn: building a very solid foundation and then moving onwards. By doing this, further learning of complex related topics becomes easier, as you have already mastered the pieces that these new topics tend to improve or build upon. Because of this, we love this book, and think that is one of the best books to learn Deep Learning out there. Once you finish it, you will be able to build your own neural networks from scratch, or using some framework with confidence, understanding every step of what you are doing, conceptually, computationally and mathematically.
Book description and contents
The book is structured in a way so that theory, diagrams, code and math complement each other beautifully. The chapters are divided in easy to digest sub-sections that contain diagrams, code and mathematical explanations, so that you can fully grasp what goes on in the neural net from the lowest level. In short: mathematical expressions, graphical flow-diagrams, and Python code are presented to give you an understanding from every single perspective.
This book provides:
- Extremely clear and thorough mental models-accompanied by working code examples and mathematical explanations-for understanding neural networks.
- Methods for implementing multilayer neural networks from scratch, using an easy-to-understand object-oriented framework.
- Working implementations and clear-cut explanations of convolutional and recurrent neural networks.
- Implementation of these neural network concepts using the popular PyTorch framework
You can find a full list of the contents on O’reilly’s official website.
The content of Deep Learning from scratch is laid out in a non-intimidating manner, and the author does a great job explaining complex terms in a simple manner and with cool visualisations. Overall, it is a great book for understanding how neural networks function, how they are built, and the different types, although it wont make you an expert in the specific neural network architectures like Convolutional Neural Networks or Recurrent Neural Networks. The goal is more to give you an in-depth understanding of how an ANN, and teach you how to build them, so that later on if you want to go in depth into CNNs or RNNs you can do so with ease.
If you want to see a little bit more about the author and his way of thinking and teaching, check out the following video:
Despite the ‘from scratch‘ in the title, you need a good understanding and working knowledge of Python, and calculus and linear algebra knowledge in order to be able to make the most out of it, and understand the different explanations without breaking your head and having to look things up constantly.
About the book
Author: Seth Weidman is a data scientist who lives in San Francisco. He has been obsessed with understanding Deep Learning ever since he began learning about it in late 2016 and has been writing and speaking about it whenever he can ever since.
Professionally, he has applied a variety of machine learning models in industry, taught data science to individuals and companies, and works on modelling and Python projects on the side. Full time, he teaches data science to companies via the Corporate Training team at Metis. He strives to find the simplicity on the other side of complexity.
Pages: 253 pages
Summary of Deep Learning from Scratch
Deep Learning from scratch is the perfect book for those with Machine Learning, Python, and Math knowledge that want to get a profound knowledge fo the nitty gritty details of how Artificial Neural Networks work.
It will teach you so by explaining all the different concepts like the layers, back and forward propagation, metrics, and diferent elements step by step and with very good visual, code and mathematical explanations. This kind of learning will allow you to later build a knowledge of advanced topics with ease, and to face any problem that can be tackled with a neural network with confidence and clarity.
For us, it is an amazing resource that we would recommend to anyone for starting to learn about Deep Learning. Coupling this book with some good videos on neural networks would make you an expert on the topic.
You can buy the Deep Learning from Scratch book from Amazon here:
- Amazon Kindle Edition
- Weidman, Seth (Author)
- English (Publication Language)
- 390 Pages - 09/09/2019 (Publication Date) - O'Reilly Media (Publisher)
Other resources about Deep Learning that you might want to check out are:
- Deep Learning by Goodfellow et al. Find the review here.
- Grokking Deep Learning by Andrew Task. Find the review here.
- The Deep Learning Specialisation on Coursera. Check out our review.
Thank you very much for reading How to Learn Machine Learning, and have a great day!