强化学习PPO:Proximal Policy Optimization Algorithms解读

PPO算法是一类Policy Gradient强化学习方法,经典的Policy Gradient通过一个参数化决策模型\pi(a|s,\theta )来根据状态s确定动作,其参数更新是通过下式进行的:

\theta_{t+1} = \theta_{t} + \alpha \partial_{\theta_{t}} J(\theta_t)

J(\theta_t)用于衡量决策模型的优劣目标,决策模型的优化目标为寻找最优决策,使得该决策下整体价值最大。

\text{max}_{\pi}\ J(\theta) = E_{s,a\sim \pi}[\pi(a|s,\theta)Q_{\pi}(s,a)]

 因为最优决策\pi是未知的,一种简单思路是直接当前参数模型\pi_\theta进行寻优。称为Vanilla Policy Gradient。

1. Vanilla Policy Gradient

Vanilla Policy Gradient定义优化目标为:

\text{max}_{\theta }\ J(\theta) \\= E_{s,a\sim {\pi_{\theta }}}[\pi(a|s,\theta)A(s,a)]\\=\sum_\tau \sum_{t=0}^T \sum_a\pi(a|s_t,\theta)A(s_t,a)

  • \tau表示一轮episode,t表示episode中的某个时刻,T表示一轮episode的终态。
  • A(s_t,a_t)=Q(s_t,a_t)-v(s_t|w)=G(s_t,a_t)-v(s_t|w)称为Advantages estimates,其在原来预估Q(s_t,a_t)基础上减去了平均状态价值估计v(s_t|w),这么做好处是扭正不同状态价值间偏差,可以加快模型收敛,具体可以参考这篇

梯度计算式子:

\partial J(\theta) \\ =\sum_\tau \sum_{t=0}^T \sum_a\partial_{\theta}\pi(a|s_t,\theta)A(s_t,a) \\=\sum_\tau \sum_{t=0}^T \sum_a \pi(a|s_t,\theta) A(s_t,a) \frac{\partial_{\theta}\pi(a|s_t,\theta)}{\pi(a|s_t,\theta)} \\\doteq \sum_\tau \sum_{t=0}^T A(s_t,a_t) \frac{\partial_{\theta}\pi(a_t|s_t,\theta)}{\pi(a_t|s_t,\theta)} \\=\sum_\tau \sum_{t=0}^T \sum_a \pi(a|s_t,\theta) A(s_t,a) \frac{\partial_{\theta}\pi(a|s_t,\theta)}{\pi(a|s_t,\theta)} \\\doteq \sum_\tau \sum_{t=0}^T A(s_t,a_t) \partial_{\theta}\text{In}(\pi(a_t|s_t,\theta))

参数更新式子:

\theta_{t+1}=\theta + \alpha\partial_{\theta} J(\theta_t)

此外平均状态价值估计v(s_t|w)通过VE损失进行优化,其同Policy Gradient更新按照AC的框架进行两步迭代更新。

2. Trust Region Policy Optimization

前面我们所提到的Vanilla Policy Gradient算法是将训练分为多个epoch,每个epoch会根据当前决策模型采样多个episode组合成一个batch,并在该epoch中针对于该batch进行多轮训练。

由于该轮epoch的训练数据是根据上轮epoch的模型进行采样的,此时就可能出现更新的决策模型同采样决策模型不一致,这个不一致同off-policy所带来的问题是类似的,可能会导致模型训练有偏差。

虽然Vanilla Policy Gradient算法是on-policy的,但是由于对batch进行多轮训练,在实际上造成了target policy和behavior policy不一致的问题。因此Trust Region Policy Optimization(TRPO)根据off-policy在原来优化目标上添加了重要性采样。

J(\theta) = E_{s,a\sim {\pi_{\theta^k }}}[\frac{\pi(a|s,\theta)}{\pi(a|s,\theta^k)}A^{\theta^k}(s,a)]

上式中的\theta^k表示上轮模型参数,同时为了避免target policy \pi(a|s,\theta )和behavior policy\pi(a|s,\theta^k )变化太大,导致优化目标方差增大,因此还需要通过KL散度约束\pi(a|s,\theta )相比于\pi(a|s,\theta^k )变动不大,其约束了\pi(a|s,\theta )的变化区域,故称为Trust Region

D_{KL}(\pi(a|s,\theta )||\pi(a|s,\theta^k )) \leq \delta

直接根据上面目标以及约束很难进行优化,因此TRPO做了一定式子简化:

\text{max}_{\theta}\ J(\theta) \approx E_{s,a\sim {\pi_{\theta^k }}}[\pi(a|s,\theta)A^{\theta^k}(s,a)][\theta - \theta^k]=g[\theta - \theta^k] \\ s.t. \ D_{KL} \approx \frac{1}{2}[\theta - \theta^k]^T H[\theta - \theta^k] \leq \delta

同时其给出决策参数的更新式子,式子中的\alpha^j用于控制KL散度约束,此处采用了Backtracking line search技术,其通过设置多个\alpha^j因子,并在训练中不断从中选择一个因子使得约束满足同时梯度更新最大。

\theta_{t+1}=\theta_{t} + \alpha^j \sqrt{\frac{2\delta }{g^T_tH^{-1}g_t}}H^{-1}g

3. Proximal Policy Optimization 

TRPO有一个很大问题,在于其KL约束是通过惩罚项加到优化目标上去的,因此惩罚项的权重参数是一个超参数,其设置影响整体训练效果,虽然TRPO采用了Backtracking line search技术,可以自适应的去选择超参数,但是对于整体训练效果仍是有损的。

因此PPO认为KL约束既然是为了约束\pi(a|s,\theta )相比于\pi(a|s,\theta^k )变动不大,而优化目标已经包含了这两项,为什么不把这个约束添加到优化目标中。通过截断来约束r(\theta |\theta_k)变动在一定范围内,从而到达同KL散度约束类似的效果。

r(\theta |\theta_k)=\frac{\pi(a|s,\theta)}{\pi(a|s,\theta_k)}

J(\theta) = E_{s,a\sim {\pi_{\theta^k }}}(min[r(\theta|\theta_k)A^{\theta^k}(s,a), clip(r(\theta|\theta_k),1-\epsilon, 1+\epsilon)A^{\theta^k}(s,a)])

论文中也通过实验表明了PPO算法采样这种clip方式其效果比固定KL约束参数、自适应KL约束参数的方法都要好。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 近端策略优化算法proximal policy optimization algorithms)是一种用于强化学习算法,它通过优化策略来最大化累积奖励。该算法的特点是使用了一个近端约束,使得每次更新策略时只会对其进行微调,从而保证了算法的稳定性和收敛性。近端策略优化算法在许多强化学习任务中都表现出了很好的效果,成为了当前最流行的强化学习算法之一。 ### 回答2: 近端策略优化算法是一种新兴的强化学习算法。它具有高效的策略优化和稳定的收敛性。近端策略优化算法在深度学习、自然语言处理、机器视觉、机器人学和其他应用领域都得到了广泛的应用。 近端策略优化算法的核心思想是对策略函数进行优化,以便最大化预期奖励。该算法使用指数加权平均方法来维护与策略函数相关的价值函数和状态值函数。在每个时间步中,它会使用当前策略函数执行一个或多个轨迹,然后使用这些轨迹更新策略函数的参数。 相比于其他优化策略的强化学习算法,近端策略优化算法有以下几个优点: 1. 收敛速度快——该算法具有高效的优化算法和稳定的训练过程,可以在较短的时间内收敛到最优解。 2. 收敛性强——该算法能够在训练过程中处理大的批量数据,并且可以快速地找到全局最优解。 3. 易于实现和调整——该算法的实现过程需要较少的超参数,使其易于实现和调整。 4. 可扩展性强——该算法可以扩展到复杂的问题和大规模数据集合。 总结: 近端策略优化算法是一种高效、稳定、易于实现的强化学习算法。它能够快速地处理大规模数据集合,并找到全局最优解。该算法在深度学习、自然语言处理、机器视觉、机器人学等领域中得到了广泛的应用。 ### 回答3: Proximal Policy Optimization (PPO)算法是一种强化学习中的模型优化算法。它的主要目标是发现学习最优策略的方法,并将其应用到机器人控制、游戏玩法、交通规划和服务机器人等任务中。 PPO算法的核心思想是使用一个剪切函数来限制策略更新的幅度,以确保算法的收敛性和稳定性。与传统的Policy Gradient算法不同,PPO算法对不同样本的更新幅度进行了限制,避免了策略更新过于激进或保守的情况,从而使算法更加可靠。 PPO算法的目标函数由两部分组成:第一部分是优化目标,即最大化期望奖励,第二部分是剪切函数。在PPO算法中,剪切函数被定义为两个策略之间的距离,它用于限制策略更新的幅度,以确保策略优化的稳定性。该函数使用了一个参数 $\epsilon$ 来控制策略更新的幅度,当距离超过阈值时,算法就会停止更新策略。 PPO算法的主要优点在于它的稳定性和可靠性。与其他优化算法相比,PPO算法采用了一种有限的剪切函数,从而避免了策略更新过于激进或保守的情况,而这种情况往往会导致算法崩溃或无法收敛。此外,PPO算法还具有高效性和可扩展性,可以应用于大规模深度学习中。 总之,PPO算法是一种强化学习中比较先进的算法,应用范围广泛,而且具有稳定性和可靠性,是未来智能机器人、自动驾驶等领域的重要研究方向。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值