√ 聚焦10大人工智能经典场景
√ 每章都包含TensorFlow 1.x 和2.0 的代码实现
√ 通过案例巩固基础知识
√ 图像分类|彩票预测|古诗生成|个性化推荐|广告点击率预估|人脸识别 |AlphaZero/GO|汉字OCR|超级马里奥|人脸生成
本书通过案例讲解如何使用TensorFlow 解决深度学习的实际任务, 每章都包含TensorFlow 1.x 和2.0 的代码实现。全书共分10 章,主要讲解卷积神经网络、LSTM、Seq2Seq、Transformer、BERT、文本卷积、GBDT、FM、FFM、Dlib、MTCNN、VGG、AlphaGo / AlphaZero、BiLSTM、DQN、Gym、GAN 等技术,包含的项目有CIFAR-100 图像分类、彩票预测、古诗生成、推荐系统、广告点击率预测、人脸识别、中国象棋、汉字OCR、FlappyBird 和超级马里奥、人脸生成。
目录
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
7 AlphaZero / 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