理解策略梯度方法:从REINFORCE到PPO

今年2月的时候,导师突然告诉我Ron William离世了。他算是我导师的 a life time friend,关系很好,我做毕业论文的时候,他还来参与了论文的答辩。Ron是一个很友善的老头,和他在强化学习领域的影响力比起来,本人显得非常的低调,质朴。如果说Ron这个名字你很陌生,那么REINFORCE算法的你一定知道,对的,没错,Ron William就是那个paper的一作。

那之后,我一直就想写点什么,去回顾一下REINFORCE这个算法以及这个算法所开创的策略梯度学习,或是去单纯的纪念一下我和Ron的一面之缘。

引言

在强化学习中,策略梯度方法对于通过优化期望累积奖励直接学习最优策略至关重要。这些方法已经从最基础的REINFORCE算法发展到更复杂的方法,如信赖域策略优化(TRPO)和近端策略优化(PPO)。本文将探讨对数技巧的必要性、将轨迹积分转化为样本估计的方法,以及从REINFORCE到TRPO和PPO的演变过程。

对数技巧和样本估计

策略梯度方法的核心思想是通过优化策略参数来最大化期望奖励。然而,直接计算期望奖励的梯度通常是不可行的。这时对数技巧变得至关重要。通过使用对数技巧,我们可以将期望奖励的梯度表示为涉及策略对数概率梯度的期望:

\nabla_\theta J(\theta)=E_{\tau \sim \pi_\theta}[\nabla_\theta log\pi_\theta(\tau)R(\tau)]

其中,πθ 是由参数 θ 参数化的策略,τ 表示轨迹,R(τ) 是轨迹的累积奖励。

这一转化将轨迹上的积分转化为样本估计,可以使用蒙特卡罗方法来逼近。通过从策略中采样轨迹,我们可以计算梯度的无偏估计,并相应地更新策略参数。

从REINFORCE到TRPO

REINFORCE的局限性

REINFORCE算法虽然简单直观,但存在一些局限性。由于它依赖于样本估计,策略的更新可能具有较高的方差,导致学习过程不稳定且低效。此外,REINFORCE不能保证更新后的策略质量,因此难以确保每次更新都能改善策略。

TRPO的思想

为了解决这些局限性,信赖域策略优化(TRPO)被引入,它建立在Kakade和Langford(2002)的基础成果之上。这个结果为策略优化中的信赖域方法提供了理论依据,表明两个策略的期望折扣奖励之间的差异可以准确地表示为在新策略上估计但由旧策略计算的期望优势

TRPO的核心思想是通过从旧策略采样来估计这种差异,因为直接计算这种差异是困难的,因为我们不能从新策略采样。TRPO引入了一个代理目标,使用旧策略的样本来估计新策略的性能。这是通过确保更新的策略与先前的策略保持接近,即维持在一个“信赖域”内来实现的。TRPO中的关键优化问题可以表述为:

max_\theta \mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ \frac{\pi_\theta(\tau)}{\pi_{\theta_{\text{old}}}(\tau)} R(\tau) \right]

\mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ D_{KL}(\pi_{\theta_{\text{old}}} \| \pi_\theta) \right] \leq \delta

这一约束确保策略更新不会显著偏离先前的策略,从而提供更稳定和可靠的学习过程。TRPO的研究结果表明,只要新策略和旧策略足够接近,用在旧策略上计算的期望优势替代在新策略上的计算是可行的

有趣的是,TRPO最初尝试直接用KL惩罚进行优化。然而,这种方法被发现过于严格,导致作者放弃并改用直接优化,这显著增加了算法的复杂性。但是后来,在PPO中,作者发现了更灵活的KL惩罚项,从而又回归到了最初的形式之上。

TRPO和REINFORCE的关系

TRPO的本质和REINFORCE是相同的,都是想计算一个梯度更新的方向\Delta\theta,所以实际上目标函数有没有被定义成importance sample的形式并不影响算法的实现。这是因为即使我们采用最直接的优化目标J(\theta)= \mathbb{E}_{\tau \sim \pi_{\theta}} \left[ R(\tau) \right],它在\theta_{\text{old}}上的取值依然是0,而真正出现在算法实现中的是它的梯度,但是由于数学上用importance sample的形式和不用的形式其实是等价的,所以必然梯度的表达形式是唯一的,也就是REINFORCE中的那种形式。另一方面,当我们用采样去估计梯度的时候,必然只能在\pi_{\theta_{\text{old}}}上去做,因为我们本来就是要计算当前点的梯度。其本质就是用Taylor一阶展开去近似原来的目标函数。

从TRPO到PPO

用PPO简化TRPO

虽然TRPO为策略优化提供了一个强有力的框架,但它涉及求解一个约束优化问题,这可能在计算上昂贵且复杂。近端策略优化(PPO)通过使用一个裁剪的代理目标来简化这一过程,该目标近似于信赖域约束,而不需要复杂的优化过程:

\mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ \min \left( r(\theta) \hat{A}, \text{clip}(r(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A} \right) \right]

其中r(θ)是概率比率,A是优势估计。剪辑函数确保策略的更新不会偏离太多,有效地保持了信赖域的行为。

需要指出的是,PPO必然要用importance sampling,这点和TRPO有所不同。这是因为,不论是TRPO还是REINFORCE,每次都只会在梯度上更新一步,然后重新sample。但是PPO是支持连续更新的,也就是要求可以用类似Adam这样的优化器去不断的更新策略,直到找到一个局部最优解。在这一过程中,我们是不可能每更新一次就重新再sample一遍,所以用importance sampling就是保证在这个优化过程中保持用初始梯度

结论

从REINFORCE到TRPO和PPO的演变代表了策略梯度方法的重大进步。通过解决REINFORCE中高方差和不稳定的问题,TRPO引入了一种方法来确保策略更新保持在信赖域内,从而基于Kakade和Langford的基础成果提供更可靠的改进。PPO进一步简化了这种方法,使其在实际应用中更易于访问和高效。PPO中灵活的KL惩罚版本展示了策略梯度方法的迭代改进如何导致稳健和高效的算法。这些方法共同构成了现代强化学习的坚实基础,使得开发复杂和有效的策略成为可能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值