It’s hard to get a book “closer-to-the-metal” in applied deep learning than one written by the author of Keras, but that’s exactly what this book is, and it delivers the content extremely well. I listened to the book both in audio format, and probably have gone through 40 - 50% of the book via physical reading, and found the audio delivery was a better channel than I expected, given that this is effectively a programming text, but still was no cigar compared to an actual reading.
The better-than-expected delivery via audio probably has much to do with how much of the book is dedicated not to a software or technical treatment of instrumenting the neural networks, but to the history of machine learning in general, as well as a conceptual overview of the basic machine learning pipeline. Roughly 50 pages of the first 4 chapters (or about half of the page-count for those chapters) is dedicated to this conceptual treatment of machine learning, the first chapter being a history of shallow-learning that led up to the advent of the first neural network, it’s failure in the early 90s, the emergence of both kernel methods and ensembling as a the predominant paradigm, then finally the reemergence of neural networks within the framework of GPU-backed deep neural networks (DNNs), The 4th chapter goes through the standard ML pipeline (model-estimation, train/test, tuning and performance tracking via cross-validation etc., which is almost entirely independent of DNN as a conceptual framework.
These 2 chapters are easily digestible via audio. Chapters 2 and 3, which discusses the rudiments of neural networks conceptually and how to navigate Kera’s internal API are also pretty light-weight in terms of technical content and also are easily digestible via audio. Thus, slightly above a ⅓ of the text is well-written for audio. Where the text becomes troublesome for the audio reader is from chapter 5 onward, where step-by-step code templates for DNNs written within Keras are presented for the two major domain-areas computer vision and text/language. These chapters in my opinion are where the real value of the text lay as they include not only the cookie-cutter basic nets for a set of use-cases within each domain, but there’s a lot of commentary on how design-features (adding/subtracting hidden-layers, where to regularize/drop-out, where to pool etc.) a person may customize in their own net may impact the performance of that use-case in the domain. Going through these chapters carefully can quickly get someone to implement (at least with decent performance).
That being said, the templates are all fairly simple, and more recent innovations like multi-task and other bifurcating network topologies do not make it into the material in any substantial (or at all) manner. Though, it should be remembered this is a first-pass book, and was written in 2015-16 (published in 17/18’ depending on the format), and so this can be excused. Overall, the level of content is decidedly more from the practitioner’s standpoint, which is appropriate for this subfield in machine learning, since a full rigorous treatment of the mathematical properties of NNs still mostly elusive, with the theory currently being constructed, this field should be more of a software engineering domain. In fact, Andrew Ng himself has often stated that the best way to learn NNs is to do NNs, and this book will have you implementing NNs within the first 2 - 3 hours of reading.
This was not the first treatment of the material I’ve gone through, having done most of Ng’s Coursera courses, and other academic material, and having attended some seminars on the the theoretical treatment of the subject also in an academic context (mostly, understanding NNs within the context of universal approximation), as well as deploying some in work, I still found the book to be useful, and will reference it at least for a little while longer. There’s a chapter on best-practices within the Keras API, and I suspect there is some value for even intermediate users of these objects in sections of the text like this, as well as the aforementioned code template-sections.
Overall, I enjoyed this book, and recommend it highly (especially for newer practitioners or students of the subject matter). It seems like it would pair well with Goodellow et. al., and I've seen both of these books required as textbooks in sync in some syllabi for standard graduate courses on the subject.