重要性采样

强化学习中策略优化的核心目标函数之一,写作:

\[\mathbb{E}_{\tau \sim P_\theta(\tau)}[R(\tau)] = \sum_{\tau} R(\tau) P_\theta(\tau) \]

含义逐个解释:

  • \(\tau\):表示一个完整的轨迹(trajectory),即从开始状态一路走到终止状态的状态-动作序列:

    \[\tau = (s_0, a_0, s_1, a_1, \dots, s_T) \]

  • \(R(\tau)\):该轨迹 \(\tau\) 所获得的总奖励(Return),也可以写作:

    \[R(\tau) = \sum_{t=0}^{T} \gamma^t r_t \]

  • \(P_\theta(\tau)\):轨迹 \(\tau\) 的发生概率,这取决于策略 \(\pi_\theta\)(由参数 \(\theta\) 控制):

    \[P_\theta(\tau) = \rho(s_0) \prod_{t=0}^{T} \pi_\theta(a_t|s_t) P(s_{t+1}|s_t, a_t) \]

    其中:

    • \(\rho(s_0)\) 是初始状态分布
    • \(\pi_\theta(a_t|s_t)\) 是策略函数(决定动作的概率)
    • \(P(s_{t+1}|s_t, a_t)\) 是环境的状态转移概率

这个期望表示我们想要:

最大化策略参数 \(\theta\) 下,所有可能轨迹的总期望奖励

即:

\[\theta^* = \arg\max_\theta \mathbb{E}_{\tau \sim P_\theta(\tau)}[R(\tau)] \]

这就是所有策略梯度方法(包括 PPO)的根本目标:学一个策略能让预期总奖励最大化。


PPO 与这个公式的关系:

PPO 是这个期望目标的一个近似优化方法,它不直接优化这个期望,因为:

  • 轨迹数量太多,无法穷举 \(\sum_\tau\)
  • 环境转移概率 \(P(s_{t+1}|s_t, a_t)\) 不可知
  • 所以改用采样(采样轨迹),结合策略梯度估计

优化目标 |

如需我继续推导这一步如何变成 PPO 的目标函数(比如用 likelihood ratio 重新表达),可以接着往下讲。

重要性采样(Importance Sampling)是 TRPO 中一个关键的概念,用于在旧策略 \((\pi_{\theta})\) 生成的数据上估计新策略 \((\pi_{\theta'})\) 的性能。让我们详细解释一下这个公式:

\[ \mathbb{E}_{\tau \sim p_{\theta'}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] = \mathbb{E}_{\tau \sim p_{\theta}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t \frac{\pi_{\theta'}(a_t|s_t)}{\pi_{\theta}(a_t|s_t)} A_{\pi_{\theta}}(s_t, a_t) \right] \]

第一步: 对$\theta$ 求偏导

\[\nabla \sum_{\tau} R(\tau) P_\theta(\tau) = \sum_{\tau} R(\tau) \nabla P_\theta(\tau) \]

第二步(乘除同一个项)

\[\sum_{\tau} R(\tau) \nabla P_\theta(\tau) = \sum_{\tau} R(\tau) \nabla P_\theta(\tau) \cdot \frac{P_\theta(\tau)}{P_\theta(\tau)} \]

第三步(换位置):

\[= \sum_{\tau} P_\theta(\tau) R(\tau) \cdot \frac{\nabla P_\theta(\tau)}{P_\theta(\tau)} \]

第四步(得到了关键形式):

通过恒等式

\[\nabla \log f(x) = \frac{\nabla f(x)}{f(x)} \]

得到

\[= \sum_{\tau} P_\theta(\tau) R(\tau) \nabla \log P_\theta(\tau) \]

第五步(采样近似):

\[\approx \frac{1}{N} \sum_{n=1}^{N} R(\tau^n) \nabla \log P_\theta(\tau^n) \]

意思是:用 \(N\) 条轨迹样本来估计这个期望(Monte Carlo)。

1. 重要性采样的基本思想

重要性采样的核心思想是在一个分布 \((p(x))\) 下估计另一个分布 \((q(x))\) 的期望值。具体来说,如果我们想计算 \((f(x))\) 在分布 \((p(x))\) 下的期望值:

\[\mathbb{E}_{x \sim p(x)}[f(x)] \]

但直接从 \((p(x))\) 中采样可能比较困难或效率低下,我们可以利用另一个更容易采样的分布 \((q(x))\) 来进行估计。根据重要性采样的原理,我们有:

\[\mathbb{E}_{x \sim p(x)}[f(x)] = \int p(x) f(x) dx = \int q(x) \cdot \frac{p(x)}{q(x)} f(x) dx = \mathbb{E}_{x \sim q(x)} \left[ \frac{p(x)}{q(x)} f(x) \right] \]

这里的 \((\frac{p(x)}{q(x)})\) 称为重要性权重(Importance Weight)。

2. 应用到 TRPO 中

在 TRPO 的上下文中,我们希望估计新策略 (\pi_{\theta'}) 下的期望优势函数:

\[ \mathbb{E}_{\tau \sim p_{\theta'}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] \]

但是,直接从新策略 \((\pi_{\theta'})\) 生成数据来计算这个期望值可能是不现实的,因为新策略还没有被完全定义或优化。因此,我们利用旧策略 \((\pi_{\theta})\) 生成的数据来进行估计。

3. 重要性权重的推导

根据重要性采样的原理,我们有:

\[ \mathbb{E}_{\tau \sim p_{\theta'}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] = \mathbb{E}_{\tau \sim p_{\theta}(\tau)} \left[ \frac{p_{\theta'}(\tau)}{p_{\theta}(\tau)} \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] \]

这里 \((\frac{p_{\theta'}(\tau)}{p_{\theta}(\tau)})\) 是轨迹 \((\tau)\) 在新策略和旧策略下的概率比。

4. 简化重要性权重

对于每个时间步 \((t)\),轨迹 \((\tau)\) 的概率可以表示为:

\[p_{\theta}(\tau) = p(s_0) \prod_{t=0}^{\infty} \pi_{\theta}(a_t|s_t) p(s_{t+1}|s_t, a_t) \]

因此,重要性权重可以简化为:

\[\frac{p_{\theta'}(\tau)}{p_{\theta}(\tau)} = \prod_{t=0}^{\infty} \frac{\pi_{\theta'}(a_t|s_t)}{\pi_{\theta}(a_t|s_t)} \]

5. 最终形式

将简化的重要性权重代入,我们得到:

\[ \mathbb{E}_{\tau \sim p_{\theta'}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] = \mathbb{E}_{\tau \sim p_{\theta}(\tau)} \left[ \prod_{t=0}^{\infty} \frac{\pi_{\theta'}(a_t|s_t)}{\pi_{\theta}(a_t|s_t)} \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] \]

在实际应用中,为了简化计算,我们通常只考虑当前时间步的重要性权重,即:

\[ \mathbb{E}_{\tau \sim p_{\theta'}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t A_{\pi_{\theta}}(s_t, a_t) \right] \approx \mathbb{E}_{\tau \sim p_{\theta}(\tau)} \left[ \sum_{t=0}^{\infty} \gamma^t \frac{\pi_{\theta'}(a_t|s_t)}{\pi_{\theta}(a_t|s_t)} A_{\pi_{\theta}}(s_t, a_t) \right] \]

6. 总结

重要性采样允许我们在旧策略 \((\pi_{\theta})\) 生成的数据上估计新策略 \((\pi_{\theta'})\) 的性能,而不需要直接从新策略中采样。这不仅提高了数据利用率,还简化了优化过程。具体来说:

  • 重要性权重:$(\frac{\pi_{\theta'}(a_t|s_t)}{\pi_{\theta}(a_t|s_t)}) $表示在状态 $(s_t) $ 下,新策略选择动作 \((a_t)\) 的概率与旧策略选择该动作的概率比。
  • 期望值的估计:通过在旧策略生成的数据上加权求和,我们可以有效地估计新策略下的期望优势函数。

这种技术在强化学习中非常有用,特别是在策略迭代算法中,它可以帮助我们更高效地利用已有数据进行策略优化。

posted @ 2025-04-20 15:12  不报异常的空指针  阅读(220)  评论(0)    收藏  举报