1卷积神经网络与环境搭建 1
1.1 概述 1
1.2 卷积神经网络 2
1.2.1 卷积层 3
1.2.2 修正线性单元 6
1.2.3 池化层 8
1.2.4 全连接层 8
1.2.5 softmax层 9
1.2.6 LeNet-5网络 9
1.3 准备开发环境 10
1.3.1 Anaconda环境搭建 10
1.3.2 安装TensorFlow 1.x 11
1.3.3 FloydHub使用介绍 13
1.3.4 AWS使用介绍 18
1.4 本章小结 26
2卷积神经网络实践:图像分类 27
2.1 概述 27
2.2 卷积神经网络项目实践:基于TensorFlow 1.x 27
2.2.1 数据预处理 28
2.2.2 网络模型 33
2.2.3 训练网络 39
2.3 卷积神经网络项目实践:基于TensorFlow 2.0 41
2.3.1 TensorFlow 2.0介绍 41
2.3.2 CIFAR-100分类网络的TensorFlow 2.0实现 44
2.4 本章小结 60
3彩票预测和生成古诗 61
3.1 概述 61
3.2 RNN 61
3.3 LSTM 63
3.4 嵌入矩阵 66
3.5 实现彩票预测 69
3.5.1 数据预处理 70
3.5.2 构建神经网络 71
3.5.3 训练神经网络 75
3.5.4 分析网络训练情况 83
3.5.5 生成预测号码 88
3.6 文本生成 93
3.7 生成古诗:基于TensorFlow 2.0 96
3.7.1 数据预处理 96
3.7.2 构建网络 99
3.7.3 开始训练 102
3.7.4 生成古诗 102
3.8 自然语言处理 106
3.8.1 序列到序列 106
3.8.2 Transformer 108
3.8.3 BERT 112
3.9 本章小结 118
4个性化推荐系统 119
4.1 概述 119
4.2 MovieLens 1M数据集分析 120
4.2.1 下载数据集 120
4.2.2 用户数据 120
4.2.3 电影数据 122
4.2.4 评分数据 123
4.3 数据预处理 123
4.3.1 代码实现 124
4.3.2 加载数据并保存到本地 127
4.3.3 从本地读取数据 128
4.4 神经网络模型设计 128
4.5 文本卷积神经网络 130
4.6 实现电影推荐:基于TensorFlow 1.x 131
4.6.1 构建计算图 131
4.6.2 训练网络 139
4.6.3 实现个性化推荐 144
4.7 实现电影推荐:基于TensorFlow 2.0 154
4.7.1 构建模型 154
4.7.2 训练网络 166
4.7.3 实现个性化推荐 166
4.8 本章小结 169
5广告点击率预估:Kaggle实战 170
5.1 概述 170
5.2 下载数据集 170
5.3 数据字段的含义 171
5.4 点击率预估的实现思路 172
5.4.1 梯度提升决策树 172
5.4.2 因子分解机 172
5.4.3 场感知分解机 174
5.4.4 网络模型 175
5.5 数据预处理 176
5.5.1 GBDT的输入数据处理 177
5.5.2 FFM的输入数据处理 177
5.5.3 DNN的输入数据处理 179
5.5.4 数据预处理的实现 180
5.6 训练FFM 188
5.7 训练GBDT 197
5.8 用LightGBM的输出生成FM数据 203
5.9 训练FM 207
5.10 实现点击率预估:基于TensorFlow 1.x 218
5.10.1 构建神经网络 219
5.10.2 训练网络 225
5.10.3 点击率预估 231
5.11 实现点击率预估:基于TensorFlow 2.0 237
5.12 本章小结 245
6人脸识别 246
6.1 概述 246
6.2 人脸检测 247
6.2.1 OpenCV人脸检测 247
6.2.2 dlib人脸检测 251
6.2.3 MTCNN人脸检测 254
6.3 提取人脸特征 264
6.3.1 使用FaceNet提取人脸特征 264
6.3.2 使用VGG网络提取人脸特征 265
6.3.3 使用dlib提取人脸特征 272
6.4 人脸特征的比较 276
6.5 从视频中找人的实现 282
6.6 视频找人的案例实践 284
6.7 人脸识别:基于TensorFlow 2.0 302
6.8 本章小结 303
7AlphaZero/AlphaGo实践:中国象棋 304
7.1 概述 304
7.2 论文解析 305
7.2.1 蒙特卡罗树搜索算法 307
7.2.2 神经网络 312
7.2.3 AlphaZero论文解析 314
7.3 实现中国象棋:基于TensorFlow 1.x 317
7.3.1 中国象棋着法表示和FEN格式 317
7.3.2 输入特征的设计 321
7.3.3 实现神经网络 323
7.3.4 神经网络训练和预测 327
7.3.5 通过自我对弈训练神经网络 330
7.3.6 自我对弈 334
7.3.7 实现蒙特卡罗树搜索:异步方式 340
7.3.8 训练和运行 353
7.4 实现中国象棋:基于TensorFlow 2.0,多GPU版 354
7.5 本章小结 364
8汉字OCR 365
8.1 概述 365
8.2 分类网络实现汉字OCR 365
8.2.1 图片矫正 366
8.2.2 文本切割 368
8.2.3 汉字分类网络 369
8.3 端到端的汉字OCR:基于TensorFlow 1.x 371
8.3.1 CNN设计 372
8.3.2 双向LSTM设计 374
8.3.3 CTC损失 385
8.3.4 端到端汉字OCR的网络训练 388
8.4 汉字OCR:基于TensorFlow 2.0 395
8.4.1 CNN的实现 395
8.4.2 双向LSTM的实现 396
8.4.3 OCR网络的训练 403
8.5 本章小结 406
9强化学习:玩转Flappy Bird和超级马里奥 407
9.1 概述 407
9.2 DQN算法 407
9.3 实现DQN玩Flappy Bird:基于TensorFlow 1.x 412
9.4 实现DQN玩Flappy Bird:基于TensorFlow 2.0 417
9.5 使用OpenAI Baselines玩超级马里奥 424
9.5.1 Gym 424
9.5.2 自定义Gym环境 426
9.5.3 使用Baselines训练 431
9.5.4 使用训练好的智能体玩游戏 437
9.5.5 开始训练马里奥游戏智能体 438
9.6 具有好奇心的强化学习算法 443
9.7 本章小结 444
10生成对抗网络实践:人脸生成 445
10.1 概述 445
10.2 GAN 446
10.3 DCGAN 447
10.3.1 生成器 448
10.3.2 判别器 449
10.4 WGAN 449
10.5 WGAN-GP 451
10.5.1 WGAN-GP算法 451
10.5.2 训练WGAN-GP生成人脸:基于TensorFlow 1.x 452
10.5.3 训练WGAN-GP生成人脸:基于TensorFlow 2.0 462
10.6 PG-GAN和TL-GAN 469
10.7 本章小结 473