背景
强化学习(Reinforcement Learning, RL)是机器学习的一个重要分支,在自动驾驶、机器人控制、游戏智能体等领域取得了广泛应用。深度强化学习(Deep Reinforcement Learning, DRL)结合了深度学习的强大特性,使得智能体能够在复杂环境中学习并优化决策策略。
在策略梯度(Policy Gradient)方法中,传统的策略优化算法,如TRPO(Trust Region Policy Optimization),尽管保证了策略更新的稳定性,但计算复杂度较高,难以在大规模任务中高效应用。为了解决这一问题,OpenAI 提出了PPO(Proximal Policy Optimization)算法,它在保持策略优化稳定性的同时,极大地降低了计算开销,使得强化学习的训练更加高效。
PPO算法的动机
PPO的主要目标是改进策略梯度方法的稳定性和效率。其主要动机包括:
- 避免策略更新过大:在策略梯度方法中,如果策略更新过大,智能体的行为可能会发生剧烈变化,导致训练不稳定,甚至使得策略陷入局部最优或者完全失效。PPO通过引入裁剪机制(Clipping)或KL散度惩罚,确保策略更新不会超出合理范围,从而保持训练的稳定性。
- 降低计算开销:TRPO通过二阶优化方法来控制策略更新的步长,虽然能有效地约束策略变化,但计算开销较大,尤其是在高维状态和动作空间下,训练成本难以承受。PPO采用了一种更简单的近似方法,即使用裁剪函数或KL散度正则项,避免了二阶优化的复杂性,使得训练更加高效。
- 提高采样效率:在强化学习中,样本的获取通常是昂贵的,因此提高采样效率至关重要。相比于TRPO每次更新策略都需要严格满足信赖域约束,PPO能够更好地利用旧策略的数据进行多次更新,提高数据利用率,减少对新样本的依赖,从而加快训练速度。
TRPO算法介绍
TRPO(Trust Region Policy Optimization)是一种基于策略梯度的方法,旨在通过约束策略更新的幅度来提高训练的稳定性。其核心思想是,在策略更新时,限制新旧策略之间的KL散度,使得每次更新不会导致策略变化过大。
TRPO的优化目标如下:
max θ E t [ π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t ] \max_\theta \mathbb{E}_t \left[ \frac{\pi_\theta(a_t | s_t)}{\pi_{\theta_{old}}(a_t | s_t)} A_t \right] θmaxEt[πθold(at∣st)πθ(at∣st)At]
其中:
- π θ ( a t ∣ s t ) \pi_\theta(a_t | s_t) πθ(at∣st) 是当前策略。
- π θ o l d ( a t ∣ s t ) \pi_{\theta_{old}}(a_t | s_t) πθold(at∣st) 是旧策略。
- A t A_t At 是优势函数。
约束条件:
D K L ( π θ ∣ ∣ π θ o l d ) ≤ δ D_{KL} (\pi_\theta || \pi_{\theta_{old}}) \leq \delta DKL(πθ∣∣πθold)≤δ
其中 δ \delta δ 是一个超参数,用于控制策略变化的幅度。
PPO算法介绍
PPO有两种主要的变体:
- PPO-Clip:通过引入一个裁剪(Clipping)机制限制策略更新的幅度。
- PPO-Penalty:在目标函数中加入一个额外的KL散度(Kullback-Leibler divergence)惩罚项。
在PPO-Clip中,策略更新的核心目标函数如下:
L ( θ ) = E t [ min ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L(\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] L(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]
其中:
- r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t | s_t)}{\pi_{\theta_{old}}(a_t | s_t)} rt(θ)=πθold(at∣st)πθ(at∣st) 表示新的策略与旧策略的概率比值。
- A t A_t At 是优势函数(Advantage Function),用于衡量当前动作相较于平均策略的收益。
- ϵ \epsilon ϵ 是一个超参数,控制策略更新的范围。
当 ϵ = 0.2 \epsilon=0.2 ϵ=0.2,上图分别展示了 A t > 0 A_t > 0 At>0 和 A t < 0 A_t < 0 At<0 时 L ( θ ) L(\theta) L(θ) 随 r t ( θ ) r_t(\theta) rt(θ) 的变化图像(核心思想是定一个优化限度)。
通过裁剪,PPO有效地限制了策略更新的幅度,避免了策略变化过大导致的训练不稳定问题。