Proximal Policy Optimazation 近端策略优化

ref: [1707.06347] Proximal Policy Optimization Algorithms

针对于RL中的奖励函数,采用一定的算法对其做动态调整和限制。以达到更好的学习效果。

存在的问题

单纯的奖励函数:

  • q 来自用户提问的数据分布,o 表示在 时模型的输出、回答
  • r(o) 表示模型在 o 的输出时,获得的奖励函数
  • E 表示总体数据的期望

该奖励函数存在以下问题:

  • 高方差:获得的奖励不稳定
  • 激励不充分:对于不同的 Actor,应该根据 Actor 的实际情况来做针对性的激励,而不应该用统一的指标对所有的 Actor 做一个的评价

思考

PPO 的核心在于“近端”,即为加入了 clip 机制,核心考虑是:更新参数获得更好的回报,但是新策略不能离旧策略太远。

总结为以下三个部分

  • critic:设定一个预期分数线的价值函数
  • clip 利用 min 函数防止更新过度
  • Reference Model 防止作弊

对当前动作收益的评估

critic 设定一个“分数线”:价值函数,作为参考线 baseline。将训练目标改为用 Reward 训练,进化为用 Advantage 来衡量进步。

思考

优势函数在回答一个问题:在状态 的情况下,选择动作 ,比策略平均得到的价值要好多少?

  • A 是 Advantage,表示了奖励比预期好了多少的程度。

由以下两个参数考量:

  • 动作价值函数:代表当前获得的奖励,在传统 RL 中,这个值直接用来优化强化学习模型
  • 状态价值函数:表示了在当前状态 (当前 query 的情况下)下,对预期平均奖励的估计

TD Error 时序差分误差

思考

现实是什么?预期是什么?然后用现实减去预期。

  • 现实(更准确的估计):计算当前的奖励 ,加上对下一个状态的打折估计 。得到
  • 旧的估计:原本认为当前状态的价值

得到差值:

  • V() 是由价值网络输出的结果
  • 是超参数折旧因子

GAE 广义优势估计

加入新的超参数 (0.9-0.95),然后对所有的 TD Error 的加权平均。

  • 该公式可以用递归方式从右往左计算。

由此,回到了参数 ,获得了 Advantage 最终的值。

clip 防止更新过度

使用 clip 防止更新过度,即为利用 min 限制更新率。

其中

  • 表示新策略和旧策略之间的更新比值,如果比值比较小,则正常更新,如果比较大,则使用 clip 限制更新

Reference Model 防止作弊

在最终的具体实现中,使用一个 KL散度 并设定一个初始策略,如果新策略对初始策略偏离太多,则会被判定为作弊而受到惩罚。

总结:目标优化公式

  • J 是目标函数,希望最大化的目标
  • :新旧策略的比率 (Probability Ratio),计算为:

  • :优势函数估计 (Advantage Estimate) ,衡量动作比平均水平好的程度。使用 GAE(Generalized Advantage Estimation)来计算

GRPO 是对 PPO 的进一步简化