GRPO(Group Relative Policy Optimization)是一种基于策略梯度的高效强化学习算法。
GRPO通过分组相对回报估计来提升样本效率和策略更新的稳定性。具体为在同一批经验中,通过分组并计算组内相对表现来估计优势函数,替代传统PPO对绝对价值或优势的估计。
这里尝试通过分布推导,重现这一过程。所用示例参考和修改自网络资料。
1 强化学习
1.1 强化学习目标
强化学习的目标是找到一个参数化的策略 ,以最大化期望累积奖励(回报):
其中是一条轨迹,
是折扣因子。
1.2 策略梯度定理
根据策略梯度定理,目标函数关于参数的梯度为:
其中是优势函数,定义为动作价值函数
与状态价值函数
的差:
优势函数衡量了在状态下执行动作
相对于平均水平的好坏程度。
其核心难点在于,优势函数是未知的,需要准确估计。
优势含漱估计不准确,会导致梯度方差大、更新不稳定。
1.3 广义优势估计GAE
传统强化学习方法PPO通常使用广义优势估计GAE来估计:
其中,
是一个学习到的价值网络。
GAE的缺点是赖一个独立训练的价值网络,其估计误差会直接传递到优势估计中,且需要额外的网络和稳定训练技巧。
2 GRPO
GRPO是分组相对回报估计,这里通过在多个步骤中分布推导,梳理和总结GRPO的估计过程。
2.1 GRPO估计推导
GRPO旨在避免显式学习价值网络,直接从一组经验样本中隐式地、相对地估计优势。
步骤 1:经验收集与分组
-
用当前策略
与环境交互,收集
条轨迹的经验,构成一个批次(Batch)。
-
将这个批次的经验随机分成
组(Groups),每组包含
条轨迹,具体为:
步骤 2:组内回报计算
对于组中的每一条轨迹
,计算其折扣累积回报
:
步骤 3:组内相对优势计算
这是GRPO最关键的步骤,假设在同一组内,由于环境和策略在短时间内的稳定性,不同轨迹的回报差异主要源于动作选择的不同,而非状态分布的差异。
对于组内的某个状态-动作对
,GRPO 定义其相对优势
为:
其中:
是组
内所有轨迹回报的均值。
是组
内所有轨迹回报的标准差。
是一个小的常数,防止除零。
直观理解如下所示。
1)去均值
这等同于用组内平均表现作为基线。
根据策略梯度定理,基线可以减少梯度方差而不引入偏差。
这里,自然成为了该组样本的状态价值函数
的近似(对组内所有状态取平均)。
2)标准化(Normalization)
具体为除以,这一步将不同组的优势值缩放到相似的尺度。
这极大地稳定了策略更新的步长,使更新对回报的绝对尺度不敏感。
3)相对性(Relativity)
最终估计的优势,不再是动作的绝对好,而是相对于同组内其他轨迹的表现好多少。
一条轨迹比同组平均好一个标准差,其优势就是 +1。
步骤 4:策略优化目标函数
有了优势估计,GRPO 构建类似于PPO的裁剪目标函数,以进行稳定、高效的小批量更新。
1)重要性采样比:
2)GRPO目标函数:
其中是该状态-动作对所对应的分组相对优势估计。
min操作在原始比率目标与裁剪目标之间取最小值,防止因比率过大导致破坏性大更新。
将重要性采样比限制在
范围内,限制策略单次更新幅度。
2.2 GRPO推导总结
GRPO推导揭示了其如何巧妙地将分组统计与相对比较的思想融入策略梯度框架。
GRPO通过简洁公式实现了基线削减方差和标准化稳定更新的双重目的。
从而整体形成了一种高效、简洁且稳定的策略优化算法。
2.3 GRPO流程
GRPO算法流程如下所示
初始化:策略网络参数
。
循环(直到收敛):
a. 采样:使用策略
收集
条轨迹的经验数据。
b. 计算回报:为每条轨迹计算折扣回报
。
c. 分组与优化(多轮Epoch):
for epoch in 1...E:
将数据随机分成
个组。
对每个组,计算组内回报均值
和标准差
。
对组内每个样本,计算相对优势
。
使用目标函数
,通过随机梯度上升如Adam更新策略参数
。
d.
GRPO优势主要总结为如下几方面:
没有价值网络,避免了价值网络训练不稳定和偏差传递的问题。
采用隐式基线,组内均值 作为自适应基线,有效降低梯度方差。
组内标准差提供了自动自适应梯度缩放,学习率对回报尺度不敏感,提升了训练稳定性。
通过对单批样本的重分组,可以进行多次策略更新(类似于PPO的多个Epoch),充分利用数据
分组估计虽然引入了偏差,但降低了方差,在批次足够大分组合理情况下,这是一个有利的权衡。
3 PPO vs GRPO
这里从多个角度对比PPO和GRPO。
1)优势估计
PPO依赖于独立的价值网络和 GAE。
GRPO依赖于同一批次内样本的分组统计量(均值、标准差)。
2)所需网络
PPO需要策略网络 + 价值网络,而GRPO近需要策略网络。
3)稳定性来源
PPO的稳定训练,来源于裁剪 + GAE的平滑估计 + 价值网络正则化。
GRPO的稳定训练,来源于裁剪 + 分组相对标准化(隐式基线与自动缩放)。
4)超参数
PPO训练需要关注学习率,GAE系数,裁剪范围
,价值网络相关超参数。
GRPO仅需要关注学习率,分组数量,裁剪范围
。
reference
simple_GRPO
https://github.com/lsdefine/simple_GRPO
simple_GRPO是如何复现DeepSeek的GRPO算法的?
https://www.zhihu.com/question/12750157686
基于人类反馈的强化学习框架RLHF尝试学习
https://blog.csdn.net/liliang199/article/details/156951282
Optimizing Safe and Aligned Language Generation: A Multi-Objective GRPO Approach
https://simg.baai.ac.cn/paperfile/460ed0ba-b0f1-4223-a42e-4a23a7b12154.pdf
深度解析:DeepSeek R1-Zero训练范式与GRPO极简优化策略