基本信息
- 作者: [美]杜威·奥辛格(Douwe Osinga)
- 丛书名: O’Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111624837
- 上架时间:2019-4-29
- 出版日期:2019 年4月
- 开本:16开
- 页码:258
- 版次:1-1
- 所属分类:计算机 > 人工智能 > 综合

【插图】

内容简介
计算机书籍
本书的第1章从深度学习相关的基本概念开始,介绍了典型的神经网络结构和各种层的设计特点,然后对深度学习中常见的数据集进行了介绍,最后对数据预处理和数据集的划分进行了细致的阐述。第2章是与深度神经网络调试相关的通用技巧,主要涉及到如何解决遇到的问题,包括排查错误、结果检查、选择激活函数、正则化和Dropout、训练参数设置等技巧。第3章到第15章以实际例子的形式,介绍深度学习在文本处理、图像处理、音乐处理等方面的技巧,涵盖了深度学习主要应用领域和数据类型,内容非常丰富。最后一章作者从实际生产系统使用的角度告诉读者如何在生产系统中部署机器学习应用,这使得本书的内容更加贴近实际,更加完整。
作译者
目录
第1章 工具与技术9
1.1 神经网络的类型9
1.2 数据获取19
1.3 数据预处理27
第2章 摆脱困境34
2.1 确定我们遇到的问题34
2.2 解决运行过程中的错误36
2.3 检查中间结果38
2.4 为最后一层选择正确的激活函数39
2.5 正则化和Dropout40
2.6 网络结构、批尺寸和学习率42
第3章 使用词嵌入计算文本相似性44
3.1 使用预训练的词嵌入发现词的相似性45
3.2 Word2vec数学特性47
3.3 可视化词嵌入49
3.4 在词嵌入中发现实体类51
3.5 计算类内部的语义距离55
3.6 在地图上可视化国家数据57
第4章 基于维基百科外部链接构建推荐系统58
前言
当前深度学习的热潮,其根源可令人惊讶地追溯到20世纪50年代。虽然“智能机器”的模糊概念可以进一步追溯到更早期的科幻小说和各类科学设想中,但是到了20世纪50年代和60年代,才真正出现了“人工神经网络”的最初理念,该理念基于有关生物神经元的一个极简模型。在这些模型中,由Frank Rosenblatt提出的感知机系统引起了大家的极大兴趣。通过连接到一个简单的“照相机”回路,它可以学会区分不同类型的物体。该系统的第一个版本以软件形式在IBM计算机上运行,但是其后续的版本都是用纯硬件来实现的。
对多层感知机(Multilayer Perceptron,MLP)模型的兴趣在20世纪60年代持续不断。到了1969年,Marvin Minksy和Seymour Papert出版了《感知机》(Perceptrons,MIT出版社)一书,彻底改变了这种形势。这本书证明了线性感知器不能对非线性函数(XOR)的行为进行分类。虽然该证明存在局限性(该书出版时,非线性感知器模型已被提出,作者也注意到了这一问题),但是该书的出版预示着神经网络模型研究基金的急剧减少。直到20世纪80年代,随着新一代研究人员的逐步崛起,相关研究才得以恢复。
随着计算能力的提高以及反向传播(back-propagation)技术的发展(反向传播技术自20世纪60年代被提出以来,有很多种不同的形式,但是直到80年代才开始普遍应用),人们对神经网络重新产生了兴趣。不仅计算机拥有了训练更大型网络的能力,我们也拥有了有效训练更深层网络的能力。最初的卷积神经网络将这些技术发展与哺乳动物大脑的视觉识别模型结合起来,首次产生了能够有效地识别诸如手写数字和人脸等复杂图像的网络。卷积网络通过将相同的“子网络”应用到图像的不同位置并将这些结果聚合到更高级的特征中来实现这一点。在本书第12章中,我们会详细介绍这方面的内容。
20世纪90年代和21世纪00年代初期,随着支持向量机(SVM)和决策树等更“易于理解”的模型变得流行,人们对神经网络的兴趣再次出现了下降。对于当时许多数据源来说,SVM被证明是非常优秀的分类器,特别是在与人工特征相结合时更是如此。在计算机视觉中,“特征工程”开始变得流行起来。该技术涉及为图片中的小元素构建特征检测器,并人工将其组合成能够识别更复杂形态的模型。后来科研人员发现,深度学习网络也能够学会识别类似的特征,并能够学会以非常相似的方式组合这些特征。在第12章中,我们将会探讨这些网络的内部工作机制,并对深度学习网络所学的内容进行可视化。
21世纪00年代后期,随着图形处理单元(GPU)通用编程的出现,神经网络架构在竞争中取得了长足的进步。GPU包含数千个微处理器,它们可以每秒并行执行数万亿次操作。GPU最初是为计算机游戏开发的,主要目的是实现复杂3D场景实时渲染,事实证明,GPU也能够用于并行训练神经网络,可以实现10倍或更高倍数的计算速度提升。
另外一件促使深度学习领域长足进步的事情,是互联网的发展为其提供了大量可用的训练数据。以往研究人员只能使用数千幅图像训练分类器,现在已经可以提供几千万甚至数以亿计的图像了。结合更大型的网络,神经网络技术现在迎来了绽放光芒的机会。这种优势仅在最近几年才开始持续出现,伴随着技术改进与现实应用,神经网络技术逐步应用到了图像识别之外的很多领域,包括机器翻译、语音识别和图像合成。
为什么是现在
计算能力和改进技术的爆发式发展,使人们对于神经网络的兴趣逐步增加,同时我们也看到了神经网络技术在可用性上取得了巨大的进步。特别是像TensorFlow、Theano和Torch这样的深层学习框架使得非专业人士也能够构建出复杂的神经网络来解决自己的机器学习问题。这使得以往需要数月甚至数年手动编码和辛勤付出(编写高效的GPU内核真的十分困难!)的任务,转变成为任何一个人都可以在一下午(或者几天内)完成的任务。可用性的提升极大地增加了有能力开展深度学习问题研究的人员数量。正如本书在后续章节中将展示的那样,具有更高抽象级别的框架,比如Keras,使得任何具有Python和相关工具知识的人都能够开展一些有趣的实验。
回答“为什么是现在”这个问题的第二个要素是,每个人都可以使用大型的数据集。是的,Facebook和Google在访问数十亿图片、用户评论方面仍占据优势,但是你也可以通过各种数据源获得包含数百万条目的数据集。在第1章中,我们将会探讨各种可选的数据源,并且纵览全书,每章的示例代码通常都会在各章开头向你展示如何获得所需的训练数据。
与此同时,私营公司也开始生产和收集更大数量级的数据,这使得整个深度学习领域在商业上忽然变得越来越令人着迷。一个能辨别猫和狗的模型已经非常不错了,然而一个能够在使用所有历史销售数据的基础上将销售额提升15%的模型,对于一个公司来说则可能意味着生死存亡。
你需要知道什么
如今,对于深度学习来说,有很多平台、技术和编程语言可供选择。在本书中,所有的例子都是用Python编写的,并且大部分代码的实现都依赖于优秀的Keras框架。本书的示例代码可以在GitHub上的Python notebook中找到,每章的代码存放在一个notebook中。因此,对读者来说,具备以下知识技能将有助于阅读本书:
Python
Python 3是首选版本,你也可以使用Python 2.7。我们会用到各类helper库,你可使用pip轻松安装它们。本书涉及的代码大都比较简单易懂,所以即使是一名新手也可以跟着本书进行实践。
Keras
机器学习的繁重工作几乎全部是由Keras完成的。Keras是对TensorFlow或Theano深度学习框架的抽象封装。Keras能够轻松地使用可读的方式定义神经网络。本书中所有代码均在TensorFlow框架下完成了测试,但也适用于Theano框架。
NumPy、SciPy、scikit-learn
在很多技巧中用到了这些很有用且广泛使用的代码库。大多数情况下,从上下文中应该能弄清楚其功能,但是对它们进行快速浏览也不会耽误阅读。
Jupyter notebook
媒体评论
本书每章包括完成独立项目所需的几个技巧,如训练一个音乐推荐系统。如果你陷入了困境,作者还在第2章提供了6个技巧来帮助你。本书中的例子用Python语言编写,代码在GitHub上以Python notebook集合的方式提供。
通过本书,你将学会:
■ 创建为真实用户服务的应用
■ 使用词嵌入计算文本的相似性
■ 基于维基百科链接建立电影推荐系统
■ 通过可视化的内部状态了解AI看待世界的原理
■ 建立一个为文本片段推荐表情符号的模型
■ 重用预训练的神经网络构建反向图像搜索服务
■ 比较GAN、自动编码器和LSTM如何生成图标
■ 检测音乐的风格并检索歌曲集
对于那些喜欢实际结果胜过理论的人们,本书是开始深度学习的非常好的方法。它帮助了我的新音乐初创公司Weav的工程师团队快速地熟悉深度学习。对于任何对学习实际机器学习感兴趣的人来说,本书非常完美。
——拉尔斯·拉斯穆森
Google地图联合创始人