GRPO是一种强化学习策略优化方法,它通过组内相对比较来评估和改进策略。
之前探索了基于策略梯度的高效强化学习算法-GRPO。
https://blog.csdn.net/liliang199/article/details/157061810
这里进一步探索GRPO优化函数,以及其评估和改进策略。
讨论内容参考和修改自网络资料。
1 GRPO
GRPO不是用绝对回报值评估策略,而是通过策略在组内的相对表现来评估和优化。
这里所用GRPO符号定义如下
: 策略
: 轨迹序列
: 轨迹回报
D: 策略组 {
}
: 策略
生成轨迹τ的概率
1.1 传统目标函数
传统策略梯度目标是最大化期望回报
策略梯度为:
1.2 引入新的基线
同时为了减少方差,使用组平均回报作为基线。
引入了新优势函数
其中b(s)是状态相关的基线。
GRPO的独特之处是使用组平均回报作为基线。
1.3 GRPO目标函数
GRPO引入组内相对优势概念。
对于策略组D中的每个策略,定义其相对优势:
其中是组间平均回报。
GRPO的目标是最大化相对优势的期望
在实际情况下,会使用算术平均的方式,所以优势函数也可以写为:
2 梯度推导
对求梯度:
可以分解为两部分:
2.1 传统策略梯度
第一部分就是传统策略梯度:
2.2 组平均梯度
第二部分更复杂,因为是组间的平均:
由于对于j≠i是常数(不依赖于
),只有j=i项依赖于
,因此,进一步有
2.3 完整梯度
将两部分合并,完整的梯度形式如下所示
2.4 实际优化目标
在实际操作时,会采用重要性采样来替代目标函数。
为了避免训练不稳定,GRPO使用替代目标(surrogate objective):
其中:
是重要性采样比率
是裁剪参数(通常0.1-0.3)
3 GRPO算法
GRPO算法核心步骤示例如下
初始化:创建策略组D = {π_θ₁, π_θ₂, ..., π_θ_N}
采样:每个策略与环境交互收集轨迹
计算回报:计算每个轨迹的回报R(τ)
计算组平均:计算组内平均回报
计算优势:A_i(τ) = R(τ) - 组平均回报
策略更新:对每个策略π_i,最大化L(θ_i)
迭代:重复步骤2-6直到收敛
3.1 GRPO特性
GRPO可以看作是在组内进行竞争性学习。
当策略组收敛时,满足:
此时,策略停止更新。
3.2 GRPO优势
另外,GRPO相当于PPO的进化,N为组的数目。
N=1时,GRPO退化为标准PPO。
N>1时,GRPO引入了组内竞争机制。
相比PPO,GRPO相对评估避免绝对回报尺度问题,组平均作为自然基线,同时又鼓励策略探索不同行为,相对比较减少了极端回报的影响。
实际实现中,通常使用GAE进行优势估计,添加熵正则项鼓励探索,使用价值函数进一步减少方差,采用分布式训练并行更新组内策略。
reference
基于策略梯度的高效强化学习算法-GRPO
https://blog.csdn.net/liliang199/article/details/157061810
RL中GAE的计算过程详解
https://blog.csdn.net/liliang199/article/details/156951653
基于人类反馈的强化学习框架-RLHF&PPO