入门深度学习,读对书很重要

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》。虽然书中的内容和代码有一些错别字,不过像自然语言处理等内容上,还是列举了许多不错的实例。和其他手册书一样,本书也偏重代码,如果你不太了解卷积神经网络的输入输出,你会被许多基本概念搞晕,买书前如果你已经看过其它的书,并且对书中的例子进行了实战,那么这本书可以给你提供更多的练习与实践。

雷锋网提醒,请不要以此书入门,也不建议单独购买此书。

结语

肯定有些书正在编写中,还有些书已经出版,不过我没机会去拜读过,将来有机会读到的话,我会继续推荐的。还等什么呢,抓紧开始吧,深度学习的魔力尽在你的掌握中!

====================================分割线================================

本文作者:光阴

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-11-10 00:43:08

入门深度学习,读对书很重要的相关文章

零基础入门深度学习(六):递归神经网络

递归神经网络是啥    因为神经网络的输入层单元个数是固定的,因此必须用循环或者递归的方式来处理长度可变的输入.循环神经网络实现了前者,通过将长度不定的输入分割为等长度的小块,然后再依次输入到网络中,从而实现了神经网络对变长输入的处理.   一个典型的例子是,当我们处理一句话时,我们可以把一句话看作是词组成的序列,然后,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出.如此,我们就能处理任意长度的句子了.如下图所示:     然而,有时候把句子看做是词的序列

零基础入门深度学习(6) - 长短时记忆网络(LSTM)

在上一篇文章<零基础入门深度学习(4):循环神经网络>中,我们介绍了循环神经网络以及它的训练算法.我们也介绍了循环神经网络很难训练的原因,这导致了它在实际应用中,很难处理长距离的依赖.在本文中,我们将介绍一种改进之后的循环神经网络:长短时记忆网络(Long Short Term Memory Network, LSTM),它成功地解决了原始循环神经网络的缺陷,成为当前最流行的RNN,在语音识别.图片描述.自然语言处理等许多领域中成功应用.   但不幸的一面是,LSTM的结构很复杂,因此,我们需

零基础入门深度学习(1):感知器,激活函数

零基础入门深度学习(1) - 感知器零基础入门深度学习(2) - 线性单元和梯度下降零基础入门深度学习(3) - 神经网络和反向传播算法零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络. 零基础入门深度学习(6) - 长短时记忆网络(LSTM). 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就out了?现在救

零基础入门深度学习(五):长短时记忆网络

在上一篇文章<零基础入门深度学习(4):循环神经网络>中,我们介绍了循环神经网络以及它的训练算法.我们也介绍了循环神经网络很难训练的原因,这导致了它在实际应用中,很难处理长距离的依赖.在本文中,我们将介绍一种改进之后的循环神经网络:长短时记忆网络(Long Short Term Memory Network, LSTM),它成功地解决了原始循环神经网络的缺陷,成为当前最流行的RNN,在语音识别.图片描述.自然语言处理等许多领域中成功应用.   但不幸的一面是,LSTM的结构很复杂,因此,我们需

零基础入门深度学习(5) - 循环神经网络

  在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用.他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的.   比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列:当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列.这时,就需要用到深度学习领域中另一类非常重要神经网络:循

零基础入门深度学习(3) - 神经网络和反向传播算法

   神经元   神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数是阶跃函数:而当我们说神经元时,激活函数往往选择为sigmoid函数或tanh函数.如下图所示:       sigmoid函数的定义如下:     将其带入前面的式子,得到     sigmoid函数是一个非线性函数,值域是(0,1).函数图像如下图所示     sigmoid函数的导数是:     可以看到,sigmoid函数的导数非常有趣,它可以用sigmoid函数自身来表示.这样,一旦计算出sigmoi

零基础入门深度学习(三):卷积神经网络

投稿:Intelligent Software Development 团队介绍:团队成员来自一线互联网公司,工作在架构设计与优化.工程方法研究与实践的最前线,曾参与搜索.互联网广告.共有云/私有云等大型产品的设计.开发和技术优化工作.目前主要专注在机器学习.微服务架构设计.虚拟化/容器化.持续交付/DevOps等领域,希望通过先进技术和工程方法最大化提升软件和服务的竞争力.   在前面的文章中,我们介绍了全连接神经网络,以及它的训练和使用.我们用它来识别了手写数字,然而,这种结构的网络对于图像

零基础入门深度学习(4) - 卷积神经网络

在前面的文章中,我们介绍了全连接神经网络,以及它的训练和使用.我们用它来识别了手写数字,然而,这种结构的网络对于图像识别任务来说并不是很合适.本文将要介绍一种更适合图像.语音识别任务的神经网络结构--卷积神经网络(Convolutional Neural Network, CNN).说卷积神经网络是最重要的一种神经网络也不为过,它在最近几年大放异彩,几乎所有图像.语音识别领域的重要突破都是卷积神经网络取得的,比如谷歌的GoogleNet.微软的ResNet等,打败李世石的AlphaGo也用到了这

零基础入门深度学习:感应器、线性单元和梯度下降

投稿:Intelligent Software Development 团队介绍:团队成员来自一线互联网公司,工作在架构设计与优化.工程方法研究与实践的最前线,曾参与搜索.互联网广告.共有云/私有云等大型产品的设计.开发和技术优化工作.目前主要专注在机器学习.微服务架构设计.虚拟化/容器化.持续交付/DevOps等领域,希望通过先进技术和工程方法最大化提升软件和服务的竞争力.   无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的