原标题:`五本必读的深度学习圣经书籍,入门 AI 从「深度学习」开始`
(以下以 Daniel Jeffries 第一人称撰写)
多年来,由于实验室研究和现实应用效果之间的鸿沟,少有人持续研究人工智能,AI 在很多领域停滞不前。然而近两年,AI 在一些领域陆续有了重大突破,像是图像识别、自动驾驶、Alpha Go 等等。许多八九十年代的算法,因为硬体速度慢和缺乏数据等原因而不再被使用。而现在,受众多大数据和大规模并行芯片的支持,这些算法终于初见成效。
在过去的一年多时间里,研究人员竞相出版专着,以满足读者对深度学习知识的渴求。第一本关于深度学习的书已经上架,更多的将会在夏天或者明年年初陆续上架。我有幸提前拜读了一些专着的初稿,这些书的最终出版让人期待万分。
接下来我将推荐一些深度学习书籍给大家。这些书可以引导大家如何学习人工智能,这对深度学习的快速理解有很大帮助。
理论和实践相互兼顾
我父亲常说:「凡事均衡最好。」对此我深信不疑,且奉为圭臬。当然,我承认在周末或者在拉斯维加斯的时候,偶尔也会将其抛诸脑后。
我赞成理论与实践要相互均衡。比如针对某个问题, 给一个明确的背景资讯,然后根据实例自己动手实践。书本不要过多阐述理论知识,应该让读者边学习边查漏补缺。 设想有一本书,非常抽象,或者列举大量的实例,却不解释问题的来龙去脉,你还看的下去吗?
每个人都有自己的学习习惯,应该清楚地知道怎么学,才能卓有成效。我始终认为花时间去买那些与我无用的书,特别容易错过真正适合的。如果你喜欢通篇理论,那就不必继续看我的推荐了。如果你喜欢看那些理论与实践结合相宜得章的书,相信我推荐的书单会让你会喜欢。
《Deep Learning》
第一本书是 Ian Goodfellow 的《Deep Learning》。作者在 Google Brain 和 OpenAI 上做出了突出贡献。不少人认为这本书是深度学习领域的圣经,因为它是迄今为止唯一一本融合了前几十年研究工作的鸿篇巨着。
不过,除非你有较好的数学基础,否则不建议你从本书入门,因为读起来挫败感十足。 书中不仅有大量的公式,同时写得比较枯燥干涩。尽 Goodfellow 希望能传授读者更多的知识,但该书读起来却比较乏味,不能引人入胜。我估计明年首次参加大学深度学习课程的学生手中会拥有这本书,而其中许多人会因为这本书难懂而坚持不下去。这本书比较适合那些经过几年相关工作后,仍想进一步掌握深度学习的从业者。对于拥有较多专业领域知识且正淮备初次踏入 AI 行业的专业程序员而言,这也是一本比较全面的指南。
本书免费中文版github.com/exacity/deeplearningbook-chinese
《Hands-On Machine Learning with Scikit-Learn and Tensorflow》
第二本是刚出版的《Hands-On Machine Learning with Scikit-Learn and Tensorflow》。虽然这本书也有大量的公式,不过 作者 Aurélien Géron 用简单的方式诠释了复杂的概念。全书写得通俗易懂,可读性很强,不过我也不强烈推荐。
《数学不好还学 AI》系列文章,是本书很好的补充,尤其是该系列的第五篇《用卷积神经网络进行图像识别》和第七篇《自然语言处理》。在我的印象中,这本书有详尽的实例和相应代码,两者完美结合。我读过在 Safari 的在线丛书初稿,当时许多部分没有写完,而且网站还将一些公式转换的莫名其妙,但这并不影响我对内容的理解。
和其他优秀的修改稿一样,最终版本相比初稿有了实质的跃进,完美诠释了作者的观点和採用的实例。本书内容的组织非常自然流畅,各种观点都有清晰的实例证明,建议读者看第一遍的时候,不要去管那些公式,以后需要时再去深入推敲。
《Deep Learning with Python》
第三本是《Deep Learning with Python》。作者是 Keras 框架的构建者 Francois Chollet。不过这本书还得过段时间才能出版。但透过 Manning 的 MEAP 系统可以阅读前三章的内容,内容写得很好,我极力推荐此书。
正如 Chollet 在编写 Keras 框架时一样 ,他神奇的将复杂概念简单化,文中措词巧妙,可读性强。 即使是 AI 和深度学习中最具挑战性的概念,他也同样解释的通俗易懂。读了这本书我才真正理解什么是张量。书中有大量不错的实例,大家可以在他的 Github上看看。随着越来越接近正式出版,这本书也越来越完整。请关注支持作者,且同时,尽量能先在 MEAP 上跟进阅读,留言给作者,来让这本书更完善。
《Deep Learning: A Practitioner’s Approach》
第四本是《Deep Learning: A Practitioner’s Approach》。该书主要使用 Java 的深度学习框架 DL4J。目前 AI 领域的研究大多数使用 Python 语言实现,不过随着越来越多企业涌入机器学习领域,Java 的使用可能会逐渐增多。由于 Java 拥有庞大的生态系统,现在的大公司里,它仍然是主要的开发工具。
这本书的读者设定是深度学习的初学者。因此,如果你已经有一些深度学习的基本知识、并想进一步深入研究如何用 Java 实现深度学习的话,请直接跳过前面的例子。但是如果你没什么深度学习经验,Java 也不太熟悉的话,那么这本书值得你细细研读。 尤其是第 4 章「出色的深度学习架构」,提供了一个可以帮你解决现实应用中架构问题的关键方法 。
虽然我不熟悉 Java 语言,但我把它分享给我的几个写程式的同事后,他们非常喜欢。在介绍深度学习上,书中的实例和书本的总体结构显得非常专业。
《TensorFlow Machine Learning Cookbook》
最后推荐的是《TensorFlow Machine Learning Cookbook》。虽然书中的内容和编码有一些错别字,不过在自然语言处理等内容上,还是列举了许多不错的实例。和其他手册书一样,本书也偏重编码,如果你不太了解卷积神经网络的输入输出,你会被许多基本概念搞晕,买书前如果你已经看过其它的书,并且对书中的例子进行了实战,那么这本书可以给你提供更多的练习与实践。 但请不要把此书当作入门书,也不建议单独购买此书 。