《深度学习入门4:强化学习》封面

内容简介

本书前半部分介绍强化学习的重要思想和基础知识,后半部分介绍如何将深度学习应用于强化学习,遴选讲解了深度强化学习的最新技术。全书从最适合入门的多臂老虎机问题切入,依次介绍了定义一般强化学习问题的马尔可夫决策过程、用于寻找最佳答案的贝尔曼方程,以及解决贝尔曼方程的动态规划法、蒙特卡洛方法和TD方法。随后,神经网络和Q学习、DQN、策略梯度法等几章则分别讨论了深度学习在强化学习领域的应用。本书延续“鱼书”系列的风格,搭配丰富的图、表、代码示例,加上轻松、简明的讲解,让人循序渐进地理解强化学习中各种方法之间的关系,于不知不觉中登堂入室。

编辑推荐

沿袭“鱼书”系列风格,提供实际代码,边实践边学习,无须依赖外部库,从零开始实现支撑强化学习的基础技术。

本书有什么特点?

●把握潮流中的变与不变

在快速发展变化的深度学习领域,有变化的事物,有不变的事物。有些事物会随潮流而消逝,有些则会被传承下去。本书从马尔可夫决策过程、贝尔曼方程、蒙特卡洛方法、时间差分法等强化学习基础方法,自然而然地过渡到神经网络和深度学习,从前沿视角为读者遴选出最值得关注的强化学习理论和方法。

●内容丰富,讲解简明易懂

作为超高人气“鱼书”系列第四部作品,本书延续了这一系列的写作和讲解风格,搭配丰富的图、表、代码示例,加上轻松、简明的讲解,能够让人非常信服地理解强化学习中各种方法之间的关系,于不知不觉中登堂入室。

●原理与实践并重

本书旨在确保读者能够牢固掌握强化学习的独特理论,奉行“只有做出来才能真正理解”的理念,将这一主题的每个构成要素都从“理论”和“实践”两个方面进行详尽解释,并鼓励读者动手尝试。与仅通过数学公式解释理论的图书不同,读者将通过实际运行本书代码获得许多令人惊叹的领悟。

作者简介

斋藤康毅,1984年出生于日本长崎县,东京工业大学毕业,并完成东京大学研究生院课程。目前在某企业从事人工智能相关的研究和开发工作。著有“鱼书”系列《深度学习入门:基于Python的理论与实现》《深度学习进阶:自然语言处理》《深度学习入门2:自制框架》,同时也是Python in Practice、The Elements of Computing Systems、Building MachineLearning Systems with Python的日文版译者。

目录

前言
第1章 老虎机问题1
1.1 机器学习的分类与强化学习1
1.1.1 监督学习2
1.1.2 无监督学习2
1.1.3 强化学习3
1.2 老虎机问题5
1.2.1 什么是老虎机问题5
1.2.2 什么是好的老虎机7
1.2.3 使用数学式表示8
1.3 老虎机算法9
1.3.1 价值的估计方法10
1.3.2 求平均值的实现12
1.3.3 玩家的策略15
1.4 老虎机算法的实现17
1.4.1 老虎机的实现17
1.4.2 智能代理的实现19
1.4.3 尝试运行20
1.4.4 算法平均的特性23
1.5 非稳态问题28
1.5.1 解决非稳态问题前的准备工作29
1.5.2 解决非稳态问题32
1.6 小结34
第2章 马尔可夫决策过程36
2.1 什么是MDP37
2.1.1 MDP的具体例子37
2.1.2 智能代理与环境的互动39
2.2 环境和智能代理的数学表示40
2.2.1 状态迁移40
2.2.2 奖励函数42
2.2.3 智能代理的策略43
2.3 MDP的目标45
2.3.1 回合制任务和连续性任务45
2.3.2 收益46
2.3.3 状态价值函数47
2.3.4 最优策略和最优价值函数48
2.4 MDP的例子50
2.4.1 回溯线形图51
2.4.2 找出最优策略52
2.5 小结54
第3章 贝尔曼方程56
3.1 贝尔曼方程的推导57
3.1.1 概率和期望值(推导贝尔曼方程的准备)57
3.1.2 贝尔曼方程的推导60
3.2 贝尔曼方程的例子64
3.2.1 有两个方格的网格世界64
3.2.2 贝尔曼方程的意义68
3.3 行动价值函数与贝尔曼方程68
3.3.1 行动价值函数69
3.3.2 使用行动价值函数的贝尔曼方程70
3.4 贝尔曼最优方程71
3.4.1 状态价值函数的贝尔曼最优方程71
3.4.2 Q函数的贝尔曼最优方程73
3.5 贝尔曼最优方程的示例74
3.5.1 应用贝尔曼最优方程74
3.5.2 得到最优策略76
3.6 小结78
第4章 动态规划法79
4.1 动态规划法和策略评估80
4.1.1 动态规划法简介80
4.1.2 尝试迭代策略评估81
4.1.3 迭代策略评估的其他实现方式86
4.2 解决更大的问题87
4.2.1 GridWorld类的实现88
4.2.2 defaultdict的用法94
4.2.3 迭代策略评估的实现95
4.3 策略迭代法99
4.3.1 策略的改进99
4.3.2 重复评估和改进101
4.4 实施策略迭代法102
4.4.1 改进策略103
4.4.2 重复评估和改进105
4.5 价值迭代法107
4.5.1 价值迭代法的推导109
4.5.2 价值迭代法的实现113
4.6 小结116
第5章 蒙特卡洛方法117
5.1 蒙特卡洛方法的基础知识117
5.1.1 骰子的点数和118
5.1.2 分布模型和样本模型119
5.1.3 蒙特卡洛方法的实现121
5.2 使用蒙特卡洛方法评估策略123
5.2.1 使用蒙特卡洛方法计算价值函数124
5.2.2 求所有状态的价值函数126
5.2.3 蒙特卡洛方法的高效实现129
5.3 蒙特卡洛方法的实现130
5.3.1 step方法130
5.3.2 智能代理类的实现132
5.3.3 运行蒙特卡洛方法134
5.4 使用蒙特卡洛方法的策略控制136
5.4.1 评估和改进136
5.4.2 使用蒙特卡洛方法实现策略控制137
5.4.3 ε-greedy算法(第1个修改)139
5.4.4 修改为固定值α的方式(第2个修改)141
5.4.5 [修改版]使用蒙特卡洛方法实现策略迭代法142
5.5 异策略型和重要性采样145
5.5.1 同策略型和异策略型145
5.5.2 重要性采样146
5.5.3 如何减小方差150
5.6 小结152
第6章 TD方法153
6.1 使用TD方法评估策略153
6.1.1 TD方法的推导154
6.1.2 MC方法和TD方法的比较157
6.1.3 TD方法的实现158
6.2 SARSA161
6.2.1 同策略型的SARSA161
6.2.2 SARSA的实现162
6.3 异策略型的SARSA165
6.3.1 异策略型和重要性采样166
6.3.2 异策略型的SARSA的实现167
6.4 Q学习169
6.4.1 贝尔曼方程与SARSA170
6.4.2 贝尔曼最优方程与Q学习171
6.4.3 Q学习的实现173
6.5 分布模型与样本模型175
6.5.1 分布模型与样本模型175
6.5.2 样本模型版的Q学习176
6.6 小结179
第7章 神经网络和Q学习181
7.1 DeZero简介182
7.1.1 使用DeZero183
7.1.2 多维数组(张量)和函数184
7.1.3 最优化186
7.2 线性回归189
7.2.1 玩具数据集189
7.2.2 线性回归的理论知识190
7.2.3 线性回归的实现191
7.3 神经网络195
7.3.1 非线性数据集195
7.3.2 线性变换和激活函数196
7.3.3 神经网络的实现197
7.3.4 层与模型199
7.3.5 优化器(最优化方法)202
7.4 Q学习与神经网络204
7.4.1 神经网络的预处理204
7.4.2 表示Q函数的神经网络205
7.4.3 神经网络和Q学习208
7.5 小结212
第8章 DQN213
8.1 OpenAIGym213
8.1.1 OpenAIGym的基础知识214
8.1.2 随机智能代理216
8.2 DQN的核心技术218
8.2.1 经验回放218
8.2.2 经验回放的实现220
8.2.3 目标网络223
8.2.4 目标网络的实现224
8.2.5 运行DQN227
8.3 DQN与Atari230
8.3.1 Atari的游戏环境231
8.3.2 预处理232
8.3.3 CNN232
8.3.4 其他技巧233
8.4 DQN的扩展234
8.4.1 DoubleDQN234
8.4.2 优先级经验回放235
8.4.3 DuelingDQN236
8.5 小结238
第9章 策略梯度法239
9.1 最简单的策略梯度法239
9.1.1 策略梯度法的推导240
9.1.2 策略梯度法的算法241
9.1.3 策略梯度法的实现243
9.2 REINFORCE248
9.2.1 REINFORCE算法249
9.2.2 REINFORCE的实现250
9.3 基线251
9.3.1 基线的思路251
9.3.2 带基线的策略梯度法253
9.4 Actor-Critic254
9.4.1 Actor-Critic的推导255
9.4.2 Actor-Critic的实现257
9.5 基于策略的方法的优点260
9.6 小结262
第10章 进一步学习263
10.1 深度强化学习算法的分类263
10.2 策略梯度法的改进算法265
10.2.1 A3C和A2C265
10.2.2 DDPG268
10.2.3 TRPO和PPO271
10.3 DQN的改进算法272
10.3.1 分类DQN272
10.3.2 NoisyNetwork274
10.3.3 Rainbow274
10.3.4 在Rainbow以后提出的改进算法275
10.4 案例研究276
10.4.1 棋盘游戏277
10.4.2 机器人控制279
10.4.3 NAS280
10.4.4 其他案例282
10.5 深度强化学习的挑战和可能性283
10.5.1 应用于实际系统283
10.5.2 将问题表示为MDP形式时的建议286
10.5.3 通用人工智能系统288
10.6 小结288
附录A 异策略型的蒙特卡洛方法291
附录B n-stepTD方法298
附录C DoubleDQN的理解300
附录D 策略梯度法的证明304
后记308
参考文献310
······

最后修改:2026 年 01 月 05 日