深度学习理论由Hinton等人于2006年提出, 其概念源于对人工神经网络的研究。深度学习技术通过组合数据的低层特征形成更加抽象的高层属性, 以发现数据的分布式特征表示。
本书主要阐述基于深度学习理论的一些模型和算法。全书共分为8章, 主要内容包括绪论、TensorFlow和Keras简介、简单神经网络、图像类数据处理、序列类数据处理、深度学习模型优化、数据和模型的处理与调试、现代深度学习模型概述。附录给出了基于深度学习的视频目标跟踪研究进展综述和QLearning算法的参考代码。为便于学习和参考, 各章均包含丰富的思考题。
本书主要面向工科院校人工智能、模式识别、数据挖掘和深度学习等专业的本科生, 也可供相关专业的研究生和工程技术人员参考。
2015年10月, 以深度学习技术为基础的人工智能围棋程序 AlphaGo连续五局击败欧洲围棋冠军樊辉; 2016年3月, AlphaGo以4∶1战胜排名第四的韩国职业棋手李世石; 2017年5月, AlphaGo 又以3∶0战胜排名第一的中国职业棋手柯洁。自此国内迎来深度学习的研究热潮。2019年图灵奖授予了深度学习研究领域的Hinton教授等三人。
深度学习理论是由Hinton等人于2006年提出的, 其概念源于人工神经网络的研究, 它通过组合低层特征来形成更加抽象的高层表示属性类别或特征, 以发现数据的分布式特征表示。
深度学习在短短数年间迅猛发展, 颠覆了语音识别、图像分类、文本理解等领域的算法设计思路, 逐渐形成了一种从训练数据出发, 经过一个端到端的模型, 然后输出得到最终结果的新模式。这一创新不仅使整个系统变得更加简洁, 而且准确度也能够通过综合调整深度神经网络中各个层的特征信息来不断提升。深度学习凭借大数据时代与电子技术的助力实现了迅速发展。深度学习网络对各种海量数据(不管是标注数据、弱标注数据还是仅仅数据本身)都可以加以利用并完全自动地学习深层的知识表达, 这种知识其本质就是原始数据的高度浓缩与概括。
得益于深度学习强大的特征提取能力及其在计算机视觉、语音识别、大数据等领域取得的巨大成功, 深度学习已经进入人们的视野, 将其应用于实际工程方面具有良好的发展前景, 并已成为当前领域的热点研究方向。
本书主要阐述基于深度学习理论的一些模型和算法, 在对其进行详细介绍的同时, 吸纳了国内外许多具有代表性的最新研究成果。全书取材新颖, 内容丰富, 注重理论与实际的结合, 提供了将深度学习应用到实际项目中所需要的知识。
全书内容共分为8章:第1章绪论, 介绍深度学习的思想、定义和研究现状以及未来的发展趋势, 由刘玉良、侯伟编写; 第2章TensorFlow和Keras简介, 主要介绍TensorFlow以及Keras框架, 并通过实际操作进行演示说明, 由戴凤智、魏宝昌编写; 第3章简单神经网络, 从人脑学习的角度引入人工神经网络的概念, 讲述基本理论并通过Keras予以实现, 由张全、袁亚圣编写; 第4章图像类数据处理, 以卷积神经网络为依托, 介绍相关的深度技术, 并将其应用于图像类的数据处理之中, 由叶忠用、尹迪编写; 第5章序列类数据处理, 主要介绍了一系列序列类数据的处理方法并通过Keras进行实现, 由金霞、陈莹编写; 第6章深度学习模型优化, 系统地介绍了几种常见的深度学习模型的优化方法, 同时讨论影响深度学习模型优化的因素, 由李杰、章朱明编写。第7章数据和模型的处理与调试, 介绍了如何根据具体应用挑选一个合适的算法以及对系统的性能进行评价, 并根据实验反馈的性能改进机器学习系统, 由张全、袁亚圣编写; 第8章现代深度学习模型概述, 介绍了几种常见的深度学习模型, 包括玻尔兹曼机、自编码器、深度信念网络等, 为将来的模型设计提供思路, 由张全、尹迪编写。魏宝昌完成了本书附录部分的编写工作。全书由刘玉良、戴凤智和张全最终整理并成稿。
本书在编写过程中得到了中国人工智能学会智能空天系统专业委员会主任、北京航空航天大学贾英民教授的鼓励和支持, 他亲自为本书作序。作为后辈学者, 本书作者非常感谢贾英民教授的提携。本书的出版是天津科技大学电子信息与自动化学院集体努力的结果。其中, 刘玉良老师及其研究生团队成员张全、李杰、章朱明、侯伟, 以及戴凤智老师及其研究生团队成员魏宝昌、叶忠用、金霞、袁亚圣、尹迪、陈莹均参与了本书的编写与校正工作。同时感谢西安电子科技大学出版社领导和参与此书编辑出版的工作人员的大力协助, 倘若没有他们的热情支持, 本书难以如此迅速地和大家见面。此外, 如果没有各位学者以公开出版物、课程和代码的方式分享他们的成果, 本书可能也不会存在, 这里对于他们的奉献表示衷心感谢。
由于编者水平有限, 书中不妥之处在所难免, 恳请读者批评指正
第1章 绪论 1
1.1 引言 1
1.2 基本术语 2
1.3 监督学习算法 6
1.3.1 支持向量机 6
1.3.2 决策树 9
1.4 无监督学习算法 11
1.4.1 主成分分析 11
1.4.2 K均值聚类 15
1.5 机器学习 16
1.6 深度学习的趋势 21
1.6.1 与日俱增的数据量 21
1.6.2 愈发庞大的计算资源 22
1.6.3 越来越高的性能以及解决实际问题的潜力 23
思考题 23
参考文献 24
第2章 TensorFlow和Keras简介 27
2.1 TensorFlow简介 27
2.1.1 概述 27
2.1.2 TensorFlow的使用 29
2.1.3 TensorFlow的可视化 32
2.2 Keras简介 36
2.2.1 Keras概述 36
2.2.2 Keras的使用 37
2.2.3 Keras的可视化 38
思考题 39
参考文献 39
第3章 简单神经网络 40
3.1 人脑是如何学习的 40
3.2 模仿人脑——神经元(感知器) 42
3.3 非线性神经元 44
3.4 神经网络架构 47
3.5 梯度下降 49
3.5.1 代价函数 49
3.5.2 梯度下降 50
3.6 反向传播 53
3.6.1 多层神经网络的数学表示 53
3.6.2 反向传播算法原理 54
3.7 实现简单神经网络 56
思考题 62
参考文献 63
第4章 图像类数据处理 65
4.1 二维卷积神经网络的基本原理 65
4.1.1 卷积神经网络的原理 66
4.1.2 参数共享 69
4.1.3 池化 72
4.1.4 分类原理 75
4.2 简单卷积神经网络实例 78
4.3 过度拟合 86
4.3.1 容量、过拟合与欠拟合的基本概念 86
4.3.2 数据集增强 88
4.3.3 L2正则化 89
4.3.4 L1正则化 93
4.3.5 Dropout 95
4.3.6 提前终止 99
4.4 时间优化 104
4.4.1 交叉熵代价函数 104
4.4.2 批标准化 108
4.4.3 随机梯度下降 110
4.4.4 动量 112
4.4.5 Nesterov动量 116
4.5 综合二维卷积神经网络实例 116
思考题 121
参考文献 123
第5章 序列类数据处理 127
5.1 一维卷积神经网络 127
5.1.1 一维卷积神经网络的原理 127
5.1.2 一维卷积神经网络实例 129
5.2 循环神经网络 134
5.2.1 循环神经网络的基本原理 135
5.2.2 循环神经网络的输出 141
5.2.3 上下文依赖型数据处理 145
5.2.4 序列到序列的数据处理 147
5.3 递归神经网络 150
5.3.1 递归神经网络的基本原理 150
5.3.2 长期依赖性 151
5.4 长短期记忆LSTM网络 155
5.4.1 长短期记忆网络的基本原理 155
5.4.2 长短期记忆网络工程实例 159
思考题 169
参考文献 170
第6章 深度学习模型优化 175
6.1 参数初始化 175
6.2 超参数寻优算法 179
6.2.1 手动超参数寻优 179
6.2.2 超参数寻优算法 181
6.3 基于梯度的自适应学习算法 183
6.3.1 AdaGrad算法 183
6.3.2 RMSProp算法 184
6.3.3 Adam算法 185
6.4 生成对抗神经网络及实例 187
6.5 迁移学习及实例 198
6.6 强化学习 215
6.7 模型优化的局限性 227
6.7.1 局部极小值 227
6.7.2 梯度消失、梯度爆炸与悬崖 228
6.7.3 鞍点 232
6.7.4 长期依赖 233
6.7.5 梯度的非精确性 234
思考题 234
参考文献 236
第7章 数据和模型的处理与调试 239
7.1 模型评价 239
7.2 数据预处理 241
7.3 基础模型的选择 246
7.4 模型调试 248
思考题 250
参考文献 251
第8章 现代深度学习模型概述 253
8.1 玻尔兹曼机 253
8.1.1 标准玻尔兹曼机 253
8.1.2 受限玻尔兹曼机 255
8.1.3 深层玻尔兹曼机 258
8.2 自编码器 262
8.2.1 标准自编码器 262
8.2.2 稀疏自编码器 264
8.2.3 降噪自编码器 266
8.3 深度信念网络及实例 269
8.4 残差神经网络及实例 278
8.5 胶囊神经网络及实例 286
思考题 294
参考文献 295
附录 298
附录A 基于深度学习的视频目标跟踪研究进展综述 298
附录B QLearning算法的参考代码 309