蒙特卡洛策略评估(Monte Carlo Policy Evaluation)的原理与计算过程
字数 1781 2025-11-06 12:40:14

蒙特卡洛策略评估(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\) 是首次出现在该回合中:
      • 增量更新计数:

\[ 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. 优缺点分析

  • 优点
    • 无需环境模型,适用于复杂或未知模型的问题。
    • 对每个状态的估计相互独立,避免自举误差。
  • 缺点
    • 需要完整回合,不适用于片段式任务或无限长回合。
    • 方差较高(因依赖随机采样)。

通过以上步骤,蒙特卡洛策略评估能逐步逼近真实值函数,为策略改进(如蒙特卡洛控制)奠定基础。

蒙特卡洛策略评估(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\) 是首次出现在该回合中: 增量更新计数: \[ 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. 优缺点分析 优点 : 无需环境模型,适用于复杂或未知模型的问题。 对每个状态的估计相互独立,避免自举误差。 缺点 : 需要完整回合,不适用于片段式任务或无限长回合。 方差较高(因依赖随机采样)。 通过以上步骤,蒙特卡洛策略评估能逐步逼近真实值函数,为策略改进(如蒙特卡洛控制)奠定基础。