深度学习实战

更多详情


内容简介: 深度学习为人工智能带来了巨大突破,也成为机器学习领域一颗闪耀的新星。虽然相关学习资料丰富,但大部分内容较为庞杂且难以理解,并对初学者的相关理论知识与实践能力有较高的要求,这使得大部分想进入这一领域的初学者望而却步。本书去繁化简地对深度学习的理论知识进行了梳理,并对算法实现做出了浅显易懂的讲解,适合初学者进行学习。结合本书的内容,读者可以快速对深度学习进行实践。通过启发式的自学模式,可以使读者由浅入深地学习并掌握常用的深度学习模型,为进一步使用开源的深度学习平台与工具提供理论与实践基础。
本书可作为高等院校计算机专业的本科生或研究生教材,也可供对深度学习感兴趣的研究人员和工程技术人员阅读参考。

目录: 第1章 深度学习的发展介绍 1
1.1 如何阅读本书 3
1.2 深度学习沉浮史 3
1.2.1 模拟生物大脑的疯狂远古时代 4
1.2.2 联结主义近代 5
1.2.3 百花齐放,层次结构主导,模型巨大的当代 6
1.3 Python简易教程 7
1.3.1 Anaconda搭建 7
1.3.2 IPython Notebook使用 7
1.3.3 Python基本用法 8
1.3.4 NumPy 15
1.3.5 Matplotlib 23
1.4 参考文献 25
第2章 机器学习快速入门 27
2.1 学习算法 28
2.1.1 学习任务 29
2.1.2 性能度量 30
2.1.3 学习经验 32
2.2 代价函数 33
2.2.1 均方误差函数 33
2.2.2 极大似然估计 34
2.3 梯度下降法 36
2.3.1 批量梯度下降法 38
2.3.2 随机梯度下降法 39
2.4 过拟合与欠拟合 40
2.4.1 没免费午餐理论 42
2.4.2 正则化 43
2.5 超参数与验证集 44
2.6 Softmax编码实战 46
2.6.1 编码说明 49
2.6.2 熟练使用CIFAR-10 数据集 50
2.6.3 显式循环计算损失函数及其梯度 53
2.6.4 向量化表达式计算损失函数及其梯度 56
2.6.5 最小批量梯度下降算法训练Softmax分类器 57
2.6.6 使用验证数据选择超参数 61
2.7 参考代码 68
2.8 参考文献 70
第3章 前馈神经网络 72
3.1 神经元 73
3.1.1 Sigmoid神经元 74
3.1.2 Tanh神经元 75
3.1.3 ReLU神经元 76
3.2 前馈神经网络 80
3.2.1 输出层单元 80
3.2.2 隐藏层单元 80
3.2.3 网络结构设计 81
3.3 BP算法 82
3.4 深度学习编码实战上 86
3.4.1 实现仿射传播 88
3.4.2 实现ReLU传播 91
3.4.3 组合单层神经元 93
3.4.4 实现浅层神经网络 96
3.4.5 实现深层全连接网络 101
3.5 参考代码 109
3.6 参考文献 113
第4章 深度学习正则化 115
4.1 参数范数惩罚 116
4.1.1 L2参数正则化 118
4.1.2 L1正则化 119
4.2 参数绑定与参数共享 120
4.3 噪声注入与数据扩充 120
4.4 稀疏表征 122
4.5 早停 123
4.6 Dropout 126
4.6.1 个体与集成 126
4.6.2 Dropout 127
4.7 深度学习编码实战中 129
4.7.1 Dropout传播 131
4.7.2 组合Dropout传播层 134
4.7.3 Dropout神经网络 136
4.7.4 解耦训练器trainer 138
4.7.5 解耦更新器updater 143
4.7.6 正则化实验 145
4.8 参考代码 148
4.9 参考文献 150
第5章 深度学习优化 152
5.1 神经网络优化困难 153
5.1.1 局部最优 153
5.1.2 鞍点 154
5.1.3 梯度悬崖 154
5.1.4 梯度消失或梯度爆炸 155
5.1.5 梯度不精确 156
5.1.6 优化理论的局限性 156
5.2 随机梯度下降 156
5.3 动量学习法 158
5.4 AdaGrad和RMSProp 159
5.5 Adam 160
5.6 参数初始化策略 161
5.7 批量归一化 163
5.7.1 BN算法详解 163
5.7.2 BN传播详解 165
5.8 深度学习编码实战下 166
5.8.1 Momentum 167
5.8.2 RMSProp 171
5.8.3 Adam 172
5.8.4 更新规则比较 174
5.8.5 BN前向传播 176
5.8.6 BN反向传播 180
5.8.7 使用BN的全连接网络 182
5.8.8 BN算法与权重标准差比较 188
5.9 参考代码 191
5.10 参考文献 195
第6章 卷积神经网络 196
6.1 卷积操作 197
6.2 卷积的意义 198
6.2.1 稀疏连接 199
6.2.2 参数共享 200
6.3 池化操作 201
6.4 设计卷积神经网络 204
6.4.1 跨步卷积 204
6.4.2 零填充 205
6.4.3 非共享卷积 206
6.4.4 平铺卷积 207
6.5 卷积网络编码练习 208
6.5.1 卷积前向传播 209
6.5.2 卷积反向传播 212
6.5.3 最大池化前向传播 215
6.5.4 最大池化反向传播 218
6.5.5 向量化执行 220
6.5.6 组合完整卷积层 223
6.5.7 浅层卷积网络 224
6.5.8 空间批量归一化 229
6.6 参考代码 233
6.7 参考文献 237
第7章 循环神经网络 238
7.1 循环神经网络 239
7.1.1 循环神经元展开 239
7.1.2 循环网络训练 240
7.2 循环神经网络设计 242
7.2.1 双向循环网络结构 242
7.2.2 编码-解码网络结构 243
7.2.3 深度循环网络结构 244
7.3 门控循环神经网络 245
7.3.1 LSTM 246
7.3.2 门控循环单元 249
7.4 RNN编程练习 250
7.4.1 RNN单步传播 252
7.4.2 RNN时序传播 255
7.4.3 词嵌入 258
7.4.4 RNN输出层 261
7.4.5 时序Softmax损失 262
7.4.6 RNN图片说明任务 264
7.5 LSTM编程练习 269
7.5.1 LSTM单步传播 269
7.5.2 LSTM时序传播 273
7.5.3 LSTM实现图片说明任务 276
7.6 参考代码 278
7.6.1 RNN参考代码 278
7.6.2 LSTM参考代码 282
7.7 参考文献 285
第8章 TensorFlow快速入门 287
8.1 TensorFlow介绍 288
8.2 TensorFlow 1.0安装指南 289
8.2.1 双版本切换Anaconda 289
8.2.2 安装CUDA 8.0 291
8.2.3 安装cuDNN 292
8.2.4 安装TensorFlow 293
8.2.5 验证安装 294
8.3 TensorFlow基础 295
8.3.1 Tensor 295
8.3.2 TensorFlow核心API教程 296
8.3.3 tf.train API 299
8.3.4 tf.contrib.learn 301
8.4 TensorFlow构造CNN 305
8.4.1 构建Softmax模型 305
8.4.2 使用TensorFlow训练模型 307
8.4.3 使用TensorFlow评估模型 308
8.4.4 使用TensorFlow构建卷积神经网络 308
8.5 TensorBoard快速入门 311
8.5.1 TensorBoard可视化学习 312
8.5.2 计算图可视化 316

前言: 随着谷歌的AlphaGo,IBM的watson以及百度的智能机器人百小度的问世,人工智能成为了大众热烈讨论的焦点,而作为这些智能产品的核心技术,深度学习受到了学界与产业界的广泛关注。深度学习凭借其优良的性能,被广泛应用于计算机视觉、图像分析、语音识别和自然语言处理等诸多领域中。但深度学习的算法与模型较为复杂,对于初学者来说较难理解与掌握,需要其有一定的理论与实践应用基础。本书作者通过把理论知识与大量实践例子相结合,运用易懂与诙谐的语言为初学者呈现了一部指导深度学习实战的首选之作。本书的面向对象为计算机及相关专业的本科生、研究生,以及相关领域的初级研究人员。与同类著作不同的是本书更强调读者的亲身实践,分为模块设计与代码实践两部分,当读者学习完模块设计部分的理论知识后,还可以在实践代码的关键位置添加自己的代码,并测试实现的深度学习模型的每一个关键环节,以此进一步理解与掌握所学的算法与模型。
本书共分为8章,第1章为深度学习的发展介绍,其他7章对深度学习的理论知识和应用进行了深入浅出的讲解,分别为第2章 机器学习快速入门,第3章 前馈神经网络,第4章 深度学习正则化,第5章 深度学习优化,第6章 卷积神经网络,第7章 循环神经网络,第8章 TensorFlow快速入门。每一个章节在其结尾部分都会提出深度学习算法与模型的实践学习,按照作者的设计步骤,读者可以逐步完成代码的编写,并对其进行测试,最终完成整个算法与模型代码的实践。本书不同于传统理论介绍+代码演示书籍之处在于,理论知识与实践学习部分可以分开阅读,其每一章节的实践学习部分更加强调与读者的互动性。本书还精心设计了许多子模块,给予大量的编程提示,并引导读者通过自学的方式完成各个子模块的实现,进而强化读者对不同模块编码实现的学习与理解,在每章末尾都会给出相应的参考代码。
本书的作者特别感谢相关科研项目与人才计划的支持,其中包括:国家自然科学基金项目(61402397,61663046),云南省科技厅应用基础研究计划面上项目(2016FB104),云南省软件工程重点实验室开放基金面上项目(2015SE201),云南大学数据驱动的软件工程省科技创新团队(2017HC012),云南省中青年学术和技术带头人后备人才计划(2017HB005),云南省百名海外高层次人才引进计划。
深度学习相关研究领域的发展日新月异,本书作者自认才疏学浅,只略知其中一二,书中内容的设计与撰写是作者对深度学习的个人认识与理解,由于水平有限,如有不妥之处请广大读者不吝赐教。
本书免费提供了云盘下载文件,内容包括书中所有综合案例的素材文件,下载地址为:https://pan.baidu.com/s/1nvacrYL(注意区分英文字母大小写),如果下载有问题,请发送电子邮件至booksaga@126.com,邮件主题设置为“深度学习实战”。
杨云
2017年8月29日于云南大学