蒙特卡洛策略评估(Monte Carlo Policy Evaluation)的原理与计算过程
题目描述
蒙特卡洛策略评估是强化学习中一种基于采样的方法,用于估计给定策略的状态值函数(或动作值函数)。其核心思想是通过与环境交互生成完整的回合(episode),利用回合中观察到的回报(return)来更新值函数的估计。与动态规划不同,蒙特卡洛方法无需知道环境模型(状态转移概率和奖励函数),直接依赖经验数据。
解题过程详解
1. 问题定义与目标
- 输入:
- 策略 \(\pi(a|s)\)(待评估的策略)。
- 多组完整回合数据,每个回合包含状态、动作、奖励序列:
\[ (S_0, A_0, R_1, S_1, A_1, R_2, \dots, S_T) \]
- 输出:状态值函数 \(V^\pi(s)\) 的估计,即从状态 \(s\) 开始遵循策略 \(\pi\) 的期望累积回报。
2. 核心概念:回报计算
- 累积回报 \(G_t\) 是从时刻 \(t\) 开始的折扣奖励和:
\[ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots \]
其中 \(\gamma \in [0,1]\) 是折扣因子。
- 目标是通过采样逼近真实值:
\[ V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s] \]
3. 首次访问蒙特卡洛 vs. 每次访问蒙特卡洛
-
首次访问蒙特卡洛:
- 对每个回合,仅当状态 \(s\) 第一次出现时,计算该位置的回报 \(G_t\),并用于更新 \(V(s)\)。
- 例如,回合序列为 \(s_1, s_2, s_1, s_3\),则仅使用第一个 \(s_1\) 对应的回报。
-
每次访问蒙特卡洛:
- 对回合中每次出现状态 \(s\),都计算对应的 \(G_t\) 并更新 \(V(s)\)。
4. 算法步骤(以首次访问蒙特卡洛为例)
步骤1:初始化
- 初始化值函数估计 \(V(s)\) 为任意值(如0)。
- 初始化计数器 \(N(s)\) 记录状态 \(s\) 被访问的次数。
步骤2:生成回合
- 使用策略 \(\pi\) 与环境交互,生成一个完整回合(直到终止状态)。
步骤3:计算回报
- 从回合末尾反向计算每个时刻的 \(G_t\):
\[ G_t = R_{t+1} + \gamma G_{t+1} \]
初始 \(G_T = 0\)(若回合在 \(T\) 步终止)。
步骤4:更新值函数
- 遍历回合中的每个状态 \(S_t\):
- 若 \(S_t\) 是首次出现在该回合中:
- 增量更新计数:
- 若 \(S_t\) 是首次出现在该回合中:
\[ N(S_t) \leftarrow N(S_t) + 1 \]
- 增量更新值函数:
\[ V(S_t) \leftarrow V(S_t) + \frac{1}{N(S_t)} \left[ G_t - V(S_t) \right] \]
步骤5:重复
- 重复步骤2-4,直到值函数收敛(如 \(V(s)\) 变化小于阈值)。
5. 关键细节与优化
- 增量更新公式推导:
假设已有 \(n-1\) 个样本的均值 \(V_{n-1}(s)\),新增样本 \(G_n\) 时:
\[ V_n(s) = \frac{(n-1)V_{n-1}(s) + G_n}{n} = V_{n-1}(s) + \frac{1}{n} \left[ G_n - V_{n-1}(s) \right] \]
- 非平稳环境处理:
若策略或环境变化,可使用固定步长 \(\alpha\) 替代 \(\frac{1}{N(s)}\):
\[ V(S_t) \leftarrow V(S_t) + \alpha \left[ G_t - V(S_t) \right] \]
6. 优缺点分析
- 优点:
- 无需环境模型,适用于复杂或未知模型的问题。
- 对每个状态的估计相互独立,避免自举误差。
- 缺点:
- 需要完整回合,不适用于片段式任务或无限长回合。
- 方差较高(因依赖随机采样)。
通过以上步骤,蒙特卡洛策略评估能逐步逼近真实值函数,为策略改进(如蒙特卡洛控制)奠定基础。