内容简介
本书由百度官方出品,百度公司CTO王海峰博士作序,张钹院士、李未院士、百度集团副总裁吴甜联袂推荐。
本书遵循“内容全面、由浅入深、注重实践”的原则,基于飞桨PaddlePaddle深度学习平台,较为全面地覆盖了学习深度学习技术所必须具备的基础知识以及深度学习主要核心技术,包括相关的数学基础、Python编程基础、机器学习基础以及正向/反向传播算法、卷积神经网络、循环神经网络等,尽量做到读懂一本书即可达到“零基础”到“全精通”。
在章节安排上,考虑读者的特点和认知规律,在知识架构和案例穿插的设计上确保循序渐进、由浅入深。同时,本书提供了大量的深度学习实战案例,覆盖了当前计算机视觉、自然语言处理、个性化推荐等领域主流应用典型的算法,每章都单独配以飞桨代码实现,详细解析实操过程,手把手引导读者开展实践练习、深入掌握相关知识。
本书提供配套代码合集,详情请访问https://aistudio.baidu.com/aistudio/projectdetail/518424。
序
前言
第一部分 数学与编程基础篇
第1章 数学基础与Python库2
1.1 Python是进行人工智能编程的主要语言2
1.2 数学基础3
1.2.1 线性代数基础3
1.2.2 微积分基础7
1.3 Python库的操作14
1.3.1 NumPy操作14
1.3.2 Matplotlib操作19
1.4 本章小结23
第2章 深度学习概论与飞桨入门24
2.1 人工智能、机器学习和深度学习25
2.1.1 人工智能25
2.1.2 机器学习26
2.1.3 深度学习26
2.2 深度学习的发展历程27
2.2.1 神经网络的第一次高潮27
2.2.2 神经网络的第一次寒冬28
2.2.3 神经网络的第二次高潮30
2.2.4 神经网络的第二次寒冬30
2.2.5 深度学习的来临31
2.2.6 深度学习崛起的时代背景31
2.3 深度学习的应用场景31
2.3.1 图像与视觉32
2.3.2 语音识别32
2.3.3 自然语言处理33
2.3.4 个性化推荐33
2.4 常见的深度学习网络结构34
2.4.1 全连接网络结构34
2.4.2 卷积神经网络34
2.4.3 循环神经网络35
2.5 机器学习回顾35
2.5.1 线性回归的基本概念36
2.5.2 数据处理37
2.5.3 模型概览38
2.5.4 效果展示39
2.6 深度学习框架简介40
2.6.1 深度学习框架的优势40
2.6.2 常见的深度学习框架41
2.6.3 飞桨简介42
2.6.4 飞桨安装42
2.6.5 AI Studio43
2.7 飞桨实现44
2.8 飞桨服务平台和工具组件51
2.8.1 PaddleHub51
2.8.2 X2Paddle54
2.8.3 PARL56
2.8.4 EasyDL61
2.9 本章小结62
第二部分 深度学习基础篇
第3章 深度学习的单层网络64
3.1 Logistic回归模型64
3.1.1 Logistic回归概述64
3.1.2 损失函数66
3.1.3 Logistic回归的梯度下降68
3.2 实现Logistic回归模型72
3.2.1 NumPy版本73
3.2.2 飞桨版本80
3.3 本章小结88
第4章 浅层神经网络89
4.1 神经网络89
4.1.1 神经网络的定义及其结构89
4.1.2 神经网络的计算91
4.2 BP算法96
4.2.1 逻辑回归与BP算法96
4.2.2 单样本双层神经网络的BP算法97
4.2.3 多样本神经网络的BP算法100
4.3 BP算法实践103
4.3.1 NumPy版本103
4.3.2 飞桨版本110
4.4 本章小结114
第5章 深层神经网络116
5.1 深层网络介绍116
5.1.1 深度影响算法能力116
5.1.2 网络演化过程与常用符号118
5.2 传播过程120
5.2.1 神经网络算法核心思想120
5.2.2 深层网络正向传播过程120
5.2.3 深层网络反向传播过程121
5.2.4 传播过程总结122
5.3 网络的参数124
5.4 代码实现125
5.4.1 NumPy版本125
5.4.2 飞桨版本128
5.5 本章小结130
第6章 卷积神经网络131
6.1 图像分类问题描述131
6.2 卷积神经网络介绍132
6.2.1 卷积层132
6.2.2 ReLU激活函数136
6.2.3 池化层137
6.2.4 Softmax分类层138
6.2.5 主要特点139
6.2.6 经典神经网络架构140
6.3 飞桨实现145
6.3.1 数据介绍145
6.3.2 模型概览146
6.3.3 配置说明146
6.4 本章小结153
第7章 循环神经网络154
7.1 任务描述154
7.2 循环神经网络介绍155
7.2.1 长短期记忆网络156
7.2.2 门控循环单元157
7.2.3 双向循环神经网络158
7.2.4 卷积循环神经网络159
7.3 利用飞桨实现机器翻译159
7.3.1 数据准备159
7.3.2 柱搜索 163
7.3.3 模型配置167
7.3.4 模型训练168
7.3.5 加载训练模型进行预测169
7.4 本章小结170
第8章 注意力机制171
8.1 任务描述171
8.2 注意力机制介绍172
8.2.1 Transformer172
8.2.2 Non-local神经网络175
8.2.3 Attention Cluster神经网络176
8.3 利用飞桨实现视频分类177
8.3.1 Non-local神经网络177
8.3.2 Attention Cluster183
8.4 本章小结195
第9章 算法优化196
9.1 基础知识196
9.1.1 训练、验证和测试集196
9.1.2 偏差和方差197
9.2 评估198
9.2.1 选定评估目标198
9.2.2 迭代过程199
9.2.3 欠拟合和过拟合199
9.3 调优策略199
9.3.1 降低偏差199
9.3.2 降低方差204
9.4 超参数调优209
9.4.1 随机搜索和网格搜索209
9.4.2 超参数范围209
9.4.3 分阶段搜索210
9.4.4 例子:对学习率的调整210
9.5 本章小结212
第三部分 飞桨实践篇
第10章 目标检测214
10.1 任务描述214
10.2 常见模型解析217
10.2.1 R-CNN系列217
10.2.2 YOLO223
10.2.3 SSD228
10.3 PaddleDetection应用实践231
10.3.1 Faster-R-CNN231
10.3.2 YOLOv3234
10.4 本章小结237
第11章 图像生成238
11.1 任务描述238
11.1.1 图像生成238
11.1.2 图像–图像转换239
11.1.3 文本–图像转换239
11.2 模型概览240
11.2.1 图像生成240
11.2.2 图像–图像241
11.2.3 文本–图像246
11.3 PaddleGAN应用实践248
11.3.1 数据准备248
11.3.2 参数设置248
11.3.3 网络结构定义249
11.3.4 模型训练253
11.3.5 模型测试 256
11.4 本章小结257
第12章 情感分析258
12.1 任务描述258
12.2 算法原理解析259
12.2.1 BOW259
12.2.2 DB-LSTM259
12.3 情感分析应用实践261
12.3.1 数据集下载261
12.3.2 配置模型262
12.3.3 训练模型268
12.4 本章小结273
第13章 机器翻译274
13.1 任务描述274
13.2 算法原理解析275
13.2.1 Seq2Seq275
13.2.2 Transformer276
13.3 机器翻译应用实践287
13.3.1 数据准备287
13.3.2 模型配置287
13.3.3 模型训练289
13.3.4 模型测试291
13.3.5 模型评估292
13.4 本章小结292
第14章 语义表示293
14.1 任务描述293
14.2 常见模型解析294
14.2.1 ELMo294
14.2.2 ERNIE296
14.3 ERNIE应用实践300
14.3.1 数据准备301
14.3.2 模型配置301
14.3.3 模型训练302
14.3.4 模型评估305
14.4 本章小结305
第15章 个性化推荐306
15.1 问题描述306
15.2 传统推荐方法307
15.2.1 基于内容的推荐307
15.2.2 协同过滤推荐309
15.2.3 混合推荐310
15.3 深度学习推荐方法310
15.3.1 YouTube的深度神经网络推荐系统310
15.3.2 融合推荐系统312
15.4 个性化推荐系统在飞桨上的实现315
15.4.1 数据准备315
15.4.2 模型设计332
15.4.3 模型训练358
15.4.4 保存特征363
15.4.5 模型测试364
15.5 本章小结373