So, today I found myself dragging my feet, thinking about which book or course I should write about next. After all, it's tough for any book to follow Introduction to Statistical Learning or ISLR (sorry, I am just big fan of ISLR!). However, in my learning journey, I came across a book that, in my opinion, is a true successor to ISLR: Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow by Aurélien Géron. This book is highly recommended in the ML community, and I've relied on its teachings many times, both in my current and previous jobs. With this gem of a book and many others, O'Reilly publications is really proving to be at the fore-front of AI-ML education through its books. I have tried to cover the 3rd edition of this book(contrary to the cover image!). So, let's dive in and see what this book has to offer.
Who is this book for?
Like most of the books and resources I've written about, this one is aimed at people who are just starting out in the field and looking to gain in-depth knowledge. The key difference is that it assumes readers are proficient in Python, NumPy, Pandasand Matplotlib. It also assumes some familiarity of running notebooks in Google Collab or Kaggle. These are the prerequisite homeworks needed before diving into this book. Thankfully, there are plenty of resources available online, including books and MOOCs, to help with this. In fact, I've written about one such book, Python for Data Analysis, in my second blog post. I strongly recommend that readers of my blog arm themselves with these skills before tackling this book.
How is this book structured?
The book's contents are structured in two parts. The first part covers the fundamentals of basic ML algorithms, such as Linear Regression, Classification Algorithms like Logistic Regression, SVMs, and Decision Trees. Each algorithm is thoroughly explained and demonstrated using the Scikit-Learn package. However, part one isn't just about algorithms; it also delves into foundational concepts such as optimizing a cost function, handling, cleaning, and preparing data, selecting and engineering features, and tuning hyperparameters using cross-validation.
Part two of the book covers Neural Networks and Deep Learning. It addresses important considerations in building neural networks, starting with the history of neural networks and gradually introducing finer nuances such as initialization techniques, ways to introduce non-linearity through various activations, and optimization methods like Momentum, Nesterov, AdaGrad, and Adam. These are foundational concepts for any serious Deep Learning student and practitioner. You'll also learn to build and train custom models using Keras and TensorFlow, including custom loss functions, optimizers, and layers in a dedicated chapter. This section makes part two of the book a valuable repository of skills training. Later chapters focus on Deep Computer Vision, RNNs, Autoencoders, and Diffusion models including how to implement a denoising diffusion probabilistic model (DDPM) from scratch, which are at the frontier of Generative AI. Its focus on covering such recent advanced algorithms is what impressed me and sets it apart from ISLR.

The above are some of the pictures provided in the book explaining different activations How is the content presented?
What caught my attention the first time I was reading it is the author sincerely believes in a do-as-you-learn approach, with a code snippet immediately following an explanation of a concept along with the necessary mathematical formulations. This approach seems consistent in all the books by O'Reilly publications, as I have come to discover while reading more and more books by this publisher. This style keeps readers engaged and prevents boredom from too much theory. Just like ISLR, each chapter ends with theoretical and practical exercises. However, ISLR, with its lack of code illustrations, feels more focused on theory and academic understanding, aiming to strengthen the grasp of the inner workings of an algorithm. This focus is probably why the authors of ISLR could roll out a Python version of the book so quickly after introducing its R version.
In contrast, Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow strikes a finer balance between theoretical foundations and the practical aspects of training and productionizing ML models. This blend of theory and hands-on practice makes it an invaluable resource for both understanding and applying machine learning concepts effectively.
Additonal supportive material
All the code examples in the book are provided to readers for free in a GitHub repo as Jupyter notebooks. The book also recommends several other books on the subject for additional support and reference. For example, Joel Grus’s Data Science from Scratch, Stephen Marsland’s Machine Learning: An Algorithmic Perspective, François Chollet’s Deep Learning with Python, and Jeremy Howard and Sylvain Gugger’s Deep Learning for Coders with fastai and PyTorch. Notably, some of these recommended reads are from other publishers such as Pearson, Manning, and Packt Publishing, rather than O'Reilly. This diversity in recommendations underscores the author's commitment to offering a comprehensive and well-rounded learning experience.
Should You Invest Your Time in This Book?
Absolutely. This book guarantees to build a solid foundational knowledge of Deep Learning for any serious student or practitioner. Its detailed coverage, code illustrations, and focus on recent advancements in AI in the third edition are a testament to its status as a must-read in the community. Therefore, I urge anyone to deeply study this book or at least treat it as a supportive read after mastering Python, NumPy, and Pandas.
Comments
Post a Comment