If there is one machine learning book you should read, it’s this one!
Hello guys, time for another hopefully helpful post. Just getting started in Machine learning? Wondering what material to pick from the flood of literature out there? I have just the right recommendation for you right here.
Before we get started some quick info about my background. I studied mechanical engineering a few years ago, then did a PhD in quantitative finance. During my PhD, I studied the evolution of financial bubble dynamics and the prediction of market crashes. My work was always focused on using some lightweight (and, frankly, quite old) machine learning algorithms such as for instance k-means. I never really went deep into machine learning, as the models I was working with were more drawn from econometrics, which is a domain of quantitative finance that seeks to explain (mainly) the dynamics of asset prices by means of logical physics models, but that’s for another post. During my PhD, I took two lectures about machine learning to get the basic understanding of the terminology and an overview of various domains of machine learning. These lectures provided me with an intuitive primer from linear regression, supervised and unsupervised learning techniques, classification, cross-validation, and so on, up to feedforward neural networks. This is to give you a comparable picture of my skill level, at which I am also recommending the book presented in this article.
After my PhD, I wanted to dive deeper into specifically neural networks, of course, as this is one of the most interesting model classes used to solve contemporary applied machine learning problems. My goal was to be able to understand various types of neural networks such as feedforward NNs, CNNs, RNNs and advanced “hybrids” of these. My only problem was, I did not really know where to start, as I quickly figured there were loads and loads of papers and books. At some point, I discovered this post in a forum where someone told his success story in machine learning, recommending reading the book “Deep Learning” by Goodfellow, Bengio and Courville cover to cover. I googled the names and found that all three of these authors are big, and I mean major players, in the recent history and development of modern machine learning. What raised my attention was that the guy in the forum literally recommended reading the entire goddamn book cover to cover. After getting the book, I saw that it currently has 800 pages, and I was literally stunned that there are really guys out there who read such books. This takes a lot of discipline and motivation. I thought to myself: challenge accepted!
About four weeks later, after many, many long rainy days, I had finally read the whole book, and I can tell you, it is one of the best investments in myself that I have ever made. I do not regret reading a single line of this book (as opposed to many other books or papers that I have read in my life). Sure, it was a pain at times, but it is completely worth the effort. If you want to gain a solid and intuitive understanding of applied modern machine learning, this is the book to go! I recommend you to get a focus timer app and spend at least two to three hours a day reading the book in sessions of 25 minutes, with breaks of 5 minutes. Push yourself! You will experience lots of stress and at times strong reluctance continuing to read, because it is just so exhausting (I literally felt hungrier during that time, probably cause my brain was eating up so many calories :D). In the beginning, it will be damn hard to focus, but beyond some point, it is amazing (!) how you can literally feel an increase in your focus from day to day, as you push yourself to read through this immensely content-rich, valuable piece of scientific literature.
The authors cover everything from probability theory, standard to modern neural network types. Throughout the book, I was amazed by the intuitive and clear writing style, which made it easy to understand many of the concepts. Mostly, I was impressed by all the tips and tricks that the authors provided for applying these models. Machine learning to me is one of the fields where theory and experiments are mostly interwoven: on the one hand, many models are by now backed by solid theoretical understanding, but on the other hand, it is also a highly experimental field, where many things are not yet fully understood, and a lot of things need to be determined by experimenting. The great thing this book accomplishes is that many of these hands-on experiences are shared by the authors, which will save you a lot of time when starting with the actual implementation of models and help you with prioritizing your tasks a lot. My personal favourite chapter is the one dedicated to convolutional neural networks, which draws a beautiful picture of the theory, history, applications and state-of-the-art of these tremendously important models.
In my opinion, this book is an optimal place to start from. It will provide you with solid theory, not too little, not too much. It will also inspire you about many yet unsolved problems. And as this book has so many practical tips, there is one thing you should definitely not miss: get your hands on these models and start implementing them while reading the book. Personally, I divided my days between reading sessions in the mornings and coding sessions in the afternoon, always trying to apply what I had just freshly learnt. If you are wondering what software to use, I strongly recommend pytorch. pytorch itself has an excellent documentation, a great community with a lot of skilled individuals who are willing to take the time to explain things to newbies, and a very intuitive style of implementation. I will probably discuss more aspects of pytorch in a future post.
Of course, this book might not be suited for everyone, it depends a lot on personal preference. But, taking the average across all the books out there, I rate it at the top, and I truly believe that many people will probably find this book a great, great help in building their ML skills. Now, I am also interested in hearing your opinion either on how you liked the book in case you read it (or my post even inspired you to do so, which would be even better :)), or on other books that you recommend to gain a solid foundation specifically neural networks. So, hopefully, there will be some interesting comments reviewing the book and providing other nice information sources!
So long, motherfuckers, leave a clap!