Hands-On Machine Learning with Scikit-Learn and TensorFlow (英语) 平装 – 2017年3月24日
Aurelien Geron has worked as a software engineer for a consulting firm in Paris, an IoT startup in Montreal (back in 1999!), and has also worked as co-founder and CTO of a leading wireless ISP in France (Wifirst). He was the product manager for YouTube's video classification team.He has authored a WiFi book, a C++ book, and taught CS in French engineering schools. A few personal fun facts: Aurelien grew up in France, Nigeria, New Zealand, and the U.S. (Berkeley). He studied microbiology and evolutionary genetics before going into software engineering. He was the singer in a rock band, has 2 turtles and 3 hens, has scuba dived with 10-foot sharks, taught his 5-year-old son to count in binary on his fingers (up to 1023), and his parachute didn't open on the 2nd jump.
I got this book for the deep learning portion (about half of the overall book length), and was shocked at the clarity of the conceptual explanations and code implementations. I've read many extensive explanations of important neural network architectures (FFNs, CNNs, RNNs, ...) and none of them were this clear and intuitive. Within 5 days I was able to go from having zero deep learning experience to easily implementing complicated architectures with TensorFlow.
Many people recommend Keras as an alternative to TensorFlow, and I agree... but reading this book allowed me to understand the structure of the underlying code enough to use Keras much more effectively than if I had just started there and never learned what's going on under the hood.
I was so impressed with the deep learning portion of this book that I went back and read the rest of it. I can't recommend this work highly enough.
The breadth of information covered if quite wide. The choice to start with Scikit-Learn was interesting, but makes sense on some level while he's introducing the more basic machine learning concepts. Simple machine learning techniques like logistic regression, data conditioning, dealing with training, validation, test set. Even if you've read about these concepts a million times, you might still glean useful information from these pages.
The Tensorflow section is also super well done. Straightforward setup instructions, pretty intelligible explanation of the basic concepts (variables, placeholders, layers, etc.) to get you started. The example code is quite good, and the notebooks are quite complete and seem to work well, with maybe a few tweaks and additional setup for some. I also found that the notebooks show more examples than what's in the book, which can be nice.
I only went really hands on with the reinforcement learning notebook, and found that it was well done and a good base to start my own work from. Even just having a section on reinforcement learning is very rare in a book of this style, and Geron's samples and explanations are really solid. He obviously has a strong grasp of many varied fields within deep learning, and that includes reinforcement learning. The only thing I wish it had was an A3C sample, to make my life that much easier. But you can't have everything.
I really liked his tips on which types of layers, activations, regularization, etc. are most effective, and gives good starting points for decent convergence. His explanation of multi-GPU Tensorflow was also quite good. The Tensorboard section was also very useful.
In short, if you want ONE book to get you into machine learning, and Tensforlow is on your radar, you can't go wrong with this one. Highly recommended!
I purchased the kindle version so I can dive into this book early before the book comes out. I am not disappointed. It gives you the code on the familiar Python notebook to work on. The author really knows about Tensorflow and machine learning, and his teaching shows. There are pieces of information hard to find somewhere else, and I have spent hundreds to thousands to attend workshops.
Needless to say, I have not done all the exercises yet. But I like this book enough that I will work on all the problems I am interested in.
One disappointment though. I was hoping Keras, a high level api that enables fast experiments, is covered. It is not in this version. Sure hope it will be covered in the updated version.