传统策略梯度方法的目标是最大化累积奖励的期望值。具体来说,优化目标可以表示为:
max θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ] \max_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] θmaxJ(θ)=Eπ[t=0∑∞γtRt+1]
其中:
为了实现这个目标,策略梯度定理提供了策略性能的梯度的解析表达式:
∇ θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t ∇ θ log π θ ( a t ∣ s t ) ⋅ G t ] \nabla_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t\right] ∇θJ(θ)=Eπ[t=0∑∞γt∇θlogπθ(at∣st)⋅Gt]
其中:
G t = ∑ k = t ∞ γ k − t R k + 1 G_t = \sum_{k=t}^{\infty} \gamma^{k-t} R_{k+1} Gt=k=t∑∞γk−tRk+1
传统策略梯度方法(如REINFORCE算法)直接使用采样轨迹来估计策略梯度。具体更新规则为:
θ ← θ + α ∑ t = 0 T ∇ θ log π θ ( a t ∣ s t ) ⋅ G t \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θ←θ+αt=0∑T∇θlogπθ(at∣st)⋅Gt
其中:
问题分析:
传统策略梯度方法通常在每个数据批次上只进行一次更新。具体来说,每采样一条轨迹,就计算一次梯度并更新策略参数。这种单次更新的方式导致样本的利用效率较低。
问题分析:
PPO(Proximal Policy Optimization)通过以下两种主要机制解决了传统策略梯度方法的不稳定性和样本效率低下的问题:
PPO引入了一个剪切的目标函数,限制新策略与旧策略之间的概率比率。具体来说,PPO的目标函数为:
L C L I P ( θ ) = E t [ min ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[\min\left(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t\right)\right] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]
其中:
解决不稳定性的机制:
PPO允许在一个数据批次上进行多次更新。具体来说,PPO在采样一批数据后,可以多次使用这些数据进行更新,直到策略收敛。
解决样本效率低下的机制:
传统策略梯度方法(如REINFORCE算法)在训练过程中存在不稳定性和样本效率低下的问题,主要原因是:
PPO通过引入剪切机制和多次更新,解决了这些问题:
这些改进使得PPO在训练过程中更加稳定,样本效率更高,成为强化学习领域中一种常用的基准算法。