我相信你应该知道人工智能,尤其是深度学习在过去5年左右取得了不错的进步。
深度学习是由少数研究人员开始的一个相对较小的领域,现在已经变得如此主流,以至于我们现在每天使用的应用程序和服务,现在都在使用深度学习来执行不久前难以想象的任务。
但深度学习并不新鲜,从20世纪40年代开始,Warren McCulloch和Walter Pitts就基于数学和算法创建了神经网络的计算模型。
然而,“深度学习”在不久前才开始流行起来,当时Geoffrey Hinton和Ruslan Salakhutdinov发表了一篇论文, 展示了一个多层神经网络如何可以一次预先训练一层。
在2009年,人们发现,使用足够大的数据集,你实际上并不需要预训练,并且错误率可能因为数据的增加显着下降。
2012年,Google的Deep Learning系统实现了人类发现猫的能力。
2016年,Google的阿尔法狗打败了李世石,人工智能大火。
2017年,Google的DeepMind构建了一种名为AlphaGo zero的算法,该算法可以自行掌握 下围棋,并取得了不错的成绩。
但这仅仅是一个开始。随着数据集越来越大,处理器速度越来越快,以便能够训练更多的海量数据,深度学习的能力将不断提高。
所以,如果你想成为这场革命的一部分,现在无疑是最佳的时间进入深度学习领域了。
随着GPU和大数据集一应俱全,学习深度学习的机会巨大。这样做将使你能够训练机器执行一些令人难以置信的任务,例如面部识别,癌症检测,甚至是股市预测。
这就是这些书能派上用场的地方,因为它们可以让你从零开始学习深度学习。本综述中的每一本书都有各自的优点,而且每一本书都非常出色。
不过,我已经把它们按我认为是最好的以及我建议学习先后的顺序排名。
以下是目前互联网上的12本最好的深度学习书籍:
1.用Scikit-Learn和TensorFlow进行机器学习
首先,在我看来最好的一本是采用流行的机器学习库Scikit-Learn和Google的TensorFlow的实践教程来学习深度学习的书。
作者试图以一种几乎任何人都能理解的方式来解释复杂的话题,这在我看来是一个很大的优势。
我喜欢“ 动手机器学习”,它可以让你通过机器学习项目从开始到结束。因此,你可以看到如何处理真实数据,如何将数据可视化以获取洞察力,以及重要的是如何为机器学习算法准备数据。
在本书后面,你将看到著名的MNIST分类器,模型是如何训练以及一些基本的机器学习分类器,如SVM,决策树,随机森林等。
所有这一切都是为了让你准备好本书的第二部分,内容涉及Tensorflow(包括安装)以及基本的神经网络和深度神经网络。
我认为这本书的结构很好,并以正确的顺序介绍了主题,而且书中的想法和具体例子都有很好的解释。
2.深度学习(Deep Learning)
深度学习,可能是本文中最全面的书。 这本书由该领域的三位专家Ian Goodfellow,Yoshua Bengio和Aaron Courville撰写。此书也是唯一得到企业家马斯克认可的书。
这本书被许多人认为是深度学习的圣经,因为它汇集了数年和数年在一本书中学习和专注的研究。
这本书并不是为了专心学习,而是可以更好地用于睡前阅读,因为它充满了函数方程式,并以典型的教科书书写,所以它不会写成最有趣的风格。
它从一开始就介绍基础数学,如线性代数,概率论,接着转向机器学习基础,最后介绍深度网络和深度学习。
所以,如果你是一个渴望掌握主题并进入深度学习研究的有抱负的学生,那么这本书肯定会对你有所帮助。这可能是目前关于此主题的最全面的书籍。
3.Deep Learning for the Layman(为外行准备的深度学习)
我把这本书添加进来,因为正如标题所说的的那样,它是为一般读者而写的。
对于外行的深度学习首先介绍深度学习,具体来说,它是什么以及为什么需要它。
本书的下一部分解释了监督学习,无监督学习和强化学习之间的差异,并介绍了分类和聚类等主题。本书后面将讨论人工神经网络,包括它们是如何构建的以及构成网络中每一层的部分。最后讨论了深度学习,包括构成当今许多计算机视觉算法的一部分的卷积神经网络。
我将这本书看作是对深度学习的介绍,并了解所涉及的概念。但实际上,我不确定这本书会对你有好处,但如果你想要一本简单的英文指南,同时又能看到很少炒作的文字,那么这本书可能适合你。
4.建立你自己的神经网络(Make Your Own Neural Network)
这不是严格意义上的“深度学习”,但本书将带你深入了解神经网络及其工作原理,帮助你了解深度神经网络。
在本书中,你可以通过神经网络的数学指导,完整的理解神经网络的工作方式。
你不仅可以知道他们如何工作,还可以在Python中实现两个神经网络示例,这将有助于巩固你对该主题的理解。
本书从机器学习的高层概述开始,然后深入研究神经网络的细节。所涉及的数学并没有超出大学水平,但包含微积分的介绍,这是以尽可能多的人访问的方式解释的。
有两个部分可以建立自己的神经网络,第一部分是关于思想和理论的,第二部分是更实际的。
在第二部分中,你将学习Python编程语言,并逐渐建立起自己的能够识别手写数字的神经网络。
作为奖励,你还将学习如何让你的神经网络在Raspberry Pi上运行!
对于那些希望学习基本神经网络的基本内容的人来说,这本书是一本很棒的书,并且可以成为本次综述中有关深度学习的其中一本书的重要先决条件。
5.深度学习初学者(Deep Learning for Beginners)
对于初学者的深度学习,这本书并不太重视深度学习的数学,而是使用图表来帮助你理解深度学习的基本概念和算法。
本书采用与许多其他书籍不同的方法,通过提供深度学习算法的工作原理的简单示例,然后逐步构建这些示例并逐步引入更复杂的算法部分。
本书的目标受众非常多样,从计算机科学新手到数据科学专业人员和导师都希望以最简单的方式向学生解释相关主题。
就书本结构而言,你将首先学习人工神经网络的基础知识,并了解机器学习和深度学习之间的差异。之后,你将在进入卷积神经网络(CNN)和其他深度学习算法之前了解有关多层感知器(MLP)的所有信息。
这是一本很好的初学者书籍,可以很好地解释这些概念,但是如果你正在寻找更实用的东西,那么你应该在本综述中查找其他书籍。
6.神经网络和深度学习(Neural Networks and Deep Learning:Deep Learning explained to your granny)
一本通俗解释深度学习的书,简单地说,你的奶奶都可以在本书的帮助下理解深度学习!
神经网络和深度学习:让你逐步了解神经网络和深度学习的基础知识,对于那些想要了解这个主题但不一定想深入了解所有数学背景的人来说,这本书是一本很棒的书。
因此,在简要介绍机器学习之后,你将学习有监督学习和无监督的学习,然后研究诸如神经元、激活函数和不同类型的网络体系结构等。
最后,你将学习深度学习的实际工作原理,深度神经网络的主要类型(包括卷积神经网络),如何给神经网络提供记忆,还讨论了可用的各种框架和库。
7.深度学习基础:设计下一代机器智能算法(Fundamentals of Deep Learning: Designing Next-Generation Machine Intelligence Algorithms)
Nikhil Buduma和Nicholas Locascio撰写的这本书以及旨在帮助你开始深度学习,但其目标是那些熟悉Python并具有微积分背景的人.
尽管如此,深度学习基础知识确实涵盖了机器学习和神经网络的基础,并且教会了如何训练前馈神经网络。
我认为这本书的亮点之一是它大量使用了Tensorflow,它是Google的深度学习框架,用于构建神经网络。事实上,书中有一整章专门介绍它,这在我看来是一个巨大的优势。
就本书的其余部分而言,它涉及一些相当先进的特性,如梯度下降、卷积滤波器、深度强化学习等等。
8.学习TensorFlow:构建深度学习系统的指南(Learning TensorFlow: A Guide to Building Deep Learning Systems)
接下来是一本完全关注Tensorflow的书,本书为Tensorflow提供了一个实用的实践方法,适用于广泛的技术人员,从数据科学家到工程师,学生。
通过在Tensorflow中提供一些基本示例,本书开始非常入门,但随后转向更深入的主题,如卷积神经网络等神经网络体系结构,如何使用文本和序列、TensorBoard可视化、TensorFlow抽象库以及多线程输入管道。
学习TensorFlow的终极目标是教你如何通过保存和导出模型以及如何使用Tensorflow服务API,在Tensorflow中构建和部署适用于生产的深度学习系统。
9.用Python深入学习(Deep Learning with Python)
深度学习with python作为标题建议介绍深度学习使用Python编程语言和开源Keras库,它允许简单快速的原型设计。
关于这本书的伟大之处在于作者非常有吸引力,这使得本书非常易读。正因为如此,人工智能和深度学习的一些更具挑战性的方面的布局简单易懂。
本书还避免了数学符号,而是专注于通过代码片段(其中有30多个)解释概念。
在Python深度学习中, 你将从一开始就学习深度学习,你将学习所有关于图像分类模型,如何使用深度学习获取文本和序列,甚至可以学习如何使用神经网络生成文本和图像。
本书是为那些具有Python技能的人员编写的,但你不必在机器学习,Tensorflow或Keras方面有过任何经验。你也不需要先进的数学背景,只有基础的高中水平数学应该让你跟随和理解核心思想。
10.深度学习:从业者的方法(Deep Learning :A Practitioner’s Approach)
与本综述中的其他书不同,本书重点介绍Deep Learning For Java(DL4J),它是用于训练和实施深度神经网络的Java框架/库。
现在大多数人工智能研究都是用Python进行的,因为快速原型开发通常更快,但随着更多组织(其中许多使用Java)拥抱AI,我们可能会看到更多的AI算法转向Java,如DL4J。
本书首先是关于深度学习的初学者书籍,但如果你已经具备Java或深度学习的经验,那么你可以直接查看示例。
如果你在深度学习方面没有经验,但是有丰富的Java经验,那么你应该从封面阅读。如果你根本不了解Java,那么我强烈推荐阅读其中一本 Java初学者书籍。
通过阅读本书,你将总体了解机器学习概念,特别关注深度学习。你将了解深度神经网络是如何从基础神经网络发展而来的,你还将了解一些深层网络架构,如卷积神经网络和循环神经网络。
如果你熟悉Hadoop和Spark,那么你将能够了解如何使用DL4J本身的这些技术。
11.用TensorFlow进行专业深度学习(Pro Deep Learning with TensorFlow)
本书将以亲身实践的方式教给你Tensorflow,让你能够从零开始学习深度学习,快速掌握Tensorflow API并学习如何优化各种深度学习网络架构。
专业深度学习将帮助你开发调整现有神经网络体系结构所需的数学知识和经验,甚至创造出可能挑战最新技术水平的全新体系结构。
本书中的所有代码都以iPython笔记本的形式提供,因为我过去曾使用过Tensorflow,我发现在开发过程中使用iPython笔记本电脑非常有用。
本书面向数据科学家和机器学习专业人员、软件开发人员、研究生和开源爱好者,并将为你提供数学基础和机器学习原理,使你能够开展研究并将深度学习解决方案部署到生产环境中。
12.用于深度学习的TensorFlow(TensorFlow for Deep Learning)
在撰写本文时,深度学习的TensorFlow尚未发布,但可用于预购。
本书将通过从头开始的实例向你介绍深度学习的概念,专门为开发经验丰富的构建软件系统的开发人员但没有深度学习体系结构的经验设计。
本书将向你展示如何设计可执行对象检测,翻译人类语言,分析视频甚至预测潜在药物特性的系统!
你将获得关于Tensorflow API的深入知识,如何在大型数据集上训练神经网络以及如何在卷积网络,循环网络,LSTM和强化学习中使用TensorFlow。
本书的确需要一些基本线性代数和微积分的背景知识,但这是一本实用的书,旨在教你如何创建可以学习的系统。
总结:
所以这就是它们,这是目前最好的深度学习书籍。人工智能,尤其是深度学习,已经非常火热了,而且这项技术已经实现了非凡的功能。然而,它仍处于起步阶段,许多组织尚未接受它。
但是,这恰恰是为愿意学习深度学习的人提供了时间和机会。
深度学习有能力改变许多行业,并且还有许多尚未被梦想过的创业公司的想法。我觉得我们只是站在技术革命的开端。
作为Java开发人员,我有过深度学习的一些经验,但我知道很多同事还没有学习这个主题。所以,趁早抓住机会学习吧。
本文由阿里云云栖社区组织翻译。
文章原标题《12 BEST DEEP LEARNING BOOKS IN 2018 - RANKED IN ORDER OF AWESOMENESS!》
作者:Baz Edwards
译者:虎说八道,审校:。
文章为简译,更为详细的内容,请查看原文