Week 4 - 学生练习

练习目标

  • 理解无模型预测的基本概念。
  • 掌握蒙特卡洛 (MC) 预测的核心思想和流程。
  • 区分首次访问 (First-Visit) 和每次访问 (Every-Visit) MC。
  • 练习从回合数据中计算回报 \(G_t\)
  • 通过修改和运行代码,加深对 MC 算法评估 \(V_{\pi}\) 的理解。
  • 思考 MC 方法的优缺点及其适用场景。

练习内容

练习 1: MC 概念理解

  1. 无模型: 为什么蒙特卡洛 (MC) 方法被称为“无模型”方法?它与需要模型的动态规划 (DP) 方法(如值迭代)的主要区别是什么?
  2. 核心思想: 请用你自己的话简述蒙特卡洛预测的核心思想。(提示:与大数定律和样本均值有关)
  3. 首次 vs. 每次: 假设在一个回合中,状态 \(S_3\) 按以下顺序出现:\(S_1 \rightarrow S_2 \rightarrow S_3 \rightarrow S_4 \rightarrow S_3 \rightarrow S_5\) (结束)。
    • 如果使用首次访问 MC 评估 \(V_{\pi}(S_3)\),你会使用哪个时刻的回报 \(G_t\) 来更新 \(V(S_3)\)
    • 如果使用每次访问 MC 评估 \(V_{\pi}(S_3)\),你会使用哪些时刻的回报 \(G_t\) 来更新 \(V(S_3)\)

练习 2: 计算蒙特卡洛回报

沿用上周练习 3 的奖励序列:\(R_1 = -1, R_2 = -1, R_3 = -1, R_4 = 10\) (回合结束)。假设折扣因子 \(\gamma = 0.9\)

请计算以下蒙特卡洛回报:

  • \(G_0 = R_1 + \gamma R_2 + \gamma^2 R_3 + \gamma^3 R_4 = ?\)
  • \(G_1 = R_2 + \gamma R_3 + \gamma^2 R_4 = ?\)
  • \(G_2 = R_3 + \gamma R_4 = ?\)
  • \(G_3 = R_4 = ?\)

(请写出计算过程和结果,保留两位小数)

练习 3: Blackjack MC 预测代码理解与修改

本练习基于讲义/Lab 2 中提供的 Blackjack 环境 MC 预测代码 (评估 \(V_{\pi}\))。

  1. 代码定位:
    • 请指出代码中哪部分是用于生成一个完整回合的?
    • 请指出代码中哪部分是用于计算回报 \(G_t\) 的?(提示:循环是从后往前的)
    • 请指出代码中首次访问 MC 的判断逻辑在哪里?
    • 请指出代码中更新状态价值 \(V(s)\) 的那一行?
  2. 策略修改与运行:
    • 将代码中的 simple_policy 修改为一个更保守的策略,例如:“只要玩家点数小于 15 就一直要牌 (hit),否则停牌 (stick)”。
    • 重新运行修改后的代码(回合数 num_episodes 可以适当减少,例如设为 100000 或 50000,以便更快看到结果)。
    • 粘贴结果: 将修改后的 simple_policy 函数代码和你运行代码后生成的价值函数可视化图粘贴到你的答案中。
  3. 结果对比思考: 对比你运行得到的价值函数图与讲义中原始策略(小于 20 hit)的价值函数图(或者你上次实验的结果),你观察到哪些主要差异?为什么策略变得更保守会导致价值函数发生这样的变化?

练习 4: MC 方法优缺点讨论

根据本周所学和你的实验体会,请简述蒙特卡洛 (MC) 预测方法的主要优点和缺点各至少两点,并思考:对于一个需要实时做出决策的商业应用(例如,根据当前市场波动调整股票交易策略),MC 方法是否适用?为什么?

提交要求

  • 请将你的答案整理成一个文档(如 Word, PDF, 或 Markdown 文件)。
  • 对于练习 1, 2, 4,请清晰地回答问题并阐述理由。
  • 对于练习 3,请粘贴修改后的策略代码和生成的价值函数图,并进行对比思考。
  • 文件命名格式:姓名_学号_Week4_Exercise.xxx
  • 通过教学平台提交。