---
title: "Difficulty-Aware Group Policy Optimization (DGPO)"
created: 2026-05-12
updated: 2026-05-12
type: concept
tags: ["grpo", "difficulty-aware", "reinforcement-learning", "policy-optimization"]
sources: ["arxiv:2601.20614"]
---

# Difficulty-Aware Group Policy Optimization (DGPO)

**DGPO** 是 [[mathforge|MathForge]] 框架的算法组件，通过两步策略解决 [[grpo|GRPO]] 的 [[update-magnitude-imbalance|难度不平衡问题]]。

## 优化目标

$$J_{DGPO}(\theta) = \mathbb{E} \frac{1}{\sum_{s=1}^{B_v} \sum_{i=1}^{G} |o_{si}|} \sum_{s=1}^{B_v} \lambda_s \sum_{i=1}^{G} \sum_{t=1}^{|o_{si}|} \min(I_{sit}A_{DG,si}, \text{clip}(...))$$

## 两步策略：Balance-then-Reweight

### 第一步：[[dgae|DGAE]]（平衡）

用 **MAD（平均绝对偏差）** 替代 std 作为优势归一化分母：

$$\hat{A}_{DG,i} = \frac{r_i - \text{mean}(\{r_i\})}{\text{MAD}(\{r_i\})}$$

**效果**：总更新幅度恒为 G，与准确率 p 无关（Theorem 2）。

### 第二步：[[dqw|DQW]]（加权）

用 softmax 温度加权显式优先更难的问题：

$$\lambda_s = B_v \cdot \frac{\exp(D_s/T)}{\sum \exp(D_s/T)}, \quad D_s = -\text{mean}(\{r_{si}\})$$

**关键**：Balance-then-reweight 提供比直接优势重加权（如 GRPO-AD）更好的可解释性和可控性。

## 与 GRPO 的关键区别

| 组件 | GRPO | DGPO |
|------|------|------|
| 优势估计 | std 归一化 | **MAD 归一化** |
| 难度处理 | 隐式不平衡（p=0.5 峰值） | **显式优先困难问题** |
| 问题权重 | 均等 | **softmax 难度加权** |
| Valid query | 全部 | **仅有效问题（非全对/全错）** |

## DGPO 与其他方法的组合

DGPO 可以与 GP6、DAPO、GSPO 等方法组合，详见论文 Appendix G。组合时 DQW 的难度分数 D_s 仅基于 accuracy reward 计算（排除 length penalty 等辅助信号）。

## 相关概念

- [[dgae|DGAE]] — 难度平衡优势估计
- [[dqw|DQW]] — 难度感知问题级加权
- [[grpo]] — 基线方法
- [[mathforge]] — 完整框架
- [[dai-mathforge-2026|论文页面]]
