目录
推荐序
前言
作者简介
第 1章 深度学习简介 1
1.1 深度学习与人工智能 1
1.2 深度学习的历史渊源 2
1.2.1 从感知机到人工神经网络 3
1.2.2 深度学习时代 4
1.2.3 巨头之间的角逐 5
1.3 深度学习的影响因素 6
1.3.1 大数据 6
1.3.2 深度网络架构 7
1.3.3 GPU 11
1.4 深度学习为什么如此成功 11
1.4.1 特征学习 11
1.4.2 迁移学习 12
1.5 小结 13
1.6 参考文献 14
第 2章 PyTorch简介 15
2.1 PyTorch安装 15
2.2 初识PyTorch 15
2.2.1 与Python完美融合 16
2.2.2 张量计算 16
2.2.3 动态计算图 20
2.3 PyTorch实例:预测房价 27
2.3.1 准备数据 27
2.3.2 设计模型 28
2.3.3 训练 29
2.3.4 预测 31
2.3.5 术语汇总 32
2.4 小结 33
第3章 单车预测器——你的第 一个神经网络 35
3.1 共享单车的烦恼 35
3.2 单车预测器1.0 37
3.2.1 人工神经网络简介 37
3.2.2 人工神经元 38
3.2.3 两个隐含神经元 40
3.2.4 训练与运行 42
3.2.5 失败的神经预测器 42
3.2.6 过拟合 48
3.3 单车预测器2.0 49
3.3.1 数据的预处理过程 49
3.3.2 构建神经网络 52
3.3.3 测试神经网络 55
3.4 剖析神经网络Neu 57
3.5 小结 61
3.6 Q&A 61
第4章 机器也懂感情——中文情绪分类器 63
4.1 神经网络分类器 64
4.1.1 如何用神经网络做分类 64
4.1.2 分类问题的损失函数 66
4.2 词袋模型分类器 67
4.2.1 词袋模型简介 68
4.2.2 搭建简单文本分类器 69
4.3 程序实现 70
4.3.1 数据处理 71
4.3.2 文本数据向量化 73
4.3.3 划分数据集 74
4.3.4 建立神经网络 75
4.4 运行结果 78
4.5 剖析神经网络 79
4.6 小结 83
4.7 Q&A 83
第5章 手写数字识别器——认识卷积神经网络 84
5.1 什么是卷积神经网络 85
5.1.1 手写数字识别任务的卷积神经网络及运算过程 86
5.1.2 卷积运算 87
5.1.3 池化运算 93
5.1.4 立体卷积核 94
5.1.5 超参数与参数 95
5.1.6 其他说明 96
5.2 手写数字识别器 97
5.2.1 数据准备 97
5.2.2 构建网络 100
5.2.3 运行模型 102
5.2.4 测试模型 104
5.3 剖析卷积神经网络 105
5.3.1 第 一层卷积核与特征图 105
5.3.2 第二层卷积核与特征图 106
5.3.3 卷积神经网络的健壮性实验 107
5.4 小结 109
5.5 Q&A 109
5.6 扩展阅读 109
第6章 手写数字加法机——迁移学习 110
6.1 什么是迁移学习 111
6.1.1 迁移学习的由来 111
6.1.2 迁移学习的分类 112
6.1.3 迁移学习的意义 112
6.1.4 如何用神经网络实现迁移学习 113
6.2 应用案例:迁移学习如何抗击贫困 115
6.2.1 背景介绍 115
6.2.2 方法探寻 116
6.2.3 迁移学习方法 116
6.3 蚂蚁还是蜜蜂:迁移大型卷积神经网络 117
6.3.1 任务描述与初步尝试 118
6.3.2 ResNet与模型迁移 119
6.3.3 代码实现 120
6.3.4 结果分析 123
6.3.5 更多的模型与数据 125
6.4 手写数字加法机 125
6.4.1 网络架构 125
6.4.2 代码实现 126
6.4.3 训练与测试 133
6.4.4 结果 135
6.4.5 大规模实验 135
6.5 小结 140
6.6 实践项目:迁移与效率 140
第7章 你自己的Prisma——图像风格迁移 142
7.1 什么是风格迁移 142
7.1.1 什么是风格 142
7.1.2 风格迁移的含义 143
7.2 风格迁移技术发展简史 144
7.3 神经网络风格迁移 146
7.3.1 神经网络风格迁移的优势 146
7.3.2 神经网络风格迁移的基本思想 147
7.3.3 卷积神经网络的选取 148
7.3.4 内容损失 149
7.3.5 风格损失 149
7.3.6 风格损失原理分析 150
7.3.7 损失函数与优化 153
7.4 神经网络风格迁移实战 153
7.4.1 准备工作 153
7.4.2 建立风格迁移网络 155
7.4.3 风格迁移训练 158
7.5 小结 161
7.6 扩展阅读 161
第8章 人工智能造假术——图像生成与对抗学习 162
8.1 反卷积与图像生成 165
8.1.1 卷积神经网络回顾 165
8.1.2 反卷积运算 167
8.1.3 反池化过程 169
8.1.4 反卷积与分数步伐 170
8.1.5 输出图像尺寸公式 171
8.1.6 批正则化技术 172
8.2 图像生成实验1——最小均方误差模型 173
8.2.1 模型思路 173
8.2.2 代码实现 174
8.2.3 运行结果 178
8.3 图像生成实验2——生成器—识别器模型 180
8.3.1 生成器—识别器模型的实现 180
8.3.2 对抗样本 183
8.4 图像生成实验3——GAN 186
8.4.1 GAN的总体架构 187
8.4.2 程序实现 188
8.4.3 结果展示 191
8.5 小结 193
8.6 Q&A 193
8.7 扩展阅读 194
第9章 词汇的星空——神经语言模型与Word2Vec 195
9.1 词向量技术介绍 195
9.1.1 初识词向量 195
9.1.2 传统编码方式 196
9.2 NPLM:神经概率语言模型 197
9.2.1 NPLM的基本思想 198
9.2.2 NPLM的运作过程详解 198
9.2.3 读取NPLM中的词向量 201
9.2.4 NPLM的编码实现 202
9.2.5 运行结果 205
9.2.6 NPLM的总结与局限 207
9.3 Word2Vec 207
9.3.1 CBOW模型和Skip-gram模型的结构 207
9.3.2 层次归一化指数函数 208
9.3.3 负采样 209
9.3.4 总结及分析 210
9.4 Word2Vec的应用 210
9.4.1 在自己的语料库上训练Word2Vec词向量 210
9.4.2 调用现成的词向量 212
9.4.3 女人 男人=皇后 国王 214
9.4.4 使用向量的空间位置进行词对词翻译 216
9.4.5 Word2Vec小结 217
9.5 小结 217
9.6 Q&A 218
第 10章 深度网络 LSTM作曲机——序列生成模型 220
10.1 序列生成问题 220
10.2 RNN与LSTM 221
10.2.1 RNN 221
10.2.2 LSTM 227
10.3 简单01序列的学习问题 231
10.3.1 RNN的序列学习 232
10.3.2 LSTM的序列学习 241
10.4 LSTM作曲机 244
10.4.1 MIDI文件 244
10.4.2 数据准备 245
10.4.3 模型结构 245
10.4.4 代码实现 246
10.5 小结 254
10.6 Q&A 255
10.7 扩展阅读 255
第 11章 神经机器翻译机——端到端机器翻译 256
11.1 机器翻译简介 257
11.1.1 基于规则的机器翻译技术 257
11.1.2 统计机器翻译 258
11.1.3 神经机器翻译 258
11.1.4 关于Zero-shot翻译 259
11.2 编码—解码模型 259
11.2.1 编码—解码模型总体架构 260
11.2.2 编码器 260
11.2.3 解码器 263
11.2.4 损失函数 267
11.2.5 编码—解码模型归纳 269
11.2.6 编码—解码模型的效果 269
11.3 注意力机制 270
11.3.1 神经机器翻译中的注意力 271
11.3.2 注意力网络 271
11.4 更多改进 275
11.4.1 GRU的结构 275
11.4.2 双向GRU的应用 275
11.5 神经机器翻译机的编码实现 276
11.5.1 神经网络的构建 280
11.5.2 神经网络的训练 283
11.5.3 测试神经机器翻译机 286
11.5.4 结果展示 287
11.6 更多改进 291
11.6.1 集束搜索算法 291
11.6.2 BLEU:对翻译结果的评估方法 293
11.6.3 对编码—解码模型的改进 294
11.7 广义的翻译 295
11.7.1 广义翻译机 295
11.7.2 广义翻译的应用场景 295
11.8 Q&A 297
第 12章 更强的机器翻译模型——Transformer 299
12.1 Transformer概述 299
12.1.1 编码—解码模型回顾 300
12.1.2 Transformer全景概览 300
12.1.3 神奇的自注意力 301
12.2 Atoken旅行记 304
12.2.1 奇怪的序号牌 304
12.2.2 分身之门 305
12.2.3 新朋友 306
12.3 Transformer部件详解 306
12.3.1 词嵌入与位置嵌入 306
12.3.2 自注意力模块计算详解 307
12.3.3 自注意力层的矩阵计算 309
12.3.4 残差连接与层归一化 310
12.3.5 逐点计算的前向网络层 311
12.3.6 解码器中的自注意力 311
12.3.7 解码器的输出层 312
12.4 动手训练一个Transformer翻译模型 313
12.4.1 翻译模型中输入单位的粒度 313
12.4.2 模型定义 313
12.4.3 模型训练 318
12.4.4 Transformer相关开源库 319
12.5 小结 319
第 13章 学习跨任务的语言知识——预训练语言模型 320
13.1 语言模型简要回顾 320
13.2 预训练Transformer详解 322
13.2.1 深入了解GPT 323
13.2.2 深入了解BERT 324
13.2.3 模型微调 326
13.2.4 模型表现 327
13.3 单句分类:BERT句子分类实战 328
13.4 后BERT时代 334
13.5 小结 334
第 14章 人体姿态识别——图网络模型 335
14.1 图网络及图论基础 335
14.1.1 图的基本概念 335
14.1.2 什么是图网络 337
14.1.3 图网络的基本任务和应用场景 338
14.2 图卷积网络 338
14.2.1 GCN的工作原理 338
14.2.2 打开GCN的黑箱 340
14.2.3 从社团划分任务来理解GCN 341
14.3 实战:使用GCN识别人体姿态 344
14.3.1 数据来源与预处理 345
14.3.2 代码实现 346
14.4 小结 350
第 15章 AI游戏高手——深度强化学习 351
15.1 强化学习简介 352
15.1.1 强化学习的要素 352
15.1.2 强化学习的应用场景 353
15.1.3 强化学习的分类 354
15.2 深度Q学习算法 355
15.2.1 Q学习算法 356
15.2.2 DQN算法 357
15.2.3 DQN在雅达利游戏上的表现 359
15.3 DQN玩Flappy Bird的PyTorch实现 361
15.3.1 Flappy Bird的PyGame实现 361
15.3.2 DQN的PyTorch实现 368
15.4 小结 377
15.5 通用人工智能还有多远 378
15.6 Q&A 379
15.7 扩展阅读 380