深度学习 从入门到实战
作者:高志强
出版时间:2018年版
内容简介
本书摒弃了枯燥的理论推导,以大量实战应用案例及知识模块等内容帮助机器学习领域的初、中级程序员踏实通过深度学习的技术门槛,切实提升开发技能,积累开发经验。 实战应用案例丰富,深入浅出地解析深度学习的方法论和深度学习实战应用是本书的一大特色,全书详细讲述了深度学习中涉及的神经网络基础知识、方法论解析与核心技术;同时从12个落地实践角度阐述了深度学习的实践应用。此外,本书中所有案例的代码程序均可以运行,读者按照相应说明,即可得到预期效果,希望本书的努力可以为读者在深度学习领域提供一定帮助,这就是我们的动力与追求。
目录
第1篇深度学习入门篇
第0章引言:从人工智能到深度学习 2
01 人工智能与机器学习 2
011 人工智能 3
【知识扩容】大数据带来的挑战 4
012 机器学习 4
【认知提升】细说图灵测试 5
【新观点】机器学习适合做什么 6
02 机器学习的模式 7
【知识扩容】人工智能学派之争 8
03 深度学习 9
【案例0-1】天气预报深度神经网络 9
【认知提升】说文解字“深度学习” 11
【应知应会】深度与学习 12
【最佳实践】减小损失函数的方法 12
04 温故知新 13
05 停下来,思考一下 14
第1章深度学习入门基础 16
11 数学基础 16
111 矩阵论基础 17
【案例1-1】像指挥官一样对矩阵进行“排兵布阵” 18
112 概率论基础与重要结论 19
【应知应会】MATLAB中概率论基本命令 21
12 机器学习基础 21
121 监督学习 22
【应知应会】数据挖掘与机器学习 22
122 无监督学习 23
【案例1-2】“无监督学习”中的k-means聚类 24
13 神经网络基础 26
131 生物神经网络 26
【认知提升】探索初级视觉皮层的启示 26
132 人工神经网络与神经元模型 27
【知识扩容】Walter Pitts其人 27
14 最优化理论基础 28
14 1 最优化问题 29
142 多目标优化问题 30
143 群智能优化方法 31
【案例1-3】指挥“群智能团队”逐渐逼近问题最优解 32
15 温故知新 35
16 停下来,思考一下 36
第2章神经网络原理与实现 38
21 线性问题与感知机 38
22 多层前馈神经网络与BP算法 41
221 多层前馈神经网络 41
【案例2-1】具有异或逻辑的感知机 42
222 多层前馈神经网络的训练 43
【案例2-2】训练前馈神经网络 47
【应知应会】梯度下降算法 47
23 其他神经网络 48
231 径向基函数网络 48
232 自组织映射网络 49
【案例2-3】用SOM网络聚类Iris数据 49
233 深度神经网络 50
24 温故知新 53
25 停下来,思考一下 53
第2篇深度学习方法论解析篇
第3章卷积神经网络(CNN) 58
31 卷积神经网络入门 58
311 生物机理 59
312 拓扑结构 61
【知识扩容】图像处理中的全连接网络与卷积网络 63
313 卷积神经网络的特点 63
32 卷积神经网络的关键技术 64
321 卷积 65
【案例3-1】利用图像的卷积操作对6×6的单通道图像进行瘦身 66
【知识扩容】多通道卷积 67
【案例3-2】构建基本CNN 68
【认知提升】不同角度看“卷积” 68
322 池化 69
【最佳实践】小技巧总结 71
【案例3-3】在Keras框架中实现MaxPooling 71
【知识扩容】VGG卷积神经网络 72
【案例3-4】揭开VGG和GoogLeNet的“庐山真面目” 73
【认知提升】GoogleNet的Inception结构 75
323 扁平化 75
【案例3-5】实现图像特征矩阵的扁平化操作 76
324 关键技术小结 76
【新观点】卷积神经网络发展方向 77
33 综合案例:三步教你构建手写字识别神经网络 78
【应知应会】Adam优化算法 79
【知识扩容】CNN在自然语言处理中的应用 81
34 温故知新 82
35 停下来,思考一下 82
第4章生成式对抗网络(GAN) 84
41 生成式对抗网络基本原理 84
411 GAN的核心思想 84
【认知提升】GAN与博弈理论 85
412 GAN数学描述 86
【认知提升】“囚徒困境”博弈模型 86
413 GAN的网络结构与核心技术 87
414 GAN的改进模型 90
【案例4-1】ACGAN基于TensorFlow框架的实现(图像为64×64单通道数据) 91
【认知提升】博弈理论与多目标优化 98
42 GAN应用 99
421 数据缺失 100
422 多标签预测 101
423 根据环境生成相应数据 102
424 数据特征表示 103
425 图像检索 104
426 文本到图像翻译 104
427 医学方面 105
43 综合案例:动手构建生成式对抗网络 106
431 基于MATLAB的GAN 106
432 基于TensorFlow的GAN 108
44 温故知新 115
45 停下来,思考一下 115
第5章循环神经网络(RNN) 117
51 循环神经网络基本原理 117
511 问题背景 118
【案例5-1】词性标注(我学习循环神经网络) 118
【应知应会】one-hot编码 119
【认知提升】神经网络的记忆问题 120
512 循环神经网络基本思想 120
【最佳实践】RNN的梯度爆炸和消失问题 123
52 LSTM网络基本原理 124
521 LSTM的关键技术 124
【知识扩容】递归神经网络(Recursive Neural Network,RNN) 128
522 LSTM的应用 128
【应知应会】自然语言处理 129
53 综合案例:基于LSTM的语音预测 130
531 加载数据 130
532 定义网络结构 130
533 网络训练及评估 131
【应知应会】深度学习代码一般结构 132
54 综合案例:基于循环神经网络的手写数字识别 132
541 数据准备及参数设置 132
542 网络构建 133
543 网络训练 134
55 综合案例:基于LSTM的自然语言处理 135
551 数据收集及编码 135
552 构建LSTM模型 136
553 模型训练 137
55 温故知新 137
56 停下来,思考一下 138
第3篇深度学习实战篇
第6章深度学习主流工具及框架 142
61 MATLAB基本语法与深度学习工具箱 142
611 MATLAB简介 142
612 MATLAB安装 143
613 MATLAB常用语法 146
614 基于MATLAB的深度学习工具箱 149
【案例6-1】基于MATLAB的AlexNet模型初探 151
【案例6-2】用安装好的深度学习工具箱中的卷积神经网络做mnist
手写数字识别,来验证工具箱的有效性 152
62 Python基本语法、库与开发工具 153
621 Python简介 153
622 Python安装 153
623 Python常用语法 155
【应知应会】Python常见错误提示及原因 156
624 常用Python库 157
625 常用Python开发工具 161
【知识扩容】PyCharm常用快捷键 162
【案例6-3】Python送你圣诞帽 163
63 Caffe框架及环境搭建 165
631 Caffe简介 165
632 Caffe环境搭建 166
【案例6-4】手写体数字识别 167
64 TensorFlow框架及环境搭建 167
641 TensorFlow简介 167
642 TensorFlow与Keras框架的关系 168
643 Windows 10上TensorFlow的环境搭建 169
65 其他常用框架 177
651 微软CNTK 177
652 MXNet 178
653 Torch 178
654 Theano 179
66 温故知新 180
67 停下来,思考一下 180
第7章 AlexNet关键技术与实战 182
71 剖析AlexNet网络结构 182
【知识扩容】ImageNet与李飞飞 186
72 AlexNet关键技术 187
721 ReLU激活函数 187
722 标准化 187
【应知应会】激活函数的“饱和”与“不饱和” 188
【认知提升】马太效应、二八定律、长尾理论 188
723 Dropout 189
724 多GPU 190
【应知应会】CUDA 190
73 AlexNet与LeNet对比 191
74 CNN通用架构 191
75 综合案例:基于AlexNet的深度学习实战 192
751 静态图像分类 192
752 用AlexNet做特征提取(feature extraction) 194
753 用AlexNet做迁移学习 197
754 卷积神经网络的特征可视化 200
76 温故知新 209
77 停下来,思考一下 210
第8章将手写体识别进行到底 211
81 手写体识别“江湖地位” 211
82 手写数字识别 212
821 手写数字的无监督学习 213
【应知应会】稀疏表示 213
【应知应会】无监督学习中的自动编码器 219
822 手写数字的全连接神经网络识别 219
【应知应会】softmax函数介绍 220
【认知提升】熵 220
823 手写数字的卷积神经网络识别 221
83 手写汉字识别 229
831 数据读取及预处理 229
【最佳实践】数据读取 231
832 卷积神经网络构建 231
833 网络模型训练及结果可视化 233
84 综合案例:手写数字旋转角度识别 234
841 数据载入 235
842 网络构建 235
843 网络训练 236
844 测试预测精度 236
845 残差展示 237
846 偏转角度矫正及可视化 237
85 温故知新 238
86 停下来,思考一下 239
第9章基于深度学习的视频检测 240
91 人物监控视频问题研究意义及现状 240
911 研究意义 240
912 国内外研究现状 242
92 研究情况介绍 244
921 研究内容 244
922 研究目标及关键科学问题 244
【案例9-1】基于Python库的人脸识别 245
93 综合案例:基于深度学习的人脸视频检测 247
931 环境准备 247
932 数据处理 248
933 模型训练 250
934 监控代码 255
94 综合案例:基于深度学习的物体视频检测 256
941 AlexNet回顾 256
942 入门版 257
943 初级版 258
944 加强版 259
945 升级版 260
946 豪华版 261
【案例9-2】让手机当网络摄像头 262
95 温故知新 262
96 停下来,思考一下 263
第10章基于深度学习的信息隐藏 264
101 数字图像隐写分析研究现状及意义 264
1011 研究意义 267
1012 研究现状 268
1013 潜在的应用 268
102 数字图像隐写分析概述 270
【案例10-1】基于四叉树编码的空间域高保真可逆信息隐藏 271
103 基于ACGAN的无载体信息隐藏 272
1031 生成式对抗网络回顾 272
【应知应会】零和博弈 272
1032 基于ACGAN的信息隐藏关键技术 274
104 综合案例:ACGAN信息隐藏实战 276
1041 方案概述 276
【认知提升】可逆信息隐藏 277
1042 隐藏算法与提取算法的实现 278
1043 性能分析 286
1043 可靠性 287
1044 安全性 287
105 温故知新 288
106 停下来,思考一下 288
第11章基于深度学习的服装识别 289
111 服装识别问题描述 289
112 解决方案 291
1121 方案目标 291
1122 方案概述 291
【知识扩容】OCR技术 293
1123 成本分析和可行性分析 294
1124 实施方案 294
113 综合案例:基于卷积神经网络的服装识别实战 294
1131 数据准备 294
1132 网络结构设计 297
【案例11-1】Canny边缘检测算子 301
1133 网络模型训练 302
1134 训练结果及测试 303
114 温故知新 306
115 停下来,思考一下 306
致谢 308