Skip to content

为什么 PPO 需要重要性采样而 DDPG 不需要 ​

1. PPO 视角 ​

在 TRPO 和 PPO 这类算法中,为了计算目标函数的梯度 J(π~),需要计算关于更新策略 π~(a∣s) 的期望。这时 s∼ρπ 而 a∼π~,那么对于每一个从 ρπ 采样得到的状态,为了利用蒙特卡洛法估计 Ea∼π~[Aπ(s,a)],需要对 a∼π~(a∣s) 进行大量采样并计算 Aπ(s,a),且对 π~ 更新一次后便需要重新采样计算。这样做对数据的利用非常低效,且方差会很大。

所以我们转而使用重要性采样(Importance Sampling),将其转化为对更新前策略 π(a∣s) 的期望:

Es∼ρπ,a∼π~[Aπ(s,a)]=Es∼ρπ,a∼π[π~(a∣s)π(a∣s)Aπ(s,a)].

如此一来,s∼ρπ,a∼π,那么 π 与环境交互所得的状态和动作服从上述分布,可以直接用于估计:

Es∼ρπ,a∼π[π~(a∣s)π(a∣s)Aπ(s,a)].

这样对数据的利用高效很多,不过依然容易出现估计方差过大的问题。PPO 中通过对重要性采样系数(importance sampling ratio)π~(a∣s)π(a∣s) 的 clip 操作,使得估计的方差得到有效控制。

2. DDPG 视角 ​

DDPG(Timothy et al., 2015)算法的核心是 DPG(Silver et al., 2014)原论文中推导出的 off-policy 版确定性策略梯度定理。此定理与策略梯度定理最大的区别在于:一方面,用于更新当前策略 μ 的 (s,a) 分布服从行为策略 β;另一方面,策略 μ 是确定性策略。该定理的目标函数如下:

Jβ(μθ)=Es∼ρβVμ(s)=∫Sρβ(s)Vμ(s)ds=∫Sρβ(s)Qμ(s,μθ(s))ds.

注:此处目标函数定义为 Es∼ρβVμ(s) 而不是 Es∼ρβρμρβVμ(s),其原因可以参考 2012 年提出的首个 off-policy Actor-Critic 算法:The Off-Policy Actor-Critic algorithm(Degris et al., 2012b)。

有了目标函数后,对策略 μ 的参数 θ 求梯度便可得到 off-policy 版的确定性策略梯度定理:

∇θJβ(μθ)=∫Sρβ(s)(∇θμθ(s)∇aQμθ(s,a)+∇θQμθ(s,a))|a=μ(s)ds≈∫Sρβ(s)∇θμθ(s)∇aQμθ(s,a)ds=Es∼ρβ[∇θμθ(s)∇aQμθ(s,a)|a=μ(s)].

上文公式中近似的合理性,在 DPG 原文中是这样描述的:

Analogous to the stochastic case, we have dropped a term that depends on ∇θQμθ(s,a); justification similar to Degris et al. (2012b) can be made in support of this approximation.

在 Degris et al. (2012b) 一文中,作者对 off-policy 版随机性策略梯度定理的这一步近似进行了严谨证明,且定量分析得出这样的近似效果并不差。但是,上述说法对于确定性策略是否还成立,DPG 作者并未给出严谨证明,目前是一个比较模糊的状态。不过原文中证明了在某些条件下:确定性策略等价于方差趋于零的随机性策略,因此在实践中也就暂且认同这个结论。

总结 ​

所以对于本小节提出的问题,一句话总结就是:DDPG 目标函数梯度计算公式中不存在对动作的积分,所以即使作为 off-policy 算法,也不需要使用重要性采样。

Maintained by Robin