Week 7 - 学生练习

异策略控制 - Q-Learning (重点)

练习目标

  • 巩固对异策略 (Off-Policy) 学习概念的理解。
  • 掌握 Q-Learning 算法的更新规则及其与 SARSA 的核心区别。
  • 理解 Q-Learning 如何能够学习最优策略,即使行为策略不是最优的。
  • 通过分析 Lab 5 代码和结果,加深对 Q-Learning 算法及其与 SARSA 策略差异的理解。
  • 思考 Off-Policy 学习在实际应用中的优势。

练习内容

练习 1: Off-Policy 与 Q-Learning 概念

  1. Off-Policy 定义: 请用你自己的话解释什么是异策略 (Off-Policy) 学习。它与同策略 (On-Policy) 学习的主要区别在哪里?
  2. 行为策略 vs. 目标策略: 在 Q-Learning 中,行为策略 (μ) 和目标策略 (π) 通常分别是什么?哪个策略用于与环境交互?哪个策略体现在 Q 值的更新中?
  3. 核心区别 (Q-Learning vs. SARSA): Q-Learning 和 SARSA 的 TD 目标计算方式有何关键不同?这个不同如何体现了它们分别是 Off-Policy 和 On-Policy 的?
  4. 学习最优策略: 为什么 Q-Learning 能够学习到最优动作值函数 Q*,即使它的行为策略(如 ε-greedy)不是最优的?(提示:思考其更新规则中的 max 操作)

练习 2: Q-Learning 更新计算

假设我们正在使用 Q-Learning 算法。当前状态 S,根据 \(\epsilon\)-greedy 行为策略选择了动作 \(A\)。执行动作 \(A\) 后,获得奖励 \(R = 5\),并转移到下一个状态 \(S'\)

当前的 Q 值估计如下:

  • \(Q(S, A) = 10.0\)
  • 对于下一个状态 \(S'\),所有可能的下一个动作 \(a'\) 对应的 \(Q\) 值估计为:\(Q(S', a'_1) = 8.0, Q(S', a'_2) = 9.0, Q(S', a'_3) = 7.0\)

假设学习率 \(\alpha = 0.1\),折扣因子 \(\gamma = 0.9\)

请根据 Q-Learning 更新规则计算更新后的 \(Q(S, A)\) 的值: \(Q(S, A) \leftarrow Q(S, A) + \alpha [R + \gamma \max_{a'} Q(S', a') - Q(S, A)]\)

(请写出计算步骤和最终结果)

练习 3: Q-Learning Lab 代码与结果分析 (基于 Lab 5)

本练习基于讲义/Lab 5 中提供的 CliffWalking 环境和 Q-Learning 实现代码。

  1. 代码理解:
    • 请指出 Q-Learning 代码中,计算 TD 目标 (td_target) 的关键代码行。它与 SARSA 代码中计算 TD 目标的主要区别在哪里?
    • 在 Q-Learning 的主循环中,选择实际执行的动作 action 时,使用的是哪个策略?(是贪心策略还是 \(\epsilon\)-greedy 策略?)
  2. 策略对比思考 (结合 Lab 结果):
    • 回顾你在 Lab 5 中观察到的 Q-Learning 和 SARSA 在 CliffWalking 环境中学习到的最终策略路径。哪一个更倾向于走贴近悬崖的“最优”路径?哪一个更倾向于走远离悬崖的“安全”路径?
    • 请再次尝试解释造成这种策略差异的根本原因是什么?(提示:与 TD 目标的计算方式有关)
  3. 奖励曲线对比思考 (结合 Lab 结果):
    • 回顾 Q-Learning 和 SARSA 的奖励曲线。哪个算法的平均每回合奖励在训练过程中可能波动更大?为什么?(提示:考虑最优路径的风险和探索的影响)
    • 哪个算法学习到的最优策略(如果去掉探索,按贪心执行)理论上能获得更高的累积奖励?

练习 4: Off-Policy 优势讨论

  1. 利用历史数据: 假设你有一批很久以前由一个完全随机的策略在某个环境中收集的交互数据 (s, a, r, s’)。你认为 Q-Learning 能否利用这批数据来学习当前环境下的最优策略?SARSA 能否?请说明理由。
  2. 商业应用: 结合上一点的思考,请举例说明在哪些商业场景下,Off-Policy 学习(能够利用历史/他人数据)的特性可能特别有用?