原理[1]

1744294407826.png

从公式来看,损失函数的核心逻辑

  1. 让新策略比旧策略回答的更好,但它又不能变化太快。
  2. 通过裁剪机制(clip)防止更新幅度过大,保持训练稳定。
  3. KL 散度进一步控制新策略和某个参考策略间距离,防止模型乱跑。

之所以叫 Group,在于先用旧策略 pi_old 生成 G 个 o_i,也就是多种可能的回答。分子 pi(o_i|q) 是新策略基于问题 q 给出回答 o_i 的概率,二者的比值相当于求个权重。A_i 是强化学习中 的优势 advantage 概念,简单理解就是一种价值函数(两种价值函数之差),衡量当前答案 o_i 相对平均表现的好坏,决定应该被强化还是削弱,也就是打个分。优势权重 A_i 高, 说明这个答案好,模型应该奖励,否则惩罚。先别看后面这些零件。对 G 组答案取均值, 相当于计算期望的离散近似。简单说,就是生成多个答案,打分,加权平均算均值。

后面这一坨,包括 min、clip 还有 KL 散度,都源于近端策略优化(PPO,Proximal Policy Optimization)算法,改进版

这就类似高速上开车,没有 clip,你可以猛踩油门加减速,但可能会失控撞车(训练崩溃);clip 是个限速器,保证稳定驾驶。

近端也就是 proximal 的意思就是用后面的 KL 项进行 约束,起到一种正则化的作用,限制策略的变化幅度,防止训练时漂移得太远,导致不稳定。 Beta 是个经验系数,用来实现动态惩罚,相当于可以调整的阀门。