书籍作者:程世东 | ISBN:9787121364990 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:2000 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书通过案例讲解如何使用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 和超级马里奥、人脸生成。
程世东,毕业于辽宁工程技术大学,对计算机领域的各类技术都有浓厚的兴趣,享受学习新技术带来的快乐。擅长C语言和汇编语言,尤其喜欢研究软件调试和逆向工程相关技术。最近几年开始钻研机器学习和深度学习,2018年来到日本从事日文OCR的研发工作。
√ 聚焦10大人工智能经典场景
√ 每章都包含TensorFlow 1.x 和2.0 的代码实现
√ 通过案例巩固基础知识
√ 图像分类|彩票预测|古诗生成|个性化推荐|广告点击率预估|人脸识别 |AlphaZero/GO|汉字OCR|超级马里奥|人脸生成
在过去的几年中,人工智能和深度学习是一个不断被提及的话题,最令大众熟知的恐怕就是AlphaGo与柯洁、李世乭的围棋大战了。而最近,人工智能OpenAI Five 在DOTA 2 的比赛中击败了世界冠军OG,人工智能的发展总会给人带来惊喜。除了上述“大事件”,人工智能和深度学习早就深入我们的生活当中,比如无人驾驶汽车、人脸识别,或者订外卖时App 给我们做的推荐。
在经历了互联网、移动互联网的浪潮之后,可以说现在我们已经步入了人工智能的时代。我第一次接触机器学习和深度学习时就被深深地吸引了,感觉自己就像一块海绵被投入到大海里,看书、看视频、看源码,学习新的知识使我感到非常兴奋。相信此刻的你也跟当年学习的我的状态是一样的吧,本书将我对深度学习的理解、从开源社区学到的知识分享给大家,希望能为你的学习提供一些帮助。
本书以案例的形式,讲解各种深度学习理论和相应场景的实践,包含TensorFlow 1.x 和TensorFlow2.0 的代码实现。全书共分10 章。第1章讲解了卷积神经网络理论知识,第2 章讲解了如何进行CIFAR-100 图像分类实践。第3 章介绍了循环神经网络(RNN 和LSTM),以及在彩票预测和古诗生成上的实践。在第3章的最后,介绍了Seq2Seq、Transformer 和BERT 模型。第4章以电影推荐系统为例,分享了推荐系统的实现。第5章介绍了广告点击率预测。第6章讲解了人脸识别的实践,包含使用OpenCV、dlib 和MTCNN 进行人脸检测,使用dlib、FaceNet 和VGG16等方式提取人脸特征,然后讨论了比较人脸特征的几种方式。最后,使用上述技术实现了一个在视频中找人的应用。第7 章分析了AlphaGo 和AlphaZero 的论文原文,讲解了蒙特卡罗树搜索(MCTS)和神经网络的结构,并且通过实现中国象棋复现了AlphaZero。第8章介绍了OCR 在汉字识别上的应用,并且讲解了BiLSTM 的多种类型,最后实现了一个端到端的汉字识别网络。第9章介绍了DQN 算法,用于玩Flappy Bird。然后介绍了OpenAI Baselines 和Gym 的用法,并用于玩“超级马里奥”。最后介绍了OpenAI 提出的具有好奇心的强化学习算法。第10章讲解了生成对抗网络(GAN)及衍生的变种DCGAN、WGAN 和WGAN-GP 算法,用于人脸生成的实践。最后介绍了PG-GAN 和TL-GAN 的理论。
限于篇幅,以及作者能力有限,书中难免有错漏之处,本书仅仅是将作者掌握的知识做了总结与分享。当然,这些知识不属于我个人,首先要感谢那些工作在人工智能第一线的科学家们,是他们将研究成果公布出来,让大家可以阅读论文和博客。更要感谢开源社区的贡献者们,使我们可以阅读源码参考学习。还要感谢同样喜欢技术分享的人们,我所能做的跟他们一样,就是将分享的“火炬”继续传递下去。书中在引用时都会给出引用的出处,在这里一并表示感谢。
写作本书的过程,是对自己所学知识的一次梳理,回过头来重新审视自己对某些知识的理解,又是一次成长。同时,写作的过程又是孤独的、寂寞的,有时觉得自己就像在山洞里练剑一样。感谢我的妻子对我的理解和支持,在写作期间,她在国内带着孩子,听从了我“在交稿前不要来打扰”的安排。最要感谢的是我的妈妈,是她培养了我学习与钻研的习惯。最后还要感谢电子工业出版社的郑柳洁和葛娜老师,她们对本书的出版和编辑提供了很多专业性的指导和帮助,没有她们的付出,本书无法与大家见面。
希望本书的内容能够为你提供帮助,权当抛砖引玉,为你的深度学习知识打下基础。
程世东
目录
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