Daniel Jeffries:多年来,由于实验室研究和现实应用效果之间的鸿沟,少有人持续研究人工智能,AI在很多领域停滞不前。
但近两年,AI 在一些领域陆续有了重大突破,比如:图像识别;自动驾驶;Alpha Go等。许多八九十年代的算法,由于硬件慢和缺乏数据等原因束之高阁。而现在,有众多大数据集和大规模并行芯片的支持,这些算法终于初见成效。
在过去的一年多时间里,研究人员奋笔疾书,竞相出版专著,以满足读者对深度学习知识的渴求。第一本关于深度学习的书已经上架,更多的将会在夏天或者明年年初陆续上架。我有幸提前拜读了若干专著的初稿,这些书的最终出版让人期待万分。
接下来给大家推荐一些深度学习书籍,这些书可以引导大家如何学习人工智能,对深度学习的快速理解有很大帮助。
理论和实践相互兼顾
我父亲常说“凡事均衡最好。”
对此我深信不疑,且奉为圭臬。当然,我承认在周末或者维加斯的时候,偶尔也会将其抛诸脑后。
我赞成理论与实践要相互均衡。比如针对某个问题,给一个明确的背景信息,然后根据实例让我自己动手实践。书本不要过多阐述理论知识,应该让读者边学习边查漏补缺。设想有一本书,非常抽象,或者罗列大量的实例,却不解释问题的来龙去脉,你还能看下去吗?
每个人都有自己的学习习惯,应该清楚地知道怎么学,才能卓有成效。我始终认为花时间去买那些与我无用的书,特别容易错过真正适合的。如果你喜欢通篇理论,那就不必继续看我的推荐了。如果你喜欢看那些理论与实践结合相宜得章的书,相信我推荐的书单会让你会喜欢。
书单
《Deep Learning》
第一本书是Ian Goodfellow的《Deep Learning》。作者在Google Brain和OpenAI上做出了突出贡献。不少人认为这本书是深度学习领域的圣经,因为它是迄今为止唯一一本融合了前几十年研究工作的鸿篇巨著。
不过,除非你有较好的数学基础,否则不建议你从本书入门,因为读起来挫败感十足。书中不仅有大量的公式,同时写得比较枯燥、干巴。尽管Goodfellow希望能给读者传授更多的知识,但事与愿违,该书读起来不能引人入胜,比较乏味。确实会做和会教是两码事。
我估计明年首次参加大学深度学习课程的学生手中会拥有这本书,而其中的许多人会因为这本书难懂而坚持不下去。这本书比较适合那些经过几年相关工作后,仍想进一步掌握深度学习的从业者。对于拥有较多专业领域知识且正准备初次进军AI行业的专业程序员而言,这也是一本比较全面的指南。
本书免费中文版请点此。
《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庞大的生态系统,现在的大公司里,它仍然是主要的开发工具。
本书的作者之一Josh Patterson,邀请我出席五月第一周举办的Red Hat Summit(红帽峰会),到时我有机会通读本书的发行版。先说明这本书是面向深度学习初学者的。雷锋网建议,如果你已经有一些深度学习的基本知识并想进一步深入研究如何用Java实现深度学习,请直接跳过前面的例子。但是如果你没什么深度学习经验,Java也没那么熟悉,那么这本书值得你手不释卷,反复研读。尤其是“第 4 章:出色的深度学习架构”,本章提供了一个可以帮你解决现实应用中架构问题的关键方法。
虽然我不熟悉Java语言,但我把它分享给我的几个以程序为生的同事后,他们非常喜欢。在介绍深度学习上,书中的实例和书本的总体结构显得非常专业,期待夏天能够出版。
《TensorFlow Machine Learning Cookbook》
最后推荐的是《TensorFlow Machine Learning Cookbook》。虽然书中的内容和代码有一些错别字,不过像自然语言处理等内容上,还是列举了许多不错的实例。和其他手册书一样,本书也偏重代码,如果你不太了解卷积神经网络的输入输出,你会被许多基本概念搞晕,买书前如果你已经看过其它的书,并且对书中的例子进行了实战,那么这本书可以给你提供更多的练习与实践。
雷锋网提醒,请不要以此书入门,也不建议单独购买此书。
结语
肯定有些书正在编写中,还有些书已经出版,不过我没机会去拜读过,将来有机会读到的话,我会继续推荐的。还等什么呢,抓紧开始吧,深度学习的魔力尽在你的掌握中!