Ch6: 时序差分学习

SARSA vs Q-Learning — CliffWalking 上的经典对比,在策略 vs 离策略
SARSA(在策略)— 安全路径
Q-Learning(离策略)— 最优路径
颜色 = 高 Q 值 -13= 该格 max Q(预计总分) = 当前最优动作 最近一集路径 X = 悬崖(-100) 终点 G

参数

统计

Episode: 0
SARSA 最近奖励: --
Q-Learning 最近奖励: --
关键区别
SARSA:更新用实际选择的下一动作 a'(含探索), 所以它"知道"自己的探索可能掉悬崖,走安全但稍远的路。
Q-Learning:更新用 max Q(s',a')(假设最优行为), 它"以为"自己总能走最优,所以贴着悬崖走最近但危险的路。
这就是 在策略 (on-policy) vs 离策略 (off-policy) 的差异。

怎么看懂这两张图?

① 这个棋盘是什么:从 S 走到 G,别掉下悬崖

棋盘是 4 行 × 12 列的格子。每一集,智能体从左下角的 S 出发,目标是走到右下角的 G(绿框)。 底行中间 10 格是悬崖(红 X):掉进去立刻扣 -100 分,并被送回起点重来。 另外每走一步扣 -1 分,所以得分永远是负数,越接近 0 越好。 数一数格子就知道:贴着悬崖边走的捷径是 13 步 = -13 分(理论最好成绩),绕到最顶行的安全路线是 17 步 = -17 分。 智能体要学的,就是在"近但危险"和"远但安全"之间做选择。

② 格子里画的是什么:颜色、数字、箭头

每格画的是算法学到的 Q 表——Q(s, a) 表示"在格子 s 做动作 a,预计最终能拿多少分"。 数字是这格四个动作里最大的 Q 值(max Q),即"从这里出发、按当前理解走到底,预计总分"; 颜色是它的相对高低(深 → 亮,按当前帧的最低/最高归一化,所以训练初期整体偏暗、色块跳动是正常的); 橙色箭头指向 max Q 对应的动作,也就是这格"当前认为最好的走法"——所有箭头连起来就是学到的策略黄色高亮是最近一集实际走过的路线(含探索时的绕路)。

③ 两张图对比该看什么:一个贴悬崖,一个绕远路

点「自动」跑几百集后,对比左右两图最下面两行的箭头:右图 Q-Learning 的箭头贴着悬崖边走第 3 行(13 步捷径,-13 分); 左图 SARSA 的箭头会绕到第 1~2 行,走远但安全的路(-17 分)。 再对照下方奖励曲线:绿色的 SARSA 平稳地守在 -20 附近;蓝色的 Q-Learning 虽然学到的是最短路线,却频繁猛掉到 -100 多—— 10% 的 ε 探索偶尔随机选了"向下",直接摔下悬崖。 所以 Q-Learning 学到的是"最优策略",SARSA 学到的是"算上自己会犯错之后最划算的策略", 训练过程中的实际表现反而常常更稳。侧栏「关键区别」框讲的在策略 vs 离策略,落在图上就长这个样子。

④ 动手试试:用 ε 滑块验证直觉

ε 探索率拉到 0 再点「自动」:没有探索就永远不会"意外"掉悬崖,两种方法都会大胆贴悬崖,两张图变得几乎一样; 把 ε 拉到 0.3 以上:探索越多,SARSA 绕得越远、Q-Learning 摔得越勤,差距更明显。 这就是 SARSA"为自己的探索买单"、Q-Learning"假装探索不存在"的含义。

💡 键盘快捷键:← → 切换章节