Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow : Concepts, Tools, and Techniques to Build Intelligent Systems
This book is here to help you get your job done.
So wrote Aurélien Géron, the author of this well-received book, now into its second edition. That is probably an understatement. Not only do you get things done, you also gain a good grasp of the ins and outs of machine learning (ML). When the first edition came out in early 2017, it instantly became a favourite of mine. Since then, there have been several updates to it – a testimony to both the pace at which this field moves as well as to the diligence of the author.
In the final quarter of 2019, the time was finally ripe for a new edition, coinciding with the official release of TensorFlow 2.0. If you have been following developments in TensorFlow, you will know that
tf.keras was introduced as an implementation of the popular high-level Keras API. “Keras” has now been added to the title and several chapters were re-written or added. The print version of the book is now a whopping 856 pages! Despite that, the book never feels bloated or unwieldy. You can find the complete details of the changes here.
A good book provides a coherent structure, with chapters which can be read independently, yet contains cross-references to relate the focus topic of the moment with other topics explained elsewhere in the book. On this point the author has done an admirable job.
This new edition will continue to appeal to a broad section of ML practitioners. For a better understanding of the concepts behind models and techniques, it is a good book to start with. For more advanced folks, it also contains enough information for repeated referencing. Whether it is for a deeper understanding of support vector machines or an evaluation of the performance of different deep learning optimisers (Adam? Nadam?). I especially appreciate an entire new chapter (Chapter 9) on unsupervised learning which fills a glaring gap in the previous edition.
Just as in the first edition, code examples are available on GitHub. They now come ready to run on Google Colab (hurray!). Accompanying the code snippets are often descriptions in simple English so that nobody has to get lost.
Code followed by simple English!
With the introduction of Keras as the high-level API, knowledge of it alone is sufficient for most use cases in deep learning (95% according to the author). However, in specific cases, it becomes necessary to write lower level TensorFlow code. The author identifies such cases (e.g. custom loss function, custom layer) and goes through them in detail.
It is my personal belief that ML practitioners should get into the habit of reading quality academic papers, especially those describing the algorithms behind the libraries they use for modeling. The book makes useful references to such papers where applicable, whether for more traditional ML techniques (e.g. mini-batch K-means) or neural-based ones (e.g. SentencePiece), to aid the discussions. What makes a good practitioner is often the intimate knowledge of the inner workings of models which mediocre ones simply treat as back boxes. With such pointers to relevant external content, the usefulness of the book expands far beyond its pages.
In mid-2019, Google released TensorFlow Extended (TFX) as a framework to provide production-grade support for ML pipelines. This is not covered in the book and totally understandable as the industry progresses at breakneck speed. However, the author is certainly in touch with the developments and interested folks can peruse the slide deck he used to deliver a training at TensorFlow World 2019 in Santa Clara here. Perhaps we can look forward to chapter 19 being augmented or a totally new chapter 20 in future. In the nearer term, look out for this upcoming title dedicated to ML deployment which the author is currently reviewing.
To close off, I highly recommend this book to folks new on the ML journey (who will gain much practical knowledge) as well as to experts (who will benefit from the thoughtful organisation of the subject matter with additional material for further reading).
Hands-on Machine Learning with Scikit-Learn, Keras & TensorFlow : Concepts, Tools, and Techniques to Build Intelligent Systems is also a recommended book for machine learning in the AI Apprenticeship Field Guide.