本书作者是google前工程师Aurélien Géron,他在google时主导Youtube的视频分类工程,在机器学习方面具有丰富的实践经验,这些经验在该书中得到了很好的体现。
英文版是O'Reilly出版,中文版是机械工业出版社2018-8月出版。该书英文名为Hands-On Machine Learning with Scikit-Learning & TensorFlow。从名称可以知道内容和Scikit以及TensorFlow有关。
本书看下来最大的特点就是以成熟可运行的机器学习库为基础,描述如何使用各种机器学习算法在数据上进行训练、优化,得到可用模型,然后介绍算法背后的理论基础,这样可以使读者先有算法感性认识,再到理性认识,能更好理解掌握机器学习方法。比起有些只讲理论、数学公式一大堆的书籍,本书要易读很多。
本书内容分两个部分,第一部分介绍机器学习的基本概念,描述了机器学习在使用中可能会遇到的各种问题,并用了一章篇幅以端到端项目为例介绍了在实际项目中使用机器学习的主要步骤。这部分内容应该是作者从做过的项目中提炼出来的实践真经,值得仔细阅读。
后续的几章介绍了Scikit-Learning中的支持向量机、决策树、集成算法和降维算法,这不是Scikit-Learning的所有算法,只是选择了日常使用频率较高的几个算法进行了说明,其他算法的使用并没有什么困难,scikit-learning的文档做得是相当完备的,有API,例子,还有公式和论文出处。对于每个算法,重要的是要理解其背后的原理,使用场景以及使用限制。机器学习算法和它处理的数据密切相关,同一个算法在不同数据上的性能表现可能差异很大。
第二部分是深度学习算法,讲解了深度神经网络、卷积神经网络CNN、循环神经网络、自编码网络的原理和训练方法,对深度神经网络训练中涉及的梯度消失/爆炸,梯度优化,网络正则化方法的使用给出了指导意见。
对每种网络的说明都用TensorFlow实现一个例子来阐述,使读者能对各种深度网络的使用方式有直观的感受。
对深度网络的训练一个主要痛点就是对资源需求量很大,在单机上训练往往需要耗费太长的时间,因此作者专门介绍了TensorFlow的分布式训练方法,通过将训练任务分布到多台服务器上来提高训练效率。
书的最后一章介绍了强化学习,先描述了深度学习的策略,然后给出了深度Q学习在TensorFlow上的一个实现的例子。延续的本书以实例说明内容的惯例。深度学习还处于发展阶段,这部分内容也只能参考。
书后的附录也很有参考价值,尤其附录B中的机器学习项目清单,提供了机器学习项目的最佳实践操作指南。 不管初学者还是有经验的人员,都能从这个清单中获益。参照这个清单操作,可以使你的机器学习项目离成功更近。
网友评论