跳转至

十一:强化学习:蒙特卡洛方法、Sarsa 与多步 Sarsa自测题答案

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483917&idx=1&sn=aaaa6e9b344553bf3db74f326e5b933c&chksm=f01eb174c7693862146b1c9ccd10152dee1f06f1645a023881d8b434e909da35d7f622eab26a#rd

参考资料

  • CSDN:蒙特卡洛方法:https://blog.csdn.net/qq_64671439/article/details/135345465

  • CSDN:Robbins-Monro 算法和随机梯度下降:https://blog.csdn.net/qq_64671439/article/details/135375515

  • CSDN:从 Sarsa 讲到 Q-learning:https://blog.csdn.net/qq_64671439/article/details/136529678

  • 动手学强化学习:时序差分算法:http://hrl.boyuai.com/chapter/1/%E6%97%B6%E5%BA%8F%E5%B7%AE%E5%88%86%E7%AE%97%E6%B3%95/

  • Sutton and Barto, Reinforcement Learning: An Introduction, Chapter 5-7:http://incompleteideas.net/book/RLbook2020.pdf

  • OpenAI Spinning Up: Key Concepts in RL:https://spinningup.openai.com/en/latest/spinningup/rl_intro.html

  • Hugging Face Deep RL Course:https://huggingface.co/learn/deep-rl-course/

评分标准

  • 合格:能写出 MC、TD(0)、Sarsa、n-step Sarsa、Q-learning 的核心 target 和更新公式。

  • 良好:能解释 first-visit/every-visit、Robbins-Monro、epsilon-greedy、on-policy/off-policy、bias-variance。

  • 优秀:能结合 Cliff Walking、长 episode、LLM Agent 场景说明方法选型、超参数影响和工程排错。

一、从 DP 到 Model-free

1. 为什么动态规划方法通常需要完整环境模型?

动态规划要计算 Bellman 期望或最优 backup,需要遍历可能的下一状态并按 P(s'|s,a) 加权,还要知道奖励 R。如果没有完整模型,就无法直接计算这些期望。

2. Model-free 强化学习与基于模型的动态规划有什么核心区别?

Model-free 方法不显式使用或学习完整的 PR,而是从实际采样的经验中学习价值或策略。动态规划基于已知模型做期望更新,model-free 基于样本做随机更新。

3. 采样式学习中,一条 transition 通常包含哪些元素?

通常包含:

(S_t, A_t, R_{t+1}, S_{t+1}, done)
有些算法还会包含下一个动作 A_{t+1},例如 Sarsa。

4. 一条 episode 通常包含哪些元素?

一条 episode 是从初始状态到终止状态的完整轨迹:

S_0, A_0, R_1, S_1, A_1, R_2, ..., S_T
也可以写成一串 transitions。

5. 为什么从采样数据估计价值可以看成估计期望?

价值函数本质是条件期望,例如:

V^pi(s) = E_pi[G_t | S_t=s]
采样得到多个 G_t 后,用样本平均或随机逼近估计这个期望。

6. 在没有 P(s'|s,a) 的情况下,为什么学习 Q(s,a) 对控制问题特别重要?

如果只有 V(s),要比较动作还需要知道动作导致的转移和奖励。Q(s,a) 直接评估状态动作对,有了 Q 就能通过 argmax_a Q(s,a) 改进策略,不需要显式模型。

7. Monte Carlo、TD、Sarsa 都属于 model-free 吗?分别使用什么样的采样目标?

通常都属于 model-free。MC 使用完整回报 G_t 作为 target;TD 使用 R + gamma V(S') 这类 bootstrap target;Sarsa 使用 R + gamma Q(S',A') 作为动作价值的 TD target。

8. 采样式强化学习相比 DP 的优势和代价分别是什么?

优势是不需要完整模型,可用于真实环境和大规模问题。代价是样本效率、估计方差、探索、训练稳定性和收敛诊断更困难。

二、蒙特卡洛预测

9. Monte Carlo 方法的核心思想是什么?

MC 方法通过采样完整 episode,用实际观察到的回报来估计价值函数。它用样本平均近似期望回报。

10. 为什么 MC 方法通常适合 episodic task?

标准 MC 需要等 episode 结束后才能得到完整回报 G_t。如果任务没有自然终止,完整回报难以获得或方差很高,需要截断、折扣或改用 TD。

11. 请写出状态价值 V^pi(s) 的 MC 估计思路。

对所有访问状态 s 的时刻,计算之后的回报 G_t,然后取平均:

V(s) = average(G_t | S_t=s)
增量形式:

V(S_t) <- V(S_t) + alpha [G_t - V(S_t)]

12. 请写出动作价值 Q^pi(s,a) 的 MC 更新形式。

Q(S_t,A_t) <- Q(S_t,A_t) + alpha [G_t - Q(S_t,A_t)]
其中 G_t 是从执行 A_t 后开始累计的完整折扣回报。

13. 什么是 first-visit MC?

First-visit MC 在每条 episode 中,对某个状态或状态动作对只使用第一次访问后的 return 进行更新。

14. 什么是 every-visit MC?

Every-visit MC 在每条 episode 中,对某个状态或状态动作对的每次访问都计算 return 并更新。

15. first-visit MC 和 every-visit MC 的区别和联系是什么?

区别是每条 episode 中同一状态重复出现时,first-visit 只用第一次,every-visit 每次都用。联系是采样足够且条件合适时,两者都可以收敛到真实价值。

16. MC prediction 为什么不需要知道状态转移概率?

因为 MC 直接使用实际采样出的轨迹和回报,不需要枚举所有可能下一状态,也不需要按转移概率求期望。

17. MC 方法为什么必须等到 episode 结束才能做标准完整回报更新?

完整回报 G_t 包含从 t 到 episode 结束的所有未来奖励。未结束时这些未来奖励还没有观测到,所以标准 MC 更新要等终止。

18. MC target 的方差为什么可能较高?

G_t 包含许多未来随机奖励、随机转移和随机动作。episode 越长,累积随机性越多,回报方差越高。

三、增量更新与 Robbins-Monro

19. 请写出样本均值的增量更新公式。

V_n = V_{n-1} + 1/n * (G_n - V_{n-1})
这是把第 n 个样本纳入均值的在线更新形式。

20. 为什么增量更新比保存所有历史 return 更实用?

它只需要保存当前估计和计数,不需要存储全部历史样本,内存更低,也适合在线学习。

21. 使用固定学习率 alpha 和使用 1/n 学习率有什么区别?

1/n 会逐渐减小,新样本影响越来越小,适合平稳分布下收敛到样本均值。固定 alpha 会持续赋予新样本权重,适合非平稳环境,但估计会持续波动。

22. Robbins-Monro 随机逼近的基本更新形式是什么?

常见形式:

x_{t+1} = x_t + alpha_t [sample_target_t - x_t]
或更一般地沿随机估计方向更新参数。

23. Robbins-Monro 收敛条件 sum alpha_t = infinity 表示什么直觉?

表示总学习量不能太小,算法必须持续吸收新信息。如果学习率衰减太快,可能还没接近目标就停止有效学习。

24. Robbins-Monro 收敛条件 sum alpha_t^2 < infinity 表示什么直觉?

表示学习率要足够快地变小,使随机噪声的累计影响有限,避免估计长期剧烈波动。

25. 为什么随机梯度下降可以看成随机逼近的一种形式?

SGD 用小批量样本梯度近似真实期望梯度,然后按学习率更新参数。它也是用随机样本估计期望方向并迭代逼近最优解。

26. 在深度 RL 中,为什么实际学习率设置不一定严格满足 Robbins-Monro 理论条件?

深度 RL 使用非线性函数近似、非平稳数据、经验回放、目标网络和优化器调度,理论条件很难完全满足。实际更关注稳定训练、验证表现和工程经验。

四、蒙特卡洛控制与探索

27. Monte Carlo control 的目标是什么?

目标是在不知道环境模型的情况下,通过采样 episode 学习动作价值 Q,并不断改进策略,最终得到高回报策略。

28. 为什么控制问题中通常学习 Q(s,a) 而不是只学习 V(s)?

没有模型时,单靠 V(s) 不知道每个动作会带来什么后果。Q(s,a) 直接给出动作比较依据,可以直接用 argmax_a Q(s,a) 改进策略。

29. MC control 如何体现 GPI 思想?

它先用 MC return 评估当前策略的 Q 值,再让策略对 Q 更贪心,然后继续采样和更新。这正是 policy evaluation 与 policy improvement 的循环。

30. 什么是 exploring starts?它解决什么问题?

Exploring starts 要求 episode 的初始状态动作对有非零概率覆盖所有可能组合。它用于保证每个状态动作对都能被访问,避免 Q 值永远没有数据。

31. 什么是 epsilon-greedy 策略?

1-epsilon 的概率选择当前 Q 值最高的动作,以 epsilon 的概率随机选择动作。它在利用和探索之间折中。

32. 什么是 epsilon-soft policy?

epsilon-soft policy 要求每个动作都有至少某个正概率被选择,常见形式是 epsilon-greedy。它保证探索不会完全消失。

33. 为什么完全贪心策略可能导致探索不足?

早期 Q 值估计可能不准。完全贪心会一直选择当前看起来最好的动作,其他动作得不到尝试,可能错过真正更优策略。

34. On-policy MC control 和 off-policy MC control 有什么区别?

On-policy 用当前正在改进的策略采样并学习它自身。Off-policy 用行为策略采样数据,但学习另一个目标策略,通常需要分布校正。

35. Off-policy MC 为什么需要重要性采样?

因为样本来自行为策略 b,而目标是估计目标策略 pi 下的期望。重要性采样用概率比修正分布差异:

rho = product pi(A_t|S_t) / b(A_t|S_t)

36. 重要性采样在长 episode 中为什么可能高方差?

长 episode 的重要性权重是多个概率比的乘积,可能指数级变大或变小,导致估计极不稳定。

五、TD 学习

37. Temporal Difference 方法的核心思想是什么?

TD 用采样到的一步奖励加下一状态价值估计来更新当前价值。它不需要模型,也不需要等 episode 结束。

38. 请写出 TD(0) 状态价值更新公式。

V(S_t) &lt;- V(S_t) + alpha [R_{t+1} + gamma V(S_{t+1}) - V(S_t)]

39. 什么是 TD target?

TD target 是当前更新追踪的目标。TD(0) 中:

R_{t+1} + gamma V(S_{t+1})

40. 什么是 TD error?

TD error 是 target 和当前估计的差:

delta_t = R_{t+1} + gamma V(S_{t+1}) - V(S_t)
它表示当前估计需要修正的方向和大小。

41. TD 方法为什么可以在线更新?

TD 只需要当前 transition 和下一状态价值估计,不需要完整 episode 的未来奖励。因此每走一步就可以更新。

42. TD 方法为什么说结合了 MC 和 DP 的思想?

它像 MC 一样从实际采样经验中学习,不需要模型;又像 DP 一样使用已有价值估计作为 target 的一部分,也就是 bootstrap。

43. MC target 和 TD target 分别是什么?

MC target 是完整回报:

G_t
TD(0) target 是:

R_{t+1} + gamma V(S_{t+1})
动作价值 Sarsa 的 TD target 是:

R_{t+1} + gamma Q(S_{t+1},A_{t+1})

44. MC 和 TD 在 bias-variance 上有什么区别?

MC target 使用真实完整回报,不使用 bootstrap,通常 bias 低但方差高。TD target 使用当前价值估计,有 bootstrap bias,但方差较低,学习更及时。

45. 什么是 bootstrapping?TD 中哪里体现了 bootstrapping?

Bootstrapping 是用当前估计值构造更新目标。TD 中的 gamma V(S_{t+1})gamma Q(S',A') 就是用估计值估计未来回报。

46. 如果下一状态是终止状态,TD target 应该如何处理?

终止状态没有未来价值,target 应为:

target = R_{t+1}
不能继续加 gamma V(S_{t+1})gamma Q(S_{t+1},A_{t+1})

六、Sarsa 与多步 Sarsa

47. Sarsa 名字中的五个元素分别是什么?

分别是:

S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1}
即当前状态、当前动作、奖励、下一状态、下一动作。

48. 请写出 Sarsa 的 Q 值更新公式。

Q(S_t,A_t) &lt;- Q(S_t,A_t)
&nbsp; + alpha [R_{t+1} + gamma Q(S_{t+1},A_{t+1}) - Q(S_t,A_t)]

49. 为什么 Sarsa 是 on-policy 算法?

因为它更新时使用的 A_{t+1} 是当前行为策略实际选择的动作。它评估并改进的就是包含探索行为的当前策略。

50. Sarsa 的典型训练流程是什么?

初始化 Q;每个 episode 开始选初始动作;执行动作得到 R,S';用当前策略在 S' 选择 A';用 Sarsa 公式更新 Q(S,A);然后令 S<-S'A<-A',直到终止。

51. Sarsa 中 A_{t+1} 是如何得到的?

A_{t+1} 由当前行为策略在下一状态 S_{t+1} 下采样得到,常见是 epsilon-greedy 策略。

52. epsilon-greedy 对 Sarsa 学到的策略有什么影响?

Sarsa 学到的是 epsilon-greedy 行为策略的价值,而不是纯贪心策略的价值。它会考虑探索动作带来的风险。

53. 如果 Sarsa 训练时 epsilon 一直很大,会有什么结果?

探索比例高,策略会持续随机,学习到的 Q 值反映高噪声行为策略,最终执行表现可能不够贪心,收敛策略也可能较保守。

54. 多步 Sarsa 的 n-step return 公式是什么?

G_{t:t+n}
= R_{t+1} + gamma R_{t+2} + ... + gamma^{n-1} R_{t+n}
&nbsp; + gamma^n Q(S_{t+n}, A_{t+n})
若 episode 在 t+n 前结束,则只累加到终止奖励,不再 bootstrap。

55. n-step Sarsa 中 n=1 和 n 到 episode 结束分别对应什么极端?

n=1 对应一步 Sarsa,也就是 TD(0) control。n 到 episode 结束时接近 Monte Carlo,用完整回报更新。

56. 多步 Sarsa 相比一步 Sarsa 的优势和风险是什么?

优势是能更快传播多步奖励,减少 bootstrap bias。风险是方差更高,索引和缓存更复杂,n 太大时接近 MC,长 episode 下更新延迟增加。

57. 实现 n-step Sarsa 时为什么容易出现 reward 索引错误?

因为执行 A_t 后得到的是 R_{t+1},而 n-step return 从 R_{t+1} 开始累加。代码数组若从 0 开始存储,状态、动作、奖励的下标很容易错一位。

58. 多步 Sarsa 如何处理 episode 结束时不足 n 步的情况?

如果在 t+n 前到达终止时刻 T,就只累加到 T 的奖励,不再加 gamma^n Q(S_{t+n},A_{t+n})。因为终止后没有未来价值。

七、Sarsa、Q-learning 与工程排错

59. Q-learning 的更新 target 是什么?

R_{t+1} + gamma max_a Q(S_{t+1}, a)
终止状态下 target 只等于 R_{t+1}

60. Sarsa 和 Q-learning 的 target 有什么核心区别?

Sarsa 使用实际下一个动作:

R + gamma Q(S',A')
Q-learning 使用下一状态最大动作:

R + gamma max_a Q(S',a)
前者 on-policy,后者 off-policy。

61. 为什么 Q-learning 通常被称为 off-policy?

因为它可以用带探索的行为策略采样数据,但更新目标总是假设下一步采取贪心动作。学习的目标策略和产生数据的行为策略不同。

62. 在 Cliff Walking 中,Sarsa 和 Q-learning 学到的行为可能有什么差异?

Sarsa 考虑 epsilon 探索可能导致掉悬崖,因此倾向更安全、离悬崖远的路径。Q-learning 学贪心最优路径,可能贴近悬崖,因为 target 不考虑探索动作风险。

63. alpha、gamma、epsilon 分别控制什么?

alpha 控制学习率,决定新样本影响大小。gamma 控制未来奖励权重。epsilon 控制随机探索比例。

64. 如果 Q 值震荡严重,可能有哪些原因?

学习率过大,奖励尺度过大,epsilon 太高,环境随机性强,bootstrap target 不稳定,终止状态处理错误,或函数近似导致发散。

65. 如果训练很久仍然学不到有效策略,应该排查哪些问题?

排查奖励是否正确、动作是否执行正确、状态编号和 Q 表维度是否匹配、epsilon 是否过小导致探索不足、alpha 是否太小、gamma 是否不合适、done 是否处理正确、episode 是否真的终止、更新公式 target 是否写错。

66. MC、TD、Sarsa、Q-learning 分别更适合什么场景?

MC 适合 episodic、能获得完整回报且模型未知的任务。TD 适合需要在线更新或长 episode 的预测任务。Sarsa 适合 on-policy 控制和需要考虑探索风险的任务。Q-learning 适合学习贪心最优策略、可用探索数据进行 off-policy 学习的任务。

八、LLM、RLHF 与 Agent 场景

67. 如何把一次完整对话看作 MC 方法中的 episode?

一次对话从用户请求开始,到问题解决、拒答、转人工或用户结束为止。整段对话是 episode,最终用户满意度、任务成功率或人工评分可以形成回报,用于更新对话策略。

68. 为什么长任务 Agent 中纯 MC 反馈可能学习效率低?

长任务要等完整流程结束才知道回报,学习信号延迟很长。最终成功或失败很难归因到中间某一步,回报方差高,样本效率低。

69. TD/critic 思想如何帮助长 horizon 的 LLM Agent 学习?

TD/critic 可以估计中间状态的未来成功概率或长期价值,让模型在任务未结束时就得到更新信号。这样能更快传播奖励,缓解长 horizon 的信用分配问题。

70. 请设计一个工具调用 Agent 的 Sarsa 式学习抽象,包括状态、动作、奖励、Q 值更新和探索策略。

一种设计:

S:
&nbsp; 用户目标、对话历史、已调用工具、工具返回结果、任务阶段、剩余预算

A:
&nbsp; 回复用户、追问、检索、调用某个工具、总结、升级人工、结束任务

R:
&nbsp; 任务成功 +10
&nbsp; 工具调用有效 +1
&nbsp; 无效调用 -1
&nbsp; 超预算 -3
&nbsp; 错误答案或安全违规 -10

policy:
&nbsp; epsilon-greedy over Q(S,A)

update:
&nbsp; Q(S,A) &lt;- Q(S,A) + alpha [R + gamma Q(S',A') - Q(S,A)]
其中 A' 必须是 Agent 在下一状态按当前 epsilon-greedy 策略实际选择的动作。优秀答案还应说明终止状态不 bootstrap,并指出状态需要包含工具结果和预算,否则不满足马尔可夫性。

            预览时标签不可点




































<div class="