第5章 近端策略优化(PPO)算法

On-Policy与Off-Policy

  • 同策略(On-Policy):学习的Agent和与环境互动的Agent是同一个
  • 异策略(Off-Policy):学习的Agent和与环境互动的Agent非同一个
  • 策略梯度(Policy Gradient,PG)是On-Policy算法
  • PG会花很多时间来采样数据,而采样的数据只用一次
  • On-Policy→Off-Policy:使用另一个Actor的Policy \theta'与环境进行互动,而\theta可多次使用\theta'采集到的数据进行梯度提升
  • 近端策略优化(Proximal Policy Optimization,PPO)是PG 的一个变形

重要性采样(Importance Sampling,IS)

  • 假设不能从p分布中采样数据,希望从另一个分布q采样,通过重要性权重(importance weight)\frac{p(x)}{q(x)}p(x)除以q(x)要有意义)来修正两个分布的差异:
    \begin{split} E_{x \sim p}[f(x)] &= \int f(x)p(x)dx \\ &= \int f(x) \frac{p(x)}{q(x)}dx \\ &= E_{x \sim q}[f(x)\frac{p(x)}{q(x)}] \end{split}
  • p分布与q分布不能差太多。由上式和方差公式\textit{Var}[X]=E[X^2]-(E[X])^2计算它们的方差:
    \begin{split} \textit{Var}_{x \sim p}[f(x)] &= E_{x \sim p}[f(x)^2] - (E_{x \sim p}[f(x)])^2 \\ \textit{Var}_{x \sim q}\left[f(x)\frac{p(x)}{q(x)}\right] &= E_{x \sim q}\left[\left(f(x)\frac{p(x)}{q(x)}\right)^2\right] - \left(E_{x \sim q}\left[f(x)\frac{p(x)}{q(x)}\right]\right)^2 \\ &= \int \left(f(x)\frac{p(x)}{q(x)}\right)^2 q(x)dx - E_{x \sim p}[f(x)] \\ &= \int \left(f^2(x)\frac{p(x)}{q(x)}\right)p(x)dx - E_{x \sim p}[f(x)] \\ &= E_{x \sim p}\left[f^2(x)\frac{p(x)}{q(x)}\right] - E_{x \sim p}[f(x)] \\ \end{split}
  • 采样次数不够多,E_{x \sim p}[f(x)2]E_{x \sim q}[f(x)\frac{p(x)}{q(x)}]可能由很大差距

从On-Policy到Off-Policy

  • 采用固定参数\theta'的Policy来与环境互动,采样数据
  • 策略梯度:
    \begin{split} &E_{(s_t,a_t) \sim \pi_\theta}[A^\theta(s_t,a_t) \nabla \log p_\theta(a_t^n|s_t^n)] \\ =& E_{(s_t,a_t) \sim \pi_{\theta'}}\left[\frac{p_\theta(s_t,a_t)}{p_{\theta'}(s_t,a_t)}A^{\theta'}(s_t,a_t) \nabla \log p_\theta(a_t^n|s_t^n)\right] \\ =& E_{(s_t,a_t) \sim \pi_{\theta'}}\left[\frac{p_\theta(a_t|s_t)p_\theta(s_t)}{p_{\theta'}(a_t|s_t)p_{\theta'}(s_t)}A^{\theta'}(s_t,a_t) \nabla \log p_\theta(a_t^n|s_t^n)\right] \\ =& E_{(s_t,a_t) \sim \pi_{\theta'}}\left[\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t)}A^{\theta'}(s_t,a_t) \nabla \log p_\theta(a_t^n|s_t^n)\right] \end{split}
  • 假设p_\theta(s_t)p_{\theta'}(s_t)差不多?

近端策略优化(Proximal Policy Optimization,PPO)

  • 信任区域策略优化(Trust Region Policy Optimization,TRPO)
    J_{\textit{TRPO}}^{\theta'} = E_{(s_t,a_t) \sim \pi_{\theta'}}\left[\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t)}A^{\theta'}(s_t,a_t)\right], KL(\theta, \theta')<\delta
  • KL散度:行为距离(Behavior Distance)
  • PPO-Penalty(PPO1)
    \begin{split} J_{PPO1}^{\theta^k} &= J^{\theta^k}(\theta) - \beta \cdot KL(\theta, \theta^k) \\ J^{\theta^k}(\theta) &\approx \sum_{(s_t,a_t)}\frac{p_\theta (a_t|s_t)}{p_{\theta^k}(a_t|s_t)}A^{\theta^k}(s_t,a_t) \end{split}
    • PPO1把KL散度放到约束项中
    • \beta可以动态调整(Adaptive KL Penalty)
  • PPO-Clip(PPO2)


    PPO-Clip
    • 当A>0时,state-action是相对好的,希望增加这个state-action的概率,但不能使\frac{p_\theta (a_t|s_t)}{p_{\theta^k}(a_t|s_t)}太大,限制其比例不大于1+\epsilon
    • 当A<0时,state-action是相对差的,希望减少这个state-action的概率,但不能使\frac{p_\theta (a_t|s_t)}{p_{\theta^k}(a_t|s_t)}太小,限制其比例不小于1-\epsilon
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容