第一部分 深度学习算法概述 2
第1章 深度学习算法简介 2
1.1神经网络发展简史 2
1.1.1神经网络第一次兴起 3
1.1.2神经网络沉寂期(20世纪80年代—21世纪) 4
1.1.3神经网络技术积累期(20世纪90年代—2006年) 5
1.1.4深度学习算法崛起(2006年至今) 8
1.2深度学习现状 10
1.2.1传统神经网络困境 10
1.2.2深度多层感知器 12
1.2.3深度卷积神经网络 14
1.2.4深度递归神经网络 15
1.3深度学习研究前瞻 16
1.3.1自动编码机 17
1.3.2深度信念网络 18
1.3.3生成式网络最新进展 19
1.4深度学习框架比较 20
1.4.1 TensorFlow 20
1.4.2 Theano 21
1.4.3 Torch 22
1.4.4 DeepLearning4J 23
1.4.5 Caffe 23
1.4.6 MXNet 24
1.4.7 CNTK 27
1.4.8深度学习框架造型指导原则 27
1.5深度学习入门路径 28
1.5.1运行MNIST 28
1.5.2深度学习框架的选择 29
1.5.3小型试验网络 33
1.5.4训练生产网络 33
1.5.5搭建生产环境 34
1.5.6持续改进 35
第二部分 深度学习算法基础 38
第2章 搭建深度学习开发环境 38
2.1安装Python开发环境 38
2.1.1安装最新版本Python 38
2.1.2 Python虚拟环境配置 39
2.1.3安装科学计算库 40
2.1.4安装最新版本Theano 40
2.1.5图形绘制 40
2.2 NumPy简易教程 43
2.2.1 Python基础 43
2.2.2多维数组的使用 51
2.2.3向量运算 58
2.2.4矩阵运算 60
2.2.5线性代数 62
2.3 TensorFlow简易教程 68
2.3.1张量定义 69
2.3.2变量和placeholder 69
2.3.3神经元激活函数 71
2.3.4线性代数运算 72
2.3.5操作数据集 74
2.4 Theano简易教程 77
2.4.1安装Theano 77
2.4.2 Theano入门 78
2.4.3 Theano矩阵相加 79
2.4.4变量和共享变量 80
2.4.5随机数的使用 84
2.4.6 Theano求导 84
2.5线性回归 86
2.5.1问题描述 86
2.5.2线性模型 88
2.5.3线性回归学习算法 89
2.5.4解析法 90
2.5.5 Theano实现 93
第3章 逻辑回归 100
3.1逻辑回归数学基础 100
3.1.1逻辑回归算法的直观解释 100
3.1.2逻辑回归算法数学推导 101
3.1.3牛顿法解逻辑回归问题 103
3.1.4通用学习模型 106
3.2逻辑回归算法简单应用 113
3.3 MNIST手写数字识别库简介 124
3.4逻辑回归MNIST手写数字识别 126
第4章 感知器模型和MLP 139
4.1感知器模型 139
4.1.1神经元模型 139
4.1.2神经网络架构 143
4.2数值计算形式 144
4.2.1前向传播 144
4.2.2误差反向传播 145
4.2.3算法推导 147
4.3向量化表示形式 152
4.4应用要点 153
4.4.1输入信号模型 154
4.4.2权值初始化 155
4.4.3早期停止 155
4.4.4输入信号调整 156
4.5 TensorFlow实现MLP 156
第5章 卷积神经网络 174
5.1卷积神经网络原理 174
5.1.1卷积神经网络的直观理解 174
5.1.2卷积神经网络构成 177
5.1.3卷积神经网络设计 191
5.1.4迁移学习和网络微调 193
5.2卷积神经网络的TensorFlow实现 195
5.2.1模型搭建 197
5.2.2训练方法 203
5.2.3运行方法 208
第6章 递归神经网络 212
6.1递归神经网络原理 212
6.1.1递归神经网络表示方法 213
6.1.2数学原理 214
6.1.3简单递归神经网络应用示例 219
6.2图像标记 226
6.2.1建立开发环境 226
6.2.2图像标记数据集处理 227
6.2.3单步前向传播 229
6.2.4单步反向传播 231
6.2.5完整前向传播 234
6.2.6完整反向传播 236
6.2.7单词嵌入前向传播 239
6.2.8单词嵌入反向传播 241
6.2.9输出层前向/反向传播 243
6.2.10输出层代价函数计算 245
6.2.11图像标注网络整体架构 248
6.2.12代价函数计算 249
6.2.13生成图像标记 255
6.2.14网络训练过程 258
6.2.15 网络持久化 265
第7章 长短时记忆网络 269
7.1长短时记忆网络原理 269
7.1.1网络架构 269
7.1.2数学公式 272
7.2 MNIST手写数字识别 274
第三部分 深度学习算法进阶 286
第8章 自动编码机 286
8.1自动编码机概述 286
8.1.1自动编码机原理 287
8.1.2去噪自动编码机 287
8.1.3稀疏自动编码机 288
8.2去噪自动编码机TensorFlow实现 291
8.3去噪自动编码机的Theano实现 298
第9章 堆叠自动编码机 307
9.1堆叠去噪自动编码机 308
9.2 TensorFlow实现 322
9.3 Theano实现 341
第10章 受限玻尔兹曼机 344
10.1受限玻尔兹曼机原理 344
10.1.1网络架构 344
10.1.2能量模型 346
10.1.3 CD-K算法 351
10.2受限玻尔兹曼机TensorFlow实现 353
10.3受限玻尔兹曼机Theano实现 362
第11章 深度信念网络 381
11.1深度信念网络原理 381
11.2深度信念网络TensorFlow实现 382
11.3深度信念网络Theano实现 403
第四部分 机器学习基础 420
第12章 生成式学习 420
12.1高斯判别分析 422
12.1.1多变量高斯分布 422
12.1.2高斯判决分析公式 423
12.2朴素贝叶斯 436
12.2.1朴素贝叶斯分类器 436
12.2.2拉普拉斯平滑 439
12.2.3多项式事件模型 441
第13章 支撑向量机 444
13.1支撑向量机概述 444
13.1.1函数间隔和几何间隔 445
13.1.2最优距离分类器 448
13.2拉格朗日对偶 448
13.3最优分类器算法 450
13.4核方法 453
13.5非线性可分问题 455
13.6 SMO算法 457
13.6.1坐标上升算法 458
13.6.2 SMO算法详解 458
第五部分 深度学习平台API 462
第14章 Python Web编程 462
14.1 Python Web开发环境搭建 462
14.1.1 CherryPy框架 463
14.1.2 CherryPy安装 463
14.1.3测试CherryPy安装是否成功 464
14.2最简Web服务器 465
14.2.1程序启动 465
14.2.2显示HTML文件 466
14.2.3静态内容处理 468
14.3用户认证系统 471
14.4 AJAX请求详解 473
14.4.1添加数据 474
14.4.2修改数据 476
14.4.3删除数据 478
14.4.4 REST服务实现 479
14.5数据持久化技术 487
14.5.1环境搭建 487
14.5.2数据库添加操作 488
14.5.3数据库修改操作 489
14.5.4数据库删除操作 490
14.5.5数据库查询操作 491
14.5.6数据库事务操作 492
14.5.7数据库连接池 494
14.6任务队列 499
14.7媒体文件上传 502
14.8 Redis操作 504
14.8.1 Redis安装配置 504
14.8.2 Redis使用例程 505
第15章 深度学习云平台 506
15.1神经网络持久化 506
15.1.1数据库表设计 506
15.1.2整体目录结构 511
15.1.3训练过程及模型文件保存 512
15.2神经网络运行模式 528
15.3 AJAX请求调用神经网络 531
15.3.1显示静态网页 531
15.3.2上传图片文件 540
15.3.3 AJAX接口 543
15.4请求合法性验证 545
15.4.1用户注册和登录 546
15.4.2客户端生成请求 553
15.4.3服务器端验证请求 555
15.5异步结果处理 557
15.5.1网页异步提交 557
15.5.2应用队列管理模块 559
15.5.3任务队列 560
15.5.4结果队列 561
15.5.5异步请求处理流程 562
15.6神经网络持续改进 563
15.6.1应用遗传算法 563
15.6.2重新训练 564
15.6.3生成式对抗网络 565
后记 567
参考文献 568