机器学习是人工智能的核心实现方式之一,深度学习是机器学习的一种,它基于人工神经网络,通过多层非线性变换提取数据特征。本书系统地介绍了深度学习的核心理论与应用,从人工智能发展历程和机器学习基础讲起,涵盖Python编程、主流框架(TensorFlow、PyTorch等)、神经网络原理(结构、优化、评估)及经典模型(MLP、CNN、RNN),并配有手写数字识别、图像分类等实战案例。书中特别设置生成式学习(VAE、GAN)、强化学习、神经算子(DeepONet、PINN)等前沿内容,最后探讨Transformer架构、模型可解释性等热点议题。
更多科学出版社服务,请扫码获取。
1991.09-1995.07 山西大学,本科
1995.08-1998.03 北京理工大学,硕士
2000.12-2004.08 香港大学,博士1998.04-2000.11,北京理工大学,助教
2004.09-2006.06,南非金山大学,博士后
2006.07-2009.06,北京理工大学,副教授
2009.07-现在, 北京理工大学,教授控制论与人工智能基础已发表SCI学术论文120多篇,撰写专著 2部,主持国家自然科学基金 5 项IEEE 高级会员,《Control Theory and Technology》副主编
目录
前言
主要符号表
1 深度学习概述 1
1.1 人工智能浪潮 1
1.1.1 第一次人工智能浪潮 2
1.1.2 第二次人工智能浪潮 3
1.1.3 第三次人工智能浪潮 4
1.2 什么是机器学习? 6
1.2.1 数据 6
1.2.2 模型 7
1.2.3 算法 9
1.2.4 指标 10
1.2.5 机器学习与传统编程的区别 10
1.3 监督学习 11
1.3.1 分类问题 12
1.3.2 回归问题 14
1.4 无监督学习 17
1.5 半监督学习 21
1.6 强化学习 22
1.7 深度学习 24
2 深度学习的编程基础 27
2.1 安装Anaconda开发环境 27
2.1.1 环境和包的管理 28
2.1.2 运行Python程序 32
2.2 Python语言基础 34
2.2.1 基本数据类型 35
2.2.2 条件语句 40
2.2.3 循环语句 42
2.2.4 函数 47
2.2.5 类 59
2.3 Numpy 69
2.3.1 创建和保存ndarray 70
2.3.2 Numpy中的函数 74
2.3.3 ndarray塑形 78
2.3.4 ndarray中的矩阵代数 81
2.3.5 ndarray的random模块 82
2.4 Pandas 85
2.4.1 主要数据结构 85
2.4.2 数据的导入与导出 97
2.4.3 数据操作 102
2.4.4 缺失值处理 109
2.4.5 描述性统计 113
2.4.6 数据可视化 116
2.5 Matplotlib 118
2.5.1 函数式接口和OO接口 118
2.5.2 图形、坐标轴和其他组件 119
2.5.3 一些绘图实例 121
3 深度学习框架简介 127
3.1 TensorFlow框架 127
3.1.1 核心特点 127
3.1.2 TensorFlow的工作流程 128
3.1.3 TensorFlow的优势 128
3.1.4 张量 129
3.2 Keras API 130
3.2.1 序贯API 131
3.2.2 函数式API 131
3.2.3 子类化API 132
3.2.4 总结 132
3.3 PyTorch框架 133
3.3.1 PyTorch的关键特点 133
3.3.2 PyTorch的基本使用流程 136
3.3.3 总结 143
3.4 其他框架 143
3.4.1 华为MindSpore 143
3.4.2 百度PaddlePaddle 144
3.4.3 总结 145
4 深度学习的数学理论 147
4.1 神经网络简介 147
4.1.1 神经元 147
4.1.2 层 149
4.1.3 神经网络 149
4.2 激活函数 150
4.3 损失函数 155
4.3.1 均方误差 155
4.3.2 交叉熵 156
4.3.3 实例:ILSVRC 2012图片分类任务的损失函数 158
4.4 优化器 158
4.4.1 小批量随机梯度下降法 158
4.4.2 带动量的SGD 161
4.4.3 Adagrad 161
4.4.4 RMSProp 162
4.4.5 Adam 162
4.5 评估指标 163
4.5.1 数据集的划分 164
4.5.2 交叉验证 165
4.5.3 过拟合与泛化 166
5 多层感知机模型 169
5.1 感知机简介 169
5.1.1 感知机的基本结构 169
5.1.2 感知机的工作原理 169
5.1.3 感知机的数学公式 170
5.1.4 感知机的训练过程 170
5.1.5 感知机的优缺点 171
5.1.6 总结 171
5.2 多层感知机的反向传播算法 171
5.2.1 多层感知机简介 171
5.2.2 反向传播算法概述 172
5.3 mnist手写数字识别问题 174
5.3.1 mnist数据集 175
5.3.2 建立MLP模型 176
5.3.3 训练MLP模型 179
5.3.4 绘制学习曲线 180
5.3.5 评估MLP模型 182
5.3.6 利用模型进行预测 183
5.3.7 模型训练中的各种时间开销 185
5.4 Boston房价预测的回归问题 186
5.4.1 Boston房价数据集 186
5.4.2 建立MLP回归模型 188
5.4.3 训练MLP模型 190
5.4.4 评估MLP模型 191
5.4.5 用MLP模型进行预测 191
5.4.6 建立、训练、评估多元线性回归模型 191
5.4.7 MLP与MLR模型对比 193
6 在计算机视觉领域的实践 195
6.1 卷积神经网络 195
6.1.1 卷积运算 196
6.1.2 填充和步幅 198
6.1.3 最大与平均汇聚 199
6.2 CNN的典型应用 200
6.2.1 图像分类 200
6.2.2 目标检测 201
6.2.3 图像分割 201
6.2.4 风格迁移 201
6.2.5 图像生成与超分辨率 201
6.2.6 图像描述与视觉问答 202
6.2.7 人脸识别与表情分析 202
6.2.8 姿态估计 202
6.2.9 自动驾驶 202
6.2.10 视频分析与处理 202
6.3 在mnist数据集上训练CNN模型 203
6.3.1 mnist数据集 204
6.3.2 建立多层CNN模型 205
6.3.3 训练CNN模型 207
6.3.4 绘制学习曲线 208
6.3.5 评估CNN模型 210
6.3.6 利用模型进行预测 211
6.3.7 模型训练中的各种时间开销 213
6.4 经典CNN模型简介 214
6.4.1 LeNet-5 214
6.4.2 AlexNet 217
6.4.3 VGGNet 220
6.4.4 GoogLeNet 223
6.4.5 ResNet 227
6.5 图片数据增强 229
6.6 解释CNN模型学到的内容 233
6.6.1 可视化卷积滤波器 233
6.6.2 可视化类激活热力图 238
6.6.3 可视化中间激活值 244
6.7 DeepDream 249
7 在序列数据学习领域的实践 257
7.1 循环神经网络简介 257
7.2 长短期记忆网络 259
7.3 门控循环单元 261
7.4 在小型时间序列数据集上训练RNN模型 263
7.4.1 jena数据集简介 263
7.4.2 dense模型 268
7.4.3 Conv1D模型 269
7.4.4 LSTM模型 270
7.5 对文本序列的学习 271
7.5.1 自然语言处理概述 271
7.5.2 序列到序列的学习 274
7.6 文本情感分类 277
7.6.1 准备IMDB数据 279
7.6.2 词袋模型:BoW 283
7.6.3 序列模型:双向LSTM 287
7.6.4 序列模型:word embedding 289
8 生成式学习 295
8.1 生成式学习简述 295
8.1.1 生成式学习基本方法简述 295
8.1.2 生成式学习的应用 296
8.1.3 生成式学习的挑战 297
8.2 自编码器 298
8.2.1 自编码器的结构、原理及特性 298
8.2.2 自编码器的类型 299
8.2.3 应用领域 304
8.3 变分自编码器 304
8.3.1 潜变量模型 304
8.3.2 非线性潜变量模型 306
8.3.3 模型训练 307
8.3.4 ELBO性质 309
8.3.5 变分近似 311
8.3.6 变分自编码器的原理 312
8.3.7 重新参数化技巧 313
8.3.8 示例:生成与mnist手写数字风格相似的图片 314
8.4 生成对抗网络 319
8.4.1 GAN的原理 320
8.4.2 提高GAN训练稳定性 323
8.4.3 示例:利用GAN生成图像 326
9 强化学习 335
9.1 马尔可夫决策过程、回报和策略 335
9.1.1 马尔可夫过程 336
9.1.2 马尔可夫奖励过程 336
9.1.3 马尔可夫决策过程 337
9.1.4 部分可观察马尔可夫决策过程 337
9.1.5 策略 338
9.2 期望回报 339
9.2.1 状态值和动作值 339
9.2.2 最优策略 340
9.2.3 贝尔曼方程 340
9.3 表格型强化学习 341
9.3.1 动态规划 342
9.3.2 蒙特卡洛方法 342
9.3.3 时序差分方法 343
9.4 拟合Q学习 344
9.4.1 利用深度Q网络玩Atari游戏 344
9.4.2 双Q学习和双Q深度学习 346
9.5 策略梯度方法 347
9.5.1 梯度更新的推导 348
9.5.2 REINFORCE算法 350
9.5.3 基线 350
9.5.4 状态依赖的基线 351
9.6 Actor-Critic算法 357
9.7 离线强化学习 362
9.8 讨论 363
10 神经算子 365
10.1 DeepONet 365
10.1.1 算子的通用逼近定理 365
10.1.2 DeepONet的架构 366
10.1.3 DeepONet的学习实例 369
10.1.4 DeepONet的优势 374
10.2 傅里叶神经算子 375
10.2.1 FNO的背景 376
10.2.2 FNO的原理 376
10.2.3 FNO的架构 378
10.2.4 FNO的学习实例 379
10.2.5 DeepONet和FNO的比较 384
10.3 物理信息神经网络 385
10.3.1 正向问题:数据驱动微分方程求解 385
10.3.2 逆向问题:数据驱动发现微分方程 392
11 深度学习进阶 399
11.1 预训练模型与微调 399
11.1.1 特征提取 399
11.1.2 模型微调 408
11.2 Transformer架构 410
11.2.1 Transformer架构的发展历程 410
11.2.2 Transformer架构的核心原理 410
11.2.3 Transformer在自然语言处理中的应用 420
11.2.4 Transformer架构的未来发展趋势 424
11.2.5 总结 426
11.3 KAN与模型可解释性 427
11.3.1 Kolmogorov-Arnold表示定理 428
11.3.2 KAN的结构 428
11.3.3 KAN的逼近能力 431
11.3.4 网格扩展 432
11.3.5 可解释性:简化KAN并使其具有交互性 433
11.3.6 如何实现与KAN交互 434
11.3.7 示例:KAN实现函数拟合 437
A 微积分 443
A.1 导数与偏导数 443
A.2 梯度与多元函数极值问题 444
A.2.1 基本概念 444
A.2.2 梯度消失 445
A.2.3 梯度爆炸 446
A.3 链式法则 446
B 线性代数 449
B.1 向量与矩阵 449
B.1.1 向量和矩阵范数 449
B.1.2 向量点积 449
B.1.3 矩阵乘法 450
B.1.4 转置 450
B.1.5 方阵的逆 450
B.1.6 方阵的迹 451
B.1.7 方阵的行列式 451
B.1.8 矩阵的特征值分解 452
B.1.9 矩阵的奇异值分解 452
B.1.10 对角矩阵 452
B.1.11 三角矩阵 452
B.1.12 正交矩阵 453
B.2 线性函数 453
B.3 矩阵和向量的微积分 454
B.3.1 向量值函数的梯度 454
B.3.2 矩阵的梯度 455
B.4 张量 455
C 概率统计 457
C.1 随机变量和概率分布 457
C.2 边缘概率分布 458
C.3 期望和方差 458
C.3.1 期望 458
C.3.2 方差 459
C.4 常见的概率分布 459
C.4.1 正态分布 459
C.4.2 二项分布 459
C.4.3 泊松分布 460
C.4.4 指数分布 460
C.4.5 均匀分布 460
C.4.6 卡方分布 460
C.5 概率分布间的度量 461
C.5.1 交叉熵 461
C.5.2 KL散度 461
D 优化 463
参考文献 465