1. 疑惑:MC Exploring Starts 是从后往前递归,那是不是和时序差分(自举)的那种 很像?
不是! 我们需要精确区分“计算回报 G_t 的技巧”和“学习更新的哲学”。它们是两件完全不同的事情。
1. 为什么计算要从后往前?——这是一个高效的计算技巧
让我们仔细看图片中的这几行伪代码:
Initialization: g ← 0
For each step of the episode, t = T-1, T-2, ..., 0, do
g ← γg + r_{t+1}
...
这里的
- 当
(最后一-步): 。此时 就是 。
- 当
(倒数第二步): 。此时 就是 。
- ...
- 当
(第一步): 。此时 就是 。
为什么这么做?
因为回报的定义是递归的:
从后往前计算,我们可以非常高效地利用上一步算出的
但是,请注意,这仅仅是为了算出
2. 学习更新的哲学是什么?——仍然是纯粹的蒙特卡洛
算出了
q(s_t, a_t) ← average(Returns(s_t, a_t)) // 更新Q值
π(a|s_t) ← argmax q(s_t, a) // 更新策略
关键点:
的更新只依赖于那个从头跑到尾、历经千辛万苦才得到的完整回报 。 - 它没有使用任何其他状态的价值估计,比如
,来帮助计算 。 - 这就是蒙特卡洛的标志:不信任中间的价值估计,只相信跑完全程的“真实”结果。
对比自举 (Bootstrapping) 的学习哲学
现在,我们对比一下一个使用自举的算法(比如 TD 或 Q-Learning)会怎么做。它根本不会去从后往前计算完整的
它的学习更新会是这样的(概念上的伪代码):
// 在时间步 t,刚刚从 s_t 采取 a_t, 得到 r_{t+1} 和 s_{t+1}
// 立即进行更新,根本不等回合结束
q_target = r_{t+1} + γ * q(s_{t+1}, a_{t+1}) // Bootstrapping! 用了未来的Q值估计
q(s_t, a_t) ← q(s_t, a_t) + α * (q_target - q(s_t, a_t))
- MC: 等到最后,从后往前算出真实的
,用它来更新 。 - TD: 不等到最后,马上用真实的
加上估计的 ,来更新 。
那时序差分(自举)后面的估计是怎么出来的?因此我们对比一下DP, MC 和 TD
2. DP, MC 和 TD 的对比
假设我们的目标是得到一张准确的Q表。有三种不同的方法来填写这张表:
方法一:上帝视角 - 动态规划 (DP)
- 前提: 你知道整个游戏的规则(模型
和 )。 - 计算方式: 你把自己关在一个房间里,不玩游戏,只对着规则手册(模型)进行思考和计算。你可以使用矩阵运算
一次性算出所有精确值,或者通过价值迭代 反复迭代直到收敛。 的来源: 在这个世界里, 的值是在算法开始之前或在迭代过程中,就已经通过对整个系统动力学的全局计算得到的。它是基于模型的、全局的计算结果。
方法二:事后诸葛亮 - 蒙特卡洛 (MC)
- 前提: 你对游戏规则一无所知。
- 计算方式: 你只能亲自去玩。你完整地玩完一局游戏,记录下整个过程。游戏结束后,你回顾整个过程,从后往前,计算出你在游戏中每个点上实际获得的总回报
。 的来源: 在MC的世界里,根本不存在 这个东西被用来更新 。MC只会用真实的、完整的 来更新 。它完全不信任任何中间的价值估计。
方法三:摸着石头过河 - 时序差分 (TD)
- 前提: 你对游戏规则一无所知,也没有耐心玩完一整局再学习。
- 计算方式: 你采用一种边玩边学,滚动更新的方式。
的来源: 这就是你问题的核心。在TD的世界里, 的值是这样来的: - 随机初始化: 在学习开始之前,整张Q表里的所有值都是随机猜的,或者全部初始化为0。这些值是完全不准确的。
- 第一步经验: 你从
走到 ,获得奖励 。你想更新 。 - 自举更新: 你去查表,看到了那个不准确的、随机初始化的
的值。 - TD说: “尽管我知道
的值现在很烂,但它是我对未来的唯一信息。我得到的真实奖励 是确凿的新知识。所以我用这个新知识,去稍微修正一下我对 的旧看法。” - 滚动修正: 你继续玩下去。当你走到
时,你又会用 的值来更新 。这样,价值的“准确性”就像波浪一样,从奖励发生的地方,一步一步地在Q表中反向传播开来。
总结与比喻
方法 | 比喻:如何绘制一张城市财富地图? | |
---|---|---|
DP | 基于全局模型的精确数学计算。 | 你有政府的完整税收数据和城市规划图。你在办公室里用电脑一次性计算出每个街区的平均财富。 |
MC | 不使用。只使用完整的、真实的样本回报 |
你派调查员去跟踪一些市民一整年,记录下他们的全部收入和支出。然后根据这些完整的年度报告来估算他们住的街区的财富。 |
TD | 来自Q表中上一次迭代留下来的、不完美的估计值。 | 你派调查员在街上随机采访路人。你问A:“你昨天赚了多少钱?( |
所以,TD方法中用于自举的