说明:这篇 blog 在 AI 的辅助下完成。

要点速览

  1. 扩散策略里有两条 horizon:环境步 \(t\) 和去噪步 \(k=K\dots0\)。比较这些方法时,我主要看三个问题:action 定义在哪一层,likelihood 在哪里算,advantage 又是怎么分到每个去噪步的。
  2. DDPO / DPOK 把去噪链当成单层 MDP:\(\pi_\theta(x_{k-1}\mid x_k,c)\) 是 Gaussian,log-prob 精确可算;奖励只在 \(x_0\) 上出现,所以每一步拿到的都是同一个终端信号。
  3. DPPO 把去噪链嵌进环境 MDP:\((t,k)\) 展开成一条长链,奖励只在 \(k=0\) 出现。critic 只看环境状态 \(V(s_t)\);GAE 只在环境层做;同一环境步内所有去噪步共享 \(A_t\),再乘 \(\gamma_{\text{denoise}}^{k}\) 压低早期(高噪声)步的权重。
  4. PPO ratio 在每个 \((t,k)\) 上单独算、单独 clip;梯度只经过当前步的 \(\mu_\theta(a^{k+1},s_t,k)\),不沿去噪链反传。这是 score-function 估计,与 DRaFT / AlignProp 这类 pathwise(链上反传)方法是两回事。
  5. Flow / ODE 采样器给定当前状态后,下一步就是确定的,条件单步转移是 Dirac,没法直接拿来算普通的 Gaussian PPO ratio。当然,初始噪声是随机的,最后的输出也仍然可以是随机的。Flow-GRPO、DanceGRPO 的做法是构造 SDE;ReinFlow、πRL Flow-Noise 则加一个可学习的噪声。DDIM \(\eta=0\) 时也有同样的问题。
  6. 另外三条路绕开“链上 log-prob”:在初始噪声上做 RL(DSRL、Noise PPO),用 flow-matching 损失差构造替代 ratio(FPO),或者用正/负样本加权的 flow-matching 回归(DiffusionNFT)。

0怎么读这一页

下面的图都按同一个格式画。列是环境步:图像生成只有一列,条件是 prompt \(c\);机器人画 3 列 \(t, t{+}1, t{+}2\)。行从初始噪声 \(x_K\) 开始,经过各个去噪转移 \(k=K,\dots,1\),得到输出 \(x_0\) 或 \(a_t\),再经过可选的残差,最后到环境 / 奖励模型。第 \(k\) 行表示 \(x_k\to x_{k-1}\);为了方便画图,50 步也只画 5 行。各张图的颜色、星标、箭头和格内数字含义相同,可以直接对着看。

  • 灰色格:冻结的计算(参数不更新,或这一步不进入损失)。
  • 实心强调色格:这一格的输出就是 RL 的 action,要算 \(\log\pi\),likelihood ratio 在这里。
  • 空心强调色格:可训练,但不作为 RL action(回归 / flow-matching 损失,或 pathwise 梯度经过的地方)。
  • 白色格:数据或环境(样本、动作、仿真器、奖励模型)。
  • 虚线格:这一列不重新计算,复用之前生成的结果(例如按块重规划)。
  • 星标:奖励进入的位置。
  • 格内文字:该格分到的 advantage 权重(\(\hat A\) 表示广播同一个值;\(\gamma^k\hat A\) 表示按步衰减;深浅与权重成正比)。
  • 红色反向箭头:pathwise 梯度(沿链反传可微奖励,或 \(\nabla_a Q\))。
  • 叠放虚线框 + “×G”:GRPO 的组 / 兄弟样本,advantage 在框内比较。
  • 青色药丸:critic 挂在哪一层(\(V(s_t)\)、\(Q(s,a)\) 等)。
  • 环境行下方的青色箭头:GAE / 折扣回报在环境步之间从右往左递推。
  • 右侧括号:作用于一段行的附加项(逐步 KL、滑动窗口、整链乘积 ratio 等),括号旁写明。
示例图(合成示意,不对应任何真实方法)。编号对应下表。
  1. 1初始噪声 \(x_K\sim\mathcal N(0,I)\),这里是白色数据格。若这一格是实心色(Noise PPO、DSRL),说明 RL 的 action 就是噪声。
  2. 2灰色:前几个去噪步冻结(DPPO 的“只调最后 \(K'\) 步”)。
  3. 3空心:参数可训练,但这一格不算 \(\log\pi\),例如被 pathwise 梯度经过、或用回归损失训练。
  4. 4实心:RL action,在这里算 ratio \(\rho\)。格内 \(\gamma\hat A\)、\(\hat A\) 是它分到的 advantage 权重,越淡权重越小。
  5. 5输出 \(a_t\) / \(x_0\)。
  6. 6残差行(只有输出残差类方法有)。实心表示残差是 RL action。
  7. 7环境 / 奖励模型,星标表示奖励在这里进入。
  8. 8critic 挂载位置。
  9. 9红色箭头:pathwise 梯度从奖励沿链往回传到哪一步。
  10. 10叠放虚线框 ×G:同一条件下的一组兄弟样本。

网格下面的“数据流”条带写的是同一件事的时间顺序:rollout 阶段做什么、打分怎么来、更新阶段用什么损失。

1方法谱系图

我按 RL 作用的位置把方法分成四类:噪声空间、链内(likelihood ratio)、likelihood-free / 回归、链外 / 输出。连线写的是两个方法之间改了什么,不一定表示论文的引用关系。点击方法名可以跳到对应小节。

图 0 方法谱系。实线边:直接在父方法上改一处或两处。ReFL / DRaFT / AlignProp 与 off-policy Q 方法是对照组,不在主干上。

2双层 MDP 推导:两条 horizon

记号约定:环境步 \(t=0,1,\dots\),去噪步 \(k=K,\dots,1,0\)(\(k=K\) 是纯噪声,\(k=0\) 是干净样本 / 动作)。图像生成里只有一条去噪 horizon,条件 \(c\) 是 prompt;机器人里,条件是观测 \(s_t\),每个环境步都要跑一整条去噪链才能得到动作 \(a_t^0\)。

2.1单层 denoising MDP(DDPO / DPOK)

DDPO(Black et al., 2023)和 DPOK(Fan et al., 2023)把一次采样看成长度为 \(K\) 的 episode:

\[ \mathbf s_k=(c,\,k,\,x_k),\qquad \mathbf a_k=x_{k-1},\qquad \pi_\theta(\mathbf a_k\mid \mathbf s_k)=\mathcal N\!\big(x_{k-1};\ \mu_\theta(x_k,k,c),\ \sigma_k^2 I\big), \] \[ P(\mathbf s_{k-1}\mid \mathbf s_k,\mathbf a_k)=\delta_{(c,\,k-1,\,\mathbf a_k)},\qquad R(\mathbf s_k,\mathbf a_k)=\begin{cases} r(x_0,c) & k=1\\ 0 & \text{otherwise.}\end{cases} \]

转移是确定性的(下一个状态就是刚采的 \(x_{k-1}\)),唯一的随机性来自策略本身。因为每一步是对角 Gaussian,log-prob 可以精确计算:

\[ \log\pi_\theta(x_{k-1}\mid x_k,c) = -\frac{\lVert x_{k-1}-\mu_\theta(x_k,k,c)\rVert^2}{2\sigma_k^2} + \text{const}. \]

由于奖励只在终点出现、中间奖励为 0、折扣取 1,每一步的回报都等于 \(r(x_0,c)\)。DDPO 的两个估计量:

\[ \text{DDPO}_{\text{SF}}:\ \ \nabla_\theta J=\mathbb E\Big[\textstyle\sum_{k=1}^{K}\nabla_\theta\log\pi_\theta(x_{k-1}\mid x_k,c)\;r(x_0,c)\Big] \] \[ \text{DDPO}_{\text{IS}}:\ \ J=\mathbb E\Big[\textstyle\sum_{k}\min\big(\rho_k\hat A,\ \operatorname{clip}(\rho_k,1-\epsilon,1+\epsilon)\hat A\big)\Big],\quad \rho_k=\frac{\pi_\theta(x_{k-1}\mid x_k,c)}{\pi_{\text{old}}(x_{k-1}\mid x_k,c)} \]

\(\hat A\) 用每个 prompt 的历史 reward 均值 / 标准差做归一化,这样就不用另外训练 critic 了。思路和后来的 GRPO 有些像,但 GRPO 用的是同一批兄弟样本的统计量。DPOK 则在这个 MDP 上加 KL 正则,通过链式上界,把终端分布的 KL 换成逐步 Gaussian KL 的期望之和。后者有闭式解:

\[ \mathrm{KL}\big(p_\theta(x_0\mid c)\,\Vert\,p_{\text{pre}}(x_0\mid c)\big)\le \sum_{k}\mathbb E_{p_\theta}\Big[\mathrm{KL}\big(\pi_\theta(\cdot\mid x_k,c)\Vert\pi_{\text{pre}}(\cdot\mid x_k,c)\big)\Big] =\sum_k \mathbb E\Big[\tfrac{\lVert\mu_\theta-\mu_{\text{pre}}\rVert^2}{2\sigma_k^2}\Big]. \]

DPOK 附录里还可选地学一个 \(V(x_k,c)\approx\mathbb E[r(x_0,c)\mid x_k]\) 作 baseline,也就是定义在去噪状态上的 critic,可以和下面 DPPO 的设计对照着看。

算 Gaussian ratio 的前提是方差大于零。当 \(\sigma_k>0\) 时,普通密度才有定义。DDIM 中 \(\sigma_k(\eta)=\eta\sqrt{\tfrac{1-\bar\alpha_{k-1}}{1-\bar\alpha_k}}\sqrt{1-\tfrac{\bar\alpha_k}{\bar\alpha_{k-1}}}\)。但取 \(\eta>0\) 还不够,端点的方差可能仍然是零,需要检查 DDPM / DDIM 的具体实现,排除这一步或者加方差下界。\(\eta=0\) 时,单步转移是 Dirac,不能代入这里的 Gaussian ratio。不过,这并不意味着最终输出没有概率分布。

2.2DPPO 的双层 MDP

DPPO(Ren et al., 2024)面对的是机器人:每个环境步 \(t\),策略从 \(a_t^K\sim\mathcal N(0,I)\) 出发去噪到 \(a_t^0\),执行 \(a_t^0\)(通常是一个 action chunk),环境转移到 \(s_{t+1}\)。DPPO 把两层展平成一条链,以下用目标状态下标 \(k=K-1,\ldots,0\) 表示转移 \(a^{k+1}\to a^k\),展平下标 \(\bar t(t,k)=tK+(K-k-1)\):

\[ \bar s_{\bar t(t,k)}=(s_t,\ a_t^{k+1}),\qquad \bar a_{\bar t(t,k)}=a_t^{k},\qquad \bar R_{\bar t(t,k)}=\begin{cases}0 & k\gt 0\\ R(s_t,a_t^0) & k=0\end{cases} \] \[ k\gt 0:\ (s_t,a_t^k)\ \text{确定性地成为下一状态};\qquad k=0:\ (s_{t+1},a_{t+1}^K)\sim P(s_{t+1}\mid s_t,a_t^0)\otimes\mathcal N(0,I). \]

每一步的策略仍然是 Gaussian:\(\pi_\theta(a_t^k\mid s_t,a_t^{k+1})=\mathcal N\big(a_t^k;\mu_\theta(a_t^{k+1},s_t,k),\sigma_{k+1}^2I\big)\),所以 log-prob 可以直接算。接下来的问题是,环境奖励只在 \(k=0\) 出现,怎么给每个 \((t,k)\) 算 advantage?

冻结 θ(早期步)可训练 θ_ft(最后 K′ 步)去噪步 k ↓环境步 t →k = KK−1⋮10(执行)环境层advantagetaᴷaᴷ⁻¹⋮a¹a⁰环境 PsₜV(sₜ)条件 sₜsₜ₊₁rₜt+1aᴷaᴷ⁻¹⋮a¹a⁰环境 Psₜ₊₁V(sₜ₊₁)rₜ₊₁t+2aᴷaᴷ⁻¹⋮a¹a⁰环境 Psₜ₊₂V(sₜ₊₂)rₜ₊₂AₜAₜ₊₁Aₜ₊₂GAE:δₜ = rₜ + γV(sₜ₊₁) − V(sₜ)Aₜ = Σ (γλ)ˡ δₜ₊ₗÂₜ,ₖ = γ_dᵏ · Aₜ每格一个 ρₜ,ₖ去噪转移 π_θ(aᵏ⁻¹|aᵏ,sₜ):梯度只经过本步奖励(只在 k=0 后出现)advantage 流向(越淡权重越小)
图 1 DPPO 的 \(t\times k\) 网格。橙色:奖励 \(r_t\) 只在执行 \(a_t^0\) 之后出现。青色:critic \(V(s_t)\) 只看环境状态,GAE 只在环境层从右往左递推出 \(A_t\);同一列里所有去噪步共享 \(A_t\),再乘 \(\gamma_{\text{denoise}}^{k}\),离 \(k=0\) 越远权重越小。只有阴影下半部分(最后 \(K'\) 步)的参数被更新。

Advantage 怎么算、怎么传。DPPO 的 advantage 是两层的:

\[ \delta_t=r_t+\gamma_{\text{env}}V_\phi(s_{t+1})-V_\phi(s_t),\qquad A_t=\sum_{l\ge0}(\gamma_{\text{env}}\lambda)^l\,\delta_{t+l},\qquad \hat A_{t,k}=\gamma_{\text{denoise}}^{\,k}\,A_t . \]
  • critic 只依赖 \(s_t\),不依赖中间噪声动作 \(a_t^{k+1}\)。论文的消融显示,让 value 也看 \(a^{k+1}\) 会明显不稳定。
  • advantage 是共享的,不是逐步算的。同一环境步里所有 \(k\) 用同一个 \(A_t\),只差一个确定性的系数 \(\gamma_{\text{denoise}}^k\)(公开配置为 0.99)。代码里是 advantages *= gamma_denoising ** (ft_denoising_steps - i - 1),\(i\) 沿链递增,最后一步系数为 1。
  • 我的理解是,如果内层折扣取 1,critic 又只看 \(s_t\),那么内层 TD 项就是 \(0+V(s_t)-V(s_t)=0\)。但光凭这一点,还不能说“在展平的链上跑普通 GAE”就等于把环境层 GAE 广播下来,因为 trace 的 \(\lambda\) 和折扣在内层怎么处理也要说清楚。DPPO 的实际做法是先在环境层算 \(A_t\),再乘 \(\gamma_{\mathrm{denoise}}^k\),给早期去噪步更小的权重。

PPO ratio 与 clipping。每个 \((t,k)\) 是一个独立的 PPO 样本:

\[ \rho_{t,k}(\theta)=\frac{\pi_\theta(a_t^k\mid s_t,a_t^{k+1})}{\pi_{\theta_{\text{old}}}(a_t^k\mid s_t,a_t^{k+1})},\qquad \mathcal L_{\text{PPO}}=-\,\mathbb E_{t,k}\Big[\min\big(\rho_{t,k}\hat A_{t,k},\ \operatorname{clip}(\rho_{t,k},1-\epsilon_k,1+\epsilon_k)\hat A_{t,k}\big)\Big]. \]
  • \(a_t^{k+1}\) 和 \(a_t^k\) 都是 rollout 时存下来的,更新时把它们当常数。\(\nabla_\theta\log\pi_\theta\) 只经过当前的 \(\mu_\theta(a_t^{k+1},s_t,k)\),不会跨去噪步反传。按步组织 minibatch,就不用一直存着整条链的反传激活了。不过 rollout 轨迹还是要存,总计算量也仍然随 \(K\) 增长,所以不能说显存开销完全与 \(K\) 无关。
  • 官方代码里 clip 系数可以随去噪步变化:\(\epsilon_k=\epsilon_{\text{base}}+(\epsilon-\epsilon_{\text{base}})\frac{e^{\beta\tau_k}-1}{e^{\beta}-1}\),\(\tau_k\in[0,1]\) 沿链递增,越接近 \(k=0\) trust region 越宽。公开配置里 Robomimic 是 clip_ploss_coef_base=0.001 → clip_ploss_coef=0.01,Gym 两者都是 0.01(等于不调度)。

探索噪声与数值稳定。扩散的后验方差 \(\sigma_k\) 在最后几步非常小,会带来两个问题:探索不够,以及 \(\log\pi\) 对 \(\mu\) 的微小变化极其敏感(ratio 爆炸)。DPPO 用两个下界分别处理:采样时把 \(\sigma_k\) 截到不低于 \(\sigma^{\text{exp}}_{\min}\)(按任务取 0.01–0.1),计算 log-prob 时截到不低于 \(\sigma^{\text{prob}}_{\min}=0.1\)。公开的 Gym / Robomimic 配置里两个下界都是 0.1。

只微调最后几步。复制一份 \(\theta_{\text{ft}}\),前 \(K-K'\) 步用冻结的 \(\theta\),最后 \(K'\) 步用 \(\theta_{\text{ft}}\),只有这部分进 PPO 损失(公开配置 \(K=20,\ K'=10\))。另一种做法是训练时直接换成 \(K_{\text{DDIM}}\approx5\) 步、\(\eta=1\) 的 DDIM(随机),评估时用 \(\eta=0\)。动作是 action chunk(\(T_a\) 步执行后重规划)。

2.3其他切法

(a) 整条链当成一个大 action。链的联合 log-prob 是逐步 log-prob 之和,联合 ratio 是逐步 ratio 之积:

\[ \log\pi_\theta(a^{0:K}\mid s)=\log\mathcal N(a^K;0,I)+\sum_{k=1}^{K}\log\pi_\theta(a^{k-1}\mid a^k,s),\qquad \rho^{\text{chain}}=\prod_{k=1}^{K}\rho_k=\exp\Big(\sum_k\Delta\ell_k\Big). \]

最终动作的边缘 ratio \(\pi_\theta(a^0\mid s)/\pi_{\mathrm{old}}(a^0\mid s)\) 通常不好算,但如果把中间变量都存下来,就能算扩展空间上的 importance weight \(\rho^{\mathrm{chain}}\)。在旧策略处,不加 clipping 和额外步权重时,两种写法给出相同的 score-function 梯度 \(\mathbb E[A\sum_k\nabla\log\pi_k]\)。离开这个点,目标就不一样了:即使每步 ratio 都在 \([1-\epsilon,1+\epsilon]\) 内,乘起来也可能到 \((1\pm\epsilon)^K\) 这个量级。另外,PPO clipping 并不是 ratio 或 KL 的硬约束。整链乘积波动大,也可能更频繁地触发 clipping。OGPO 用的就是整链 ratio。

(b) GRPO 式只看结果的组内比较。对同一条件 \(c\) 采 \(G\) 条链,\(\hat A_i=(r_i-\bar r)/\operatorname{std}(r)\),把同一个 \(\hat A_i\) 广播给链上每一步,然后逐步 ratio + clip(Flow-GRPO、DanceGRPO)。不需要 critic,但每步拿到的仍是同一个终端信号,credit assignment 跟 DDPO 没本质区别;进步主要来自更好的 baseline 和工程(SDE 采样、步数缩减、共享噪声)。

(c) 只在噪声 / latent 空间做 RL。冻结 \(f_\theta\),把它当成环境的一部分,学一个噪声策略 \(\pi_\psi(w\mid s)\),动作是 \(a=f_\theta(s,w)\)(通常配确定性采样器,比如 DDIM \(\eta=0\))。likelihood 就是 \(\pi_\psi\) 自己的 Gaussian log-prob,跟去噪链无关。代表:DSRL(off-policy、SAC),Noise PPO(单步 MDP、PPO)。

(d) 完全绕开链的 likelihood。一类用 ELBO / flow-matching 损失差构造替代 ratio(FPO);一类直接做加权的 flow-matching 回归,比如 DiffusionNFT 的正 / 负隐式策略,以及更早的 advantage-weighted regression 思路:

\[ \mathcal L_{\text{wFM}}(\theta)=\mathbb E_{(s,a)\sim\mathcal D,\ \tau,\ \varepsilon}\Big[\,w(s,a)\,\big\lVert v_\theta(x_\tau,\tau,s)-(\varepsilon-a)\big\rVert^2\Big],\qquad w=\exp(A/\beta)\ \text{或}\ r\in[0,1]. \]

这些方法不用算 rollout 的链上 likelihood,所以 ODE、高阶 solver 都可以用。但这不代表任意 CFG 设置都能稳定训练,比如 FPO 就报告过 CFG 相关的问题。上式只是 weighted flow matching 的示意;DiffusionNFT 还要构造正 / 负隐式策略,具体看后面的小节,不能直接当成普通的奖励加权 SFT。

2.4ODE → SDE:flow 模型为什么需要它

Flow matching / rectified flow 用 ODE \(\mathrm dx_\tau=v_\theta(x_\tau,\tau)\,\mathrm d\tau\) 采样。给定当前状态,下一步是确定的,也就是 Dirac 转移,没法用普通随机转移的密度来算逐步 PPO;这和最终输出有没有密度是两件事。这里取 \(\tau=1\) 为噪声,\(\tau=0\) 为数据,生成时 \(\mathrm d\tau<0\)。假设速度场 / score 是理想的,并且在连续时间下考虑,我们可以构造一个边缘分布相同的反向 SDE。

\[\mathrm dx_\tau=\left[v_\theta(x_\tau,\tau)-\frac{\sigma_\tau^2}{2}\nabla_x\log p_\tau(x_\tau)\right]\mathrm d\tau+\sigma_\tau\,\mathrm d\bar W_\tau,\qquad \operatorname{Var}(\mathrm d\bar W_\tau)=|\mathrm d\tau|I.\]

本小节的 \(t\) 是插值时间,不是环境步。对 rectified flow,\(x_t=(1-t)x_0+t\varepsilon\),score 可以用速度场表示:\(\nabla\log p_t(x)=-\frac{x+(1-t)v_\theta(x,t)}{t}\)。代入后做 Euler–Maruyama,就是 Flow-GRPO 的更新:

\[ x_{t+\Delta t}=x_t+\Big[v_\theta(x_t,t)+\frac{\sigma_t^2}{2t}\big(x_t+(1-t)v_\theta(x_t,t)\big)\Big]\Delta t+\sigma_t\sqrt{|\Delta t|}\,\epsilon,\qquad \sigma_t=a\sqrt{\tfrac{t}{1-t}} . \]

于是每步都是各向同性 Gaussian,log-prob 闭式可算;两个策略之间的逐步 KL 也有闭式:\(\mathrm{KL}=\frac{|\Delta t|}{2}\big(\frac{\sigma_t(1-t)}{2t}+\frac{1}{\sigma_t}\big)^2\lVert v_\theta-v_{\text{ref}}\rVert^2\)。超参数 \(a\) 控制探索强度(生成时 \(\Delta t<0\),噪声协方差与 KL 用 \(|\Delta t|\);有限步离散化不保证完全保持连续时间边缘分布)。

ReinFlow 不推 SDE,而是直接给每步加一个可学习的噪声网络:

\[ a^{k+1}=a^k+v_\theta(t_k,a^k,s)\,\Delta t_k+\sigma_{\theta'}(t_k,a^k,s)\,\epsilon,\qquad \pi(a^{k+1}\mid a^k,s)=\mathcal N\big(a^k+v_\theta\Delta t_k,\ \operatorname{diag}\sigma_{\theta'}^2\big). \]

这样就得到一个离散时间 Markov 过程,联合 likelihood 是逐步 Gaussian 的乘积。噪声大小交给 RL 学,再加上下界和上界;步数可以很少,只有 1–4 步。但这样一来,就不再保证边缘分布和预训练模型一致了。πRL 两种都试了:Flow-Noise 用 ReinFlow 式的可学习噪声和单层 MDP,Flow-SDE 用 SDE 和 DPPO 式的双层 MDP。

2.5梯度到底走哪条路

梯度路径需要什么代表特点
Score-function,逐步局部每步 \(\log\pi\);随机采样器DDPO、DPOK、DPPO、Flow-GRPO、DanceGRPO、ReinFlow允许黑盒、不可微奖励;score-function 方差可能较大;不保存跨去噪步的反传激活,但轨迹存储与总计算仍随 \(K\) 增长
Pathwise,沿链反传可微奖励;可微的链ReFL、DRaFT、AlignProp通常比 score-function 更低方差;显存随反传步数增长;可能 reward hacking;黑盒物理环境奖励不能直接沿该路径反传
Pathwise 链 + Gaussian 输出头存下整条噪声序列NCDPO把链当成噪声条件下的确定性函数 \(f_\theta(s,a^K,z_{1:K})\),在其输出上放 Gaussian 做 PPO,梯度穿过所有去噪步
噪声空间策略对 \(f_\theta\) 的黑盒访问DSRL、Noise PPO不更新 \(\theta\);受限于冻结生成器在允许 latent 域内可达的输出
替代 likelihood / 加权回归flow-matching 损失FPO、DiffusionNFT、AWR 类采样器无关;ratio 或权重是近似,存在偏差 / 额外方差

2.6通用 on-policy 方法

PPO + GAE

Schulman et al. 2017 · 1707.06347;GAE 2015 · 1506.02438
\[ \mathcal L^{\text{CLIP}}=\mathbb E\big[\min(\rho_t A_t,\operatorname{clip}(\rho_t,1\pm\epsilon)A_t)\big],\quad \rho_t=\tfrac{\pi_\theta(a_t\mid s_t)}{\pi_{\text{old}}(a_t\mid s_t)},\quad A_t^{\text{GAE}}=\textstyle\sum_l(\gamma\lambda)^l\delta_{t+l} \]

critic \(V_\phi\) 用 value loss(常带 value clipping)训练。clipping 是限制策略更新的 surrogate,并不硬性约束 KL,多 epoch 复用同一批数据。常见实现还包括 clipped value loss、全局归一化 advantage,以及 target-KL 早停。

GRPO

Shao et al. 2024(DeepSeekMath)· 2402.03300
\[ \hat A_i=\frac{r_i-\operatorname{mean}(r_{1:G})}{\operatorname{std}(r_{1:G})},\qquad \mathcal J=\mathbb E\Big[\tfrac1G\textstyle\sum_i\tfrac1{|o_i|}\sum_t\min(\rho_{i,t}\hat A_i,\operatorname{clip}(\cdot)\hat A_i)-\beta\,\mathbb D_{\text{KL}}\Big],\quad \mathbb D_{\text{KL}}\approx\tfrac{\pi_{\text{ref}}}{\pi_\theta}-\log\tfrac{\pi_{\text{ref}}}{\pi_\theta}-1 \]

不训练 critic,而是用同一条件下 \(G\) 个样本的均值当 baseline。一个样本的 token / 去噪步都用同一个 outcome advantage。上面的 k3 项,在样本来自当前策略且满足支持条件时,是 \(D_{\mathrm{KL}}(\pi_\theta\Vert\pi_{\mathrm{ref}})\) 的无偏估计。如果复用旧策略的数据,采样分布变了,就得另外考虑。这里 KL 直接放进 loss,不放进 reward。写代码时也要处理组内标准差为零的情况。

RLOO / REINFORCE++

Ahmadian et al. 2024 · 2402.14740;Hu et al. 2025 · 2501.03262

RLOO:\(\hat A_i=r_i-\frac1{G-1}\sum_{j\ne i}r_j\)。同条件下兄弟样本独立采样时,leave-one-out baseline 不依赖当前 action,因此不改变期望 policy gradient;它不除以 std。REINFORCE++ 不训练 critic,在整个 batch 上归一化 advantage,KL 放入逐 token reward,目的是缓解组内标准化带来的问题。

用在扩散策略上的实际难点

  1. Likelihood 能否算。确定性 ODE / DDIM 的局部条件转移是 Dirac,不能直接用于普通 Gaussian PPO;随机采样器的正方差转移可算密度,但最终 \(\pi(a^0\mid s)\) 还涉及积分。可改用 SDE、注噪声或替代目标(FPO / NFT)。GenPO 通过可逆构造求精确边缘 likelihood,代价包括动作维度加倍与结构约束。
  2. 去噪链上的 credit assignment。奖励只在 \(x_0\) 出现。主流做法要么共享(DPPO 乘 \(\gamma_{\text{denoise}}^k\),GRPO 直接广播),要么学去噪状态上的 critic(DPOK 可选的 \(V(x_k,c)\))。SPO、DenseGRPO 一类工作尝试做逐步奖励,但都要额外的模型或采样。
  3. 方差。\(\sum_k\nabla\log\pi_k\) 一共有 \(K\) 项,方差要看每一项和它们之间的协方差,不能简单说 \(K\) 越大方差就越大。不过链长了,计算和梯度噪声都可能更难处理。DPPO 只训最后 \(K^{\prime}\) 步,DanceGRPO 抽约 60% 的时间步,MixGRPO 只训一个滑动窗口,都是少训一些步的做法。
  4. 计算成本。每个环境决策要跑 \(K\) 次网络;更新时每个参与训练的步都要再前向 + 反传一次。常见手段是训练时减步数(Flow-GRPO 训 10 步、推理 40 步)、DDIM 5 步、或者 1–4 步的 shortcut / ReFlow 模型(ReinFlow)。
  5. 探索噪声。扩散后验方差在最后几步趋近 0,PPO 拿不到有效探索,ratio 也会数值爆炸。需要 \(\sigma_{\min}\) 下界(DPPO)、可调 SDE 噪声幅度 \(a\)(Flow-GRPO)或可学习噪声(ReinFlow)。噪声加大又会让样本偏离 prior 的流形。
  6. 到 pretrained prior 的 KL。先验相同、Gaussian 转移方差为正时,逐步 KL 的期望之和是终端 KL 的上界。DPOK / Flow-GRPO 用了这个正则,DanceGRPO 的实验里则没用 KL。但我觉得不能因此就说 KL 都可以去掉,尤其是 reward model 容易被利用的时候。当然,加了 KL / BC 也不代表 reward hacking 就解决了。

3链内:在去噪转移上算 likelihood ratio

这类方法把部分去噪转移当成 RL action,在图里的实心格上算 \(\log\pi\) 和 ratio。区别主要是哪些步参与更新、advantage 怎么算、critic 放在哪一层。后面统一用这些记号:条件 \(c\)(图像)或 \(s_t\)(机器人),去噪状态 \(x_k\),旧策略 \(\theta_{\text{old}}\),参考模型 \(\theta_{\text{ref}}\),advantage \(\hat A\),ratio \(\rho\)。

DDPO

Black, Janner, Du, Kostrikov, Levine · 2023 · 2305.13301链内
思路
policy 是每个去噪转移 \(\pi_\theta(x_{k-1}\mid x_k,c)\),action 是 \(x_{k-1}\),奖励是终端的黑盒标量 \(r(x_0,c)\)(压缩率、美学分、VLM 对齐分)。
计算网格
训练一步
c ~ prompts;  x_K ~ N(0, I)
for k = K..1:                     # DDIM 50 步, η=1(ddpo-pytorch 默认, CFG 5.0)
    x_{k-1} ~ N(μ_θold(x_k, k, c), σ_k² I);  存 logp_old[k]
r = R(x_0, c)
 = clip((r - mean_c) / std_c, -5, 5)   # 按 prompt 的 running 统计, 无 critic
for epoch, minibatch, k in 全部 K 步:
    ρ_k = exp(log π_θ(x_{k-1} | x_k, c) - logp_old[k])
    L  += -min(ρ_k Â, clip(ρ_k, 1-ε, 1+ε) Â)   # ε = 1e-4
θ ← θ - η ∇L
目标函数
\[\mathcal J_{\text{DDPO}_\text{IS}}=\mathbb E\Big[\sum_{k=1}^{K}\min\big(\rho_k\hat A,\ \operatorname{clip}(\rho_k,1-\epsilon,1+\epsilon)\hat A\big)\Big],\quad \rho_k=\frac{\pi_\theta(x_{k-1}\mid x_k,c)}{\pi_{\theta_{\text{old}}}(x_{k-1}\mid x_k,c)}\]
和其他方法的区别
相对普通 PPO:
  1. 把一次采样看成 \(K\) 步 MDP:转移确定、策略是对角 Gaussian、奖励只在终点(§2.1)。
  2. 没有 critic,baseline 是同一 prompt 的历史 reward 均值 / 标准差(per-prompt stat tracking)。
  3. 所有 \(K\) 步拿同一个 \(\hat A\);没有 KL。DDPO\(_\text{SF}\) 是同一框架下的 REINFORCE 版本。
局限
需要随机采样器才有 \(\log\pi\);每个样本存 \(K\) 步;\(K\) 项同权,方差大;无 KL 时 reward over-optimization 明显;clip 范围很小(1e-4),每轮更新保守。
变体
DDPO\(_\text{SF}\);Large-scale RL for diffusion(Zhang et al. 2024,2401.12244)把它扩到百万级 prompt 与多奖励。

DPOK

Fan et al. · 2023 · 2305.16381链内
思路
与 DDPO 相同的单层 denoising MDP,目标里加逐步 KL 到预训练模型,可选学一个定义在去噪状态上的 \(V(x_k,c)\);奖励是 ImageReward。
计算网格
训练一步
c ~ prompts;  用随机采样器采 x_K..x_0 ~ π_θ;  存每步样本
r = R(x_0, c)                         # ImageReward
for k = K..1:
    A_k  = r - V_φ(x_k, c)            # 可选 baseline; 不用时 A_k = r
    L_pg += -α A_k · log π_θ(x_{k-1} | x_k, c)
    L_kl += β ‖μ_θ(x_k,k,c) - μ_ref(x_k,k,c)‖² / (2σ_k²)   # 闭式逐步 KL
L_V = Σ_k (V_φ(x_k, c) - r)²
θ ← θ - η ∇(L_pg + L_kl);   φ ← φ - η ∇L_V
目标函数
\[\min_\theta\ \mathbb E_{c}\Big[\alpha\,\mathbb E_{p_\theta}[-r(x_0,c)]+\beta\sum_{k}\mathbb E_{p_\theta}\big[\mathrm{KL}\big(p_\theta(x_{k-1}\mid x_k,c)\,\Vert\,p_{\text{pre}}(x_{k-1}\mid x_k,c)\big)\big]\Big]\]
和其他方法的区别
相对 DDPO:
  1. 加逐步 KL 到预训练模型,是终端 KL 的上界,闭式为 \(\lVert\mu_\theta-\mu_{\text{pre}}\rVert^2/2\sigma_k^2\)。
  2. 可选 critic \(V(x_k,c)\approx\mathbb E[r\mid x_k]\):不同 \(k\) 的 advantage 因此可以不同。这是 DDPO 和 GRPO 系都没有的东西。
  3. 奖励换成学到的 ImageReward;其余不变。是否对 ratio 做 PPO 式 clip:我没有在原文中确认,不确定。
局限
每步多一次冻结参考模型前向;KL 是上界,偏保守;实验规模小(少量 prompt)。
变体
—

Flow-GRPO

Liu et al. · 2025 · 2505.05470链内
思路
rectified flow 模型(SD3.5-M)。把 ODE 换成同边缘分布的 SDE,得到逐步 Gaussian 策略;action 是每个 SDE 步;奖励是终端(GenEval、OCR、PickScore);advantage 用组内归一化。
计算网格
训练一步
c ~ prompts
for i = 1..G:                         # G = 24
    x_1 ~ N(0, I)
    SDE 采样 T = 10 步 (σ_t = a√(t/(1-t)), a = 0.7), 存每步 logp_old
    r_i = R(x_0^i, c)
Â_i = (r_i - mean(r)) / std(r)        # 广播到这条链的全部 T 步
for i, t in 组 × 全部 T 步:
    ρ = exp(log π_θ(x_{t+Δt} | x_t, c) - logp_old)
    L += -min(ρ Â_i, clip(ρ, 1-ε, 1+ε) Â_i) + β KL_t(θ ‖ θ_ref)
θ ← θ - η ∇L                          # 推理仍用 ODE, T = 40
目标函数
\[\mathcal J=\mathbb E\Big[\frac1G\sum_{i=1}^{G}\frac1T\sum_{t}\Big(\min\big(\rho_t^i\hat A^i,\operatorname{clip}(\rho_t^i,1\pm\epsilon)\hat A^i\big)-\beta\,D_{\text{KL}}(\pi_\theta\Vert\pi_{\text{ref}})\Big)\Big]\]
和其他方法的区别
相对 DDPO:
  1. 模型从 DDPM 换成 rectified flow,用 ODE→SDE 得到 Gaussian 转移(§2.4)。
  2. baseline 从 per-prompt 历史统计换成同一 prompt 下 \(G=24\) 个样本的组内归一化。
  3. 加闭式逐步 KL(\(\beta=0.04\) 用于 GenEval / OCR,0.01 用于 PickScore)。
  4. Denoising Reduction:训练只采 10 步,推理仍 40 步。
局限
SDE 噪声幅度 \(a\) 要调(太小则探索不足);所有步共享 outcome advantage;每组 \(G\times T\) 次前向,更新时同样多的前向 + 反传。
变体
πRL Flow-SDE(2510.25889):同样的 SDE 用在 \(\pi_0\) / \(\pi_{0.5}\) VLA 上,并与环境耦合成双层 MDP。

DanceGRPO

Xue et al. · 2025 · 2505.07818链内
思路
同样是“SDE + 组内 advantage”,统一 diffusion 与 rectified flow,覆盖 T2I / T2V / I2V(SD、FLUX、HunyuanVideo、SkyReels),用多个奖励模型。
计算网格
训练一步
c ~ prompts;  x_K ~ N(0, I)          # 组内共享同一个初始噪声
for i = 1..G:                         # 图像 G = 12
    SDE 采样 (SD 50 步 / FLUX、HunyuanVideo 25 步), 存 logp_old
for each 奖励模型 m:
    A_i^m = (r_i^m - μ^m) / σ^m
Â_i = Σ_m A_i^m                       # 先各自归一化再相加
S = 随机保留 60% 的时间步
for i, k in 组 × S:
    L += -min(ρ Â_i, clip(ρ, 1-ε, 1+ε) Â_i)    # ε = 1e-4, 无 KL
θ ← θ - η ∇L                          # 带 CFG 时 cond 与 uncond 一起优化
目标函数
\[\mathcal J=\mathbb E\Big[\frac1G\sum_i\frac{1}{|S|}\sum_{k\in S}\min\big(\rho_k^i\hat A^i,\operatorname{clip}(\rho_k^i,1\pm\epsilon)\hat A^i\big)\Big],\quad \hat A^i=\sum_m\frac{r_i^m-\mu^m}{\sigma^m}\]
和其他方法的区别
相对 Flow-GRPO(两者几乎同时发表,这里比的是机制,不是继承关系):
  1. 组内样本共享初始噪声(论文称不共享会在视频上导致 reward hacking 和不稳定)。
  2. 每次只在随机 60% 的时间步上算损失。
  3. 多奖励时 advantage 先各自归一化再相加。
  4. 去掉 KL(论文称影响很小)。
  5. 有 CFG 的模型需要 cond 与 uncond 联合优化,只训 cond 会发散。
局限
视频上计算很重;clip 很小;不用 KL 时防过优化只能靠共享噪声等技巧。 共享噪声本身不保证消除 reward hacking。
变体
—

MixGRPO

Li et al. · 2025 · 2507.21802链内
思路
GRPO 的效率改进:只在一个滑动窗口内用 SDE 采样并计算 ratio / KL,窗口外用确定性 ODE。
计算网格
训练一步
窗口 W = [l, l + w),  w = 4,  总步数 T = 25 (FLUX.1-dev)
c ~ prompts
for i = 1..G:                         # G = 12
    窗口前: ODE (Euler)
    窗口内: SDE (Euler-Maruyama), 存 logp_old
    窗口后: ODE;  Flash 版用二阶 DPM-Solver++
Â_i = 组内归一化
L = Σ_{i, k ∈ W} -min(ρ Â_i, clip(ρ) Â_i) + β KL_k
θ ← θ - η ∇L
每 25 次迭代: l ← l + 1               # 从高噪声段往低噪声段移动
目标函数
\[\mathcal J=\mathbb E\Big[\frac1G\sum_i\frac1{w}\sum_{k\in W}\Big(\min\big(\rho_k^i\hat A^i,\operatorname{clip}(\rho_k^i,1\pm\epsilon)\hat A^i\big)-\beta D_{\text{KL},k}\Big)\Big]\]
和其他方法的区别
相对 DanceGRPO:
  1. SDE 噪声和损失都只在窗口 \(W\) 内(默认 4 / 25 步),而不是随机 60%。
  2. 窗口外是 ODE,可以换高阶 solver(Flash)。
  3. 窗口按 progressive 调度移动:每 25 次迭代前进 1 步,从低 SNR 段走向高 SNR 段。
  4. 训练时间比 DanceGRPO 少约 50%(Flash 约 71%)。
局限
窗口大小和移动调度都是启发式;同一时刻只有少数步得到梯度信号。
变体
MixGRPO-Flash。

DPPO

Ren et al. · 2024 · 2409.00588 · 代码链内
思路
机器人扩散策略。每个环境步跑一条去噪链,action 是每个去噪转移 \(a_t^{k-1}\);奖励来自环境;critic 是 \(V(s_t)\);只训最后 \(K'\) 步(§2.2 有完整推导)。
计算网格
训练一步
for t = 0..T-1 (并行环境):
    a_t^K ~ N(0, I)
    for k = K..1:                     # 前 K-K' 步用冻结 θ
        a_t^{k-1} ~ N(μ(a_t^k, s_t, k), max(σ_k, 0.1)²)
    执行 a_t^0 (action chunk), 得 r_t, s_{t+1};  存最后 K' 步 logp_old
A_t = GAE(r, V_φ(s))                  # 只在环境层
for t, k in 最后 K' 步:
    Â_{t,k} = γ_denoise^(k-1) · A_t        # γ_denoise = 0.99
    ρ = exp(log π_θft(a_t^{k-1} | a_t^k, s_t) - logp_old)   # σ 下界 0.1
    L += -min(ρ Â, clip(ρ, 1-ε_k, 1+ε_k) Â)    # ε_k 随 k 调度
L_V = (V_φ(s_t) - R_t)²

伪代码用源下标 \(k=K,\ldots,1\),因此最后一步权重是 \(\gamma^{k-1}=1\);上方推导用目标下标 \(k=K-1,\ldots,0\),两种写法需相差一位。

目标函数
\[\mathcal L=-\mathbb E_{t,k}\Big[\min\big(\rho_{t,k}\hat A_{t,k},\operatorname{clip}(\rho_{t,k},1\pm\epsilon_k)\hat A_{t,k}\big)\Big],\quad \hat A_{t,k}=\gamma_{\text{denoise}}^{\,k}\,A_t^{\text{GAE}}\]
和其他方法的区别
相对 DDPO:
  1. 把单层去噪 MDP 嵌进环境 MDP,每个环境步一条链,奖励来自环境。
  2. 加 critic \(V(s_t)\)(只看环境状态)和 GAE。
  3. advantage 在同一条链内共享,再乘 \(\gamma_{\text{denoise}}^k\)。
  4. 只训最后 \(K'\) 步(公开 Gym / Robomimic 配置:\(K=20,\ K'=10\))。
  5. 采样和算 log-prob 各有一个 \(\sigma\) 下界(公开配置均为 0.1)。
  6. clip 系数随去噪步调度(Robomimic 配置 0.001→0.01;Gym 配置两端都是 0.01,即不调度)。
局限
on-policy,环境步昂贵时样本效率低;超参多(\(K'\)、\(\gamma_{\text{denoise}}\)、两个 \(\sigma\) 下界、clip 调度);墙钟时间约为 Gaussian PPO 的 2 倍。
变体
NCDPO(2505.10482):存下整条噪声序列,更新时确定性重算 \(a^0\),在输出上放 Gaussian 做 PPO,梯度沿全链反传。GenPO(2505.18763):doubled dummy action 构造可逆扩散,拿到精确边缘 likelihood。

ReinFlow

Zhang, Yu, Su, Wang · 2025 · NeurIPS 2025 · 2505.22094链内
思路
少步 flow policy(ReFlow、Shortcut,1–4 步)。每步加一个可学习噪声 \(\sigma_{\theta'}\),让链变成 Gaussian Markov 过程,链的联合 likelihood 精确可算,然后跑 PPO。
计算网格
训练一步
for t:  a^0 ~ N(0, I)
    for k = 0..K-1:                   # K = 1..4
        a^{k+1} = a^k + v_θ(t_k, a^k, s) Δt + σ_θ'(t_k, a^k, s) · ε
    执行 a^K, 得 r_t;  存整链 logp_old
A_t = GAE(r, V_φ)
log π(chain) = Σ_k log N(a^{k+1}; a^k + v_θ Δt, diag σ_θ'²)
# 下式演示整链 surrogate;原整理尚未确认论文实现的 clip 粒度
ρ_chain = exp(log π_{θ,θ'}(chain) - logp_old)
L_joint = -min(ρ_chain A, clip(ρ_chain) A) - c_ent · H + L_V
更新 θ, θ', φ
部署: 丢弃 σ_θ', 回到确定性 flow
目标函数
\[\pi(a^{k+1}\mid a^k,s)=\mathcal N\big(a^k+v_\theta(t_k,a^k,s)\Delta t,\ \operatorname{diag}\sigma_{\theta'}^2(t_k,a^k,s)\big),\quad \log\pi(a^{0:K}\mid s)=\log p(a^0)+\sum_k\log\pi(a^{k+1}\mid a^k,s)\]

此处 ReinFlow 沿生成方向使用递增下标 a⁰→aᴷ,a⁰ 为初始噪声;与 DPPO 的递减下标约定不同。固定初始噪声先验在策略 ratio 中相消。

和其他方法的区别
相对 DPPO:
  1. 模型换成少步 flow,步数 1–4。
  2. 探索噪声由可学习网络 \(\sigma_{\theta'}(t_k,a^k,s)\) 给出(复用预训练策略的特征),而不是固定后验方差加下界。
  3. 加熵正则。
  4. 部署时丢弃噪声网络。
  5. 论文写的是整链联合概率;ratio 是逐步还是整链 clip,我没有在原文中确认,不确定。
局限
边缘分布不再保证等于预训练 prior;噪声上下界要按关节设定;需要事先有少步模型。
变体
πRL Flow-Noise:同样思路用于 \(\pi_0\) / \(\pi_{0.5}\)。

OGPO

Patil, Nakamoto, …, Levine, Gupta, Simchowitz · 2026 · 2605.03065链内
思路
仍是双层 MDP,但在环境转移处切开:环境层用 off-policy TD 学 \(Q\);去噪层是纯计算、可以无限重采的 inner MDP,在上面跑 PPO,把 \(Q(s,a_0)\) 当链的终端奖励,ratio 是整链乘积。
计算网格
训练一步
与环境交互: a_{t,K:0} ~ π_θ(· | s_t), 存 (s, a_0, r, s') 到 replay D
critic: Q_φ ← TD on D,  target = r + γ · mean_i Q_targ(s', a'^(i))
for s ~ D:
    采 N 条链 a^(j)_{K:0} ~ π_θ̄(· | s)        # 只算生成器, 不碰环境
    V̂(s)  = mean_j Q_targ(s, a_0^(j))
    Â_j   = Q_targ(s, a_0^(j)) - V̂(s)         # 可用多 critic 保守化
    ρ_j   = Π_k π_θ(a_{k-1}^(j) | s, a_k^(j)) / π_θ̄(·)
    L    += -min(ρ_j Â_j, clip(ρ_j, 1-ε, 1+ε) Â_j)
OGPO+: L += λ_bc · L_BC(成功轨迹 buffer)
目标函数
\[\ell_{\text{PPO}}=\min\big(\rho\hat A,\operatorname{clip}(\rho,1\pm\epsilon)\hat A\big),\quad \rho=\prod_{k=1}^{K}\frac{\pi_\theta(a_{t,k-1}\mid s_t,a_{t,k})}{\pi_{\bar\theta}(a_{t,k-1}\mid s_t,a_{t,k})},\quad \hat A=Q_{\text{targ}}(s_t,a_{t,0})-\hat V\]
和其他方法的区别
相对 DPPO:
  1. advantage 来自 off-policy \(Q\) 而不是 on-policy GAE:\(\hat A=Q(s,a_0)-\hat V\),\(\hat V\) 是同一状态下 \(N\) 条链的 \(Q\) 均值,相当于 GRPO 式组内 baseline。
  2. ratio 从逐步变成整链乘积,整条链一个标量 advantage。
  3. 去噪链可以在 replay 状态上任意重采,不需要新的环境交互。
  4. 稳定化:成功 buffer 上的 BC、多 critic 符号一致才更新的保守 advantage、TD target 多采几个 next action 降方差。
局限
critic 会被策略利用(论文专门处理);\(K\) 大时乘积 ratio 很容易被 clip;需要 replay 和多 critic。论文称样本效率约为 DPPO 的 10 倍。
变体
OGPO+(成功 buffer BC)、OGPO+CA(保守 advantage)。

4噪声空间:只把 \(x_K\) 当 action

这一泳道里生成器完全冻结,所有去噪格都是灰色,只有最上面的噪声格是实心。likelihood 就是噪声策略自己的 Gaussian,和去噪链无关。

Noise PPO

Miao, Loh, Poupart, Kothawade · 2025 · 2506.12036噪声空间
思路
冻结扩散模型;policy 是 prompt 条件的初始噪声分布 \(\pi_\theta(x_K\mid c)=\mathcal N(\mu_\theta(c),\Sigma_\theta(c))\);单步 MDP;奖励是美学 / PickScore / HPSv2 加权和。
计算网格
训练一步
c ~ prompts
x_K ~ π_θold(· | c)                    # 输出头零初始化 ⇒ 初始即 N(0, I)
x_0 = Sampler_frozen(x_K, c)           # LCM 4 步 / SDXL-Turbo
r = 0.2·Aesthetic + 0.4·PickScore + 0.4·HPSv2
 = r - b                              # baseline 具体形式: 不确定
ρ = π_θ(x_K | c) / π_θold(x_K | c)
L = -min(ρ Â, clip(ρ) Â) + γ1 KL(π_θ(·|c) ‖ N(0,I)) - γ2 H(π_θ(·|c))
θ ← θ - η ∇L
目标函数
\[\min_\theta\ -\mathcal J_{\text{PPO}}(\theta)+\gamma_1\,\mathrm{KL}\big(\pi_\theta(\cdot\mid c)\,\Vert\,\mathcal N(0,I)\big)-\gamma_2\,\mathcal H\big(\pi_\theta(\cdot\mid c)\big)\]
和其他方法的区别
相对 DDPO:
  1. action 从“每个去噪转移”缩到“只有 \(x_K\)”,去噪链变成冻结的确定性函数。
  2. MDP 从 \(K\) 步变成 1 步。
  3. KL 的对象从预训练去噪器换成标准高斯 prior。
  4. 不需要存轨迹,也不需要穿过扩散模型反传。
局限
受限于冻结生成器可达的输出;论文观察到更长采样过程下收益明显减小,这是所报告设置中的结果,不是关于所有采样器的定理;初始噪声维度也可能很高。
变体
ReNO(2406.04312):推理时对单个 prompt 用可微奖励做噪声梯度上升,不是 RL。

DSRL

Wagenmaker et al. · 2025 · CoRL 2025 · 2506.15799噪声空间
思路
冻结扩散策略;policy 是 latent noise 上的 \(\pi^W(w\mid s)\);执行 \(a=\pi_{\text{dp}}(s,w)\)(DDIM 确定性采样);off-policy SAC。
计算网格
训练一步
w ~ π^W_ψ(· | s_t),   w ∈ [-b, b]^d      # 在线 b ∈ [1, 3]
a_t = π_dp(s_t, w)                       # 冻结, DDIM σ = 0
执行 a_t, 存 (s, a, w, r, s')
DSRL-SAC:  Q^W(s, w) ← TD;   actor 最大化 Q^W - α log π^W
DSRL-NA:   Q^A(s, a) ← TD                # 可用任意来源的 (s, a) 数据
           Q^W(s, w) ← 回归到 Q^A(s, π_dp(s, w))
           actor: max_ψ Q^W(s, π^W_ψ(s))
目标函数
\[\max_\psi\ \mathbb E_{s}\big[Q^W(s,\pi^W_\psi(s))\big],\qquad Q^W(s,w)\approx Q^A\big(s,\pi_{\text{dp}}(s,w)\big)\ \ (\text{NA})\]
和其他方法的区别
相对 Noise PPO(两者独立提出,比的是机制):
  1. 从单步 bandit 变成多步环境 MDP,每个环境步选一次噪声。
  2. on-policy PPO 换成 off-policy SAC。
  3. 不加到 \(\mathcal N(0,I)\) 的 KL,而是把 \(w\) 截在 \([-b,b]^d\)。
  4. NA 变体在动作空间学 \(Q^A\) 再蒸馏到噪声空间,利用“多个 \(w\) 映到同一 \(a\)”的结构,而且能吃任意来源的动作数据。
局限
能改到什么程度,取决于冻结的 BC 生成器和允许的 latent 范围。OGPO 的实验也讨论了 base 覆盖不足时的问题。另外还需要 critic,噪声维度通常和动作块一样大。这里说的是生成器能产生哪些输出,不是高斯分布在数学上的支持集。
变体
DSRL-SAC、DSRL-NA。

5likelihood-free / 回归:不在链上算 \(\log\pi\)

这一泳道的去噪格大多是空心:参数在训练,但用的是回归 / flow-matching 损失或 pathwise 梯度,不是 likelihood ratio。

Diffusion-DPO

Wallace et al. · 2023 · 2311.12908likelihood-free
思路
没有 rollout 奖励;数据是离线偏好对 \((x_0^w,x_0^l)\);用去噪损失差(ELBO 近似)代替 \(\log\pi\) 差做 DPO。
计算网格
训练一步
(c, x_0^w, x_0^l) ~ 偏好数据集 (Pick-a-Pic)
k ~ U(1..K);  ε^w, ε^l ~ N(0, I)
x_k^w = q(x_0^w, k, ε^w);   x_k^l = q(x_0^l, k, ε^l)      # 前向加噪
d_w = ‖ε^w - ε_θ(x_k^w, k, c)‖² - ‖ε^w - ε_ref(x_k^w, k, c)‖²
d_l = ‖ε^l - ε_θ(x_k^l, k, c)‖² - ‖ε^l - ε_ref(x_k^l, k, c)‖²
L = -log σ(-β T ω(λ_k) · (d_w - d_l))
θ ← θ - η ∇L
目标函数
\[\mathcal L=-\mathbb E\log\sigma\Big(-\beta T\omega(\lambda_k)\big[d_w-d_l\big]\Big)\]
和其他方法的区别
相对 DDPO:
  1. 不采样、不在线打分,数据是固定的偏好对。
  2. 不需要链上 \(\log\pi\),用去噪损失差近似 log-likelihood 差。
  3. 到 \(\epsilon_{\text{ref}}\) 的隐式 KL 来自 DPO 推导。
  4. 每次只训一个随机 \(k\),\(x_k\) 来自前向加噪。
局限
需要成对偏好;离线数据的分布偏移;ELBO 近似带来偏差。
变体
D3PO(2311.13231,逐步 DPO,假设整链偏好等于终端偏好);SPO(2406.04314,逐步采候选 + step-aware 偏好模型);PhysMoDPO(2603.13228,动作生成 + 全身控制器回路的 DPO,G1 真机)。

DiffusionNFT

Zheng et al. · 2025 · 2509.16117likelihood-free
思路
在前向过程上做 online RL:用任意采样器生成,把奖励归一化成 \(r\in[0,1]\),对加噪后的样本做“正 / 负隐式策略”的 flow-matching 回归,不需要 \(\log\pi\)。
计算网格
训练一步
c ~ prompts;  采 G = 24 个 x_0 ~ π_θold   # 任意 solver (如二阶 ODE 40 步), 无 CFG
r_raw = R(x_0, c)
r = 0.5 + 0.5 · clip((r_raw - mean_c(r_raw)) / Z, -1, 1)
for each x_0:
    t ~ U;  ε ~ N(0, I)
    x_t = α_t x_0 + σ_t ε;   v = α̇_t x_0 + σ̇_t ε
    v⁺ = (1-β) v_old(x_t) + β v_θ(x_t)
    v⁻ = (1+β) v_old(x_t) - β v_θ(x_t)
    L += r ‖v⁺ - v‖² + (1-r) ‖v⁻ - v‖²
θ ← θ - η ∇L;    θ_old ← η_i θ_old + (1-η_i) θ     # EMA
目标函数
\[\mathcal L(\theta)=\mathbb E\big[r\,\lVert v^+_\theta(x_t,c,t)-v\rVert^2+(1-r)\,\lVert v^-_\theta(x_t,c,t)-v\rVert^2\big]\]
和其他方法的区别
相对 Flow-GRPO:
  1. 不算 \(\log\pi\),不需要 SDE,rollout 可用任意(ODE、高阶)solver。
  2. 训练在前向加噪的随机 \(t\) 上,不在反向链的转移上。
  3. 组内 advantage 变成权重 \(r\in[0,1]\),分别拉动正、负隐式策略。
  4. 没有 ratio clip,稳定性靠 \(\beta\) 和 \(\theta_{\text{old}}\) 的 EMA。
  5. CFG-free。
局限
没有显式 trust region;归一化尺度 \(Z\) 要选;按单样本加权,长 horizon 的 credit 要自己构造。论文报告 GenEval 约 1k 步到 0.98,FlowGRPO 5k+ 步到 0.95。
变体
—

FPO

McAllister et al. · 2025 · 2507.21053likelihood-free
思路
单层 PPO:每个环境步一个 action,即整个最终动作 \(a_t\);ratio 由条件 flow-matching 损失差构造;采样器是黑盒。
计算网格
训练一步
rollout: a_t = Sampler_θold(s_t)      # 任意采样器 / 步数, 可确定性
         存 N_mc = 8 对 (τ_i, ε_i);  执行 a_t 得 r_t
A_t = GAE(r, V_φ)
for minibatch:
    ℓ_θ(i)   = CFM 损失 of v_θ   at (a_t, τ_i, ε_i)    # 插值约定以原文为准
    ℓ_old(i) = CFM 损失 of v_θold at 同一 (τ_i, ε_i)
    ρ̂ = exp(-mean_i (ℓ_θ(i) - ℓ_old(i)))
    L = -min(ρ̂ A_t, clip(ρ̂, 1-ε, 1+ε) A_t) + L_V
目标函数
\[\hat\rho^{\text{FPO}}(\theta)=\exp\Big(-\frac1{N_{\text{mc}}}\sum_{i=1}^{N_{\text{mc}}}\big(\ell_\theta(\tau_i,\epsilon_i)-\ell_{\theta_{\text{old}}}(\tau_i,\epsilon_i)\big)\Big)\]
和其他方法的区别
相对 DPPO:
  1. action 从“每个去噪转移”变成“整个 \(a_t\)”,回到单层 MDP。
  2. ratio 用 CFM 损失差(ELBO 意义)代替精确的逐步 likelihood。
  3. 采样器任意,可以是确定性的。
  4. critic 与 GAE 不变。
局限
ratio 有偏;MC 估计带来方差(默认 \(N_{\text{mc}}=8\),论文称 \(N_{\text{mc}}=1\) 也优于 Gaussian PPO);图像微调时 CFG 误差会在 RL 迭代中累积。
变体
—

ReFL / DRaFT / AlignProp(对照)

Xu et al. 2023 · 2304.05977;Clark et al. 2023 · 2309.17400;Prabhudesai et al. 2023 · 2310.03739pathwise
思路
如果奖励可微,可以直接沿采样过程反传 \(\nabla_\theta r(x_0(\theta))\)。这里主要按梯度怎么求,把它和 likelihood-ratio policy gradient 分开讨论。
计算网格
训练一步
c ~ prompts;  x_K ~ N(0, I)
with no_grad:  去噪到 k_stop
    # ReFL: 随机较晚的一步;  DRaFT-K: 只留最后 K 步;  AlignProp: 随机截断
with grad:     从 k_stop 去噪到 x_0      # ReFL: 一步预测 x̂_0
r = R_diff(x_0, c)
θ ← θ + η ∇_θ r                         # gradient checkpointing / LoRA
目标函数
\[\max_\theta\ \mathbb E_{c,\,x_K}\big[r\big(x_0(\theta;x_K,c),c\big)\big],\qquad \nabla_\theta r=\frac{\partial r}{\partial x_0}\frac{\partial x_0}{\partial\theta}\]
和其他方法的区别
相对 DDPO:
  1. 梯度估计从 score-function 换成 pathwise,通常能降低方差。
  2. 不需要 \(\log\pi\),也不需要随机采样器。
  3. 要求 \(r\) 对 \(x_0\) 可微。
  4. 三者在反传截断等设计上不同:ReFL 一步,DRaFT-K 最后 K 步(DRaFT-LV 在 K=1 时多次加噪降方差),AlignProp 随机截断。
局限
显存随反传步数增长;reward hacking 严重;奖励不可微时无法使用。
变体
DRaFT-K、DRaFT-LV。

Off-policy Q 对照:Diffusion-QL / DIPO / QSM / IDQL

2208.06193 · 2305.13122 · 2312.11752 · 2304.10573likelihood-free
思路
先学 \(Q(s,a)\),再用不同方式把扩散策略推向高 \(Q\),都不需要链上 likelihood。
计算网格
训练一步
Q_φ ← TD on replay D
Diffusion-QL: L = L_BC(θ) - α Q_φ(s, a_0(θ))     # 沿链反传 ∇_a Q
DIPO:         a' = a + η ∇_a Q(s, a);  用 (s, a') 做扩散 BC
QSM:          通过 Q-score matching 目标联系 score 与 Q 梯度(示意;噪声 / 温度权重见原文)
IDQL:         从 BC 扩散策略采 N 个候选, 按 IQL 隐式权重重采样
目标函数
\[\text{Diffusion-QL:}\ \ \min_\theta\ \mathcal L_{\text{BC}}(\theta)-\alpha\,\mathbb E_{s}\big[Q_\phi(s,a_0(\theta;s))\big]\]
和其他方法的区别
相对 DPPO:
  1. 不需要 likelihood。
  2. critic 从 \(V(s)\) 换成 \(Q(s,a)\),而且 \(Q\) 对动作的梯度直接参与更新(Diffusion-QL、DIPO、QSM)。
  3. on-policy 换成 off-policy。
局限
critic 质量决定上限;高维动作上 \(Q\) 难学;DPPO 论文在难任务上报告这些方法弱于 DPPO。
变体
DACER(2405.15177)、PA-RL(2412.06685)。

6链外 / 输出:在 \(x_0\) 之后加残差

生成器整列冻结,只有残差行是实心。likelihood 是残差 actor 自己的 Gaussian。

Residual RL:ResiP / Policy Decorator

Ankile et al. 2024 · 2407.16677;Yuan et al. 2024 · 2412.13630链外
思路
冻结 base 扩散策略,学一个小 Gaussian 残差 \(\Delta\),执行 \(a^{\text{base}}+\lambda\Delta\);残差是 RL action。
计算网格
训练一步
for t:
    若到重规划点: a^base_{t:t+32} = π_dp(s_t)   # 冻结, DDIM 4 步, 执行 8 步
    Δ_t ~ π_res(· | s_t, a^base_t)               # 每个控制步
    执行 a^base_t + 0.1 · Δ_t, 得 r_t
A = GAE(r, V_φ)                                 # ResiP: PPO
L = PPO-clip(π_res) + L_V
# Policy Decorator: Δ = α·tanh(·), SAC;
#   以概率 ε 用 base+Δ, 否则只用 base; ε 由 0 线性增到 1
目标函数
\[a_t=a_t^{\text{base}}+\lambda\,\Delta_t,\quad \Delta_t\sim\pi_\phi(\cdot\mid s_t,a_t^{\text{base}}),\quad \mathcal L=-\mathbb E\big[\min(\rho_tA_t,\operatorname{clip}(\rho_t,1\pm\epsilon)A_t)\big]\]
和其他方法的区别
相对 DSRL:
  1. action 空间从噪声 \(w\) 换成输出偏移 \(\Delta\)。
  2. 能移动到冻结生成器映射之外的动作,但被缩放系数(ResiP 0.1)或上界 \(\alpha\)(Policy Decorator)限制在局部。
  3. ResiP 用 PPO,Policy Decorator 用 SAC 加渐进式探索调度。
局限
有界小残差主要做局部修正;收益保留在残差网络中,不进入 base 参数。残差可以按原始控制步决策,比 base 重规划更频繁。
变体
EXPO(OGPO 论文中的 residual 基线)。

7Image / video 与 robotics:哪些量能直接对照?

看完这些方法,我们再具体比较一下 image/video 和 robotics。主要还是这几个问题:生成什么,奖励从哪里来,ratio 是对哪个随机变量算的,以及怎么做跨时间的 credit assignment? 这里比较的是方法的写法,不把不同 benchmark 的分数拿来排名。

Image / video

一次生成中,条件 \(c\) 是固定的。\(x_0\) 可以是一张图,也可以是一整段视频,生成完再给奖励 \(R(x_0,c)\)。视频当然有时间维度,但如果中间没有执行动作、重新观测和决策,多生成几帧并不会多出一层环境 MDP。

Robotics

去噪链生成动作或动作块 \(A_j\),执行后得到新的状态 \(s_{j+1}\),再用它作为下一条链的条件。也就是说,下一次生成取决于上一次的输出和环境。这里有三个长度要分开:\(K\) 是生成的计算步数,\(H\) 是预测多少个动作,\(h\) 是实际执行多少个动作。

7.1 同一个 score-function 恒等式,两个不同的回报问题

单次图像 / 视频生成可写成下面的终端奖励问题。随机初始噪声的分布固定时,梯度只落在可训练的条件转移上;这里暂不加入 baseline、PPO clipping 和 KL。

\[p_\theta(x_{0:K}\mid c)=p(x_K)\prod_{k=1}^{K}\pi_\theta(x_{k-1}\mid x_k,c),\qquad J_{\mathrm{gen}}=\mathbb E[R(x_0,c)].\] \[\nabla_\theta J_{\mathrm{gen}}=\mathbb E\!\left[R(x_0,c)\sum_{k=1}^{K}\nabla_\theta\log\pi_\theta(x_{k-1}\mid x_k,c)\right].\]

机器人里,设最终动作分布是 \(\pi_\theta(A_j\mid s_j)\)。policy gradient 里乘的 advantage,要估计这个决策对之后环境回报的影响。实现时,还可以把 score-function 项展开到去噪层。DPPO 具体用了 \(\gamma_{\mathrm{denoise}}^k A_j\) 这样的估计和加权,所以光把图像的 \(R\) 换成当前步的 \(r_j\),还得不到同一个更新。

\[J_{\mathrm{robot}}=\mathbb E\!\left[\sum_{n\ge0}\gamma_{\mathrm{env}}^n r_n\right],\qquad \nabla_\theta J\;\propto\;\mathbb E_{s_j,A_j}\!\left[\nabla_\theta\log\pi_\theta(A_j\mid s_j)\,A^\pi(s_j,A_j)\right].\]

上面的状态期望要用和折扣目标对应的访问分布。图像生成里,我们经常把最终分数分给整条链;控制里还要估计这次动作对未来状态有什么影响。critic 帮忙估计的就是这个量,并不是只要做 robotics 就一定得有 critic。

7.2 Action chunking:先写清楚环境一步有多长

设第 \(j\) 次重规划生成长度 \(H\) 的动作块,只执行前 \(h_j\le H\) 步;下次重规划前不再调用生成器。令 \(n_j\) 是该块开始的原始控制步,\(b_j=0\) 表示真正终止,否则为 1。若 \(\gamma\) 按原始控制步定义,则以重规划为单位的奖励和 bootstrap 应为:

\[\bar r_j=\sum_{u=0}^{h_j-1}\gamma^u r_{n_j+u},\qquad \Gamma_j=\gamma^{h_j},\qquad \delta_j=\bar r_j+\Gamma_j b_j V(s_{j+1})-V(s_j).\] \[\hat A_j=\delta_j+\Gamma_j\lambda b_j\hat A_{j+1}.\]

这里的 \(\lambda\) 是按每次重规划定义的。也可以把每个 chunk 当作一步来定义折扣,不过时间尺度就变了。算 bootstrap 时,还要区分时间上限截断和真正终止。后面 \(H-h_j\) 个动作没有执行,也就没有给这个 chunk 产生直接的环境奖励,不能把预测出来的动作当作已经执行过来累计回报。这里给出的是一种 chunk-level 写法,具体实现可能用别的约定。

7.3 为什么“同 prompt 组内比较”不能原样搬成“同 batch 比较”

Flow-GRPO / DanceGRPO 在同一个条件 \(c\) 下采一组样本,比较的是这个条件下生成得好不好。但机器人的一个 batch 里,\(s_1,s_2,\ldots\) 可能来自不同难度、不同进度的状态。如果直接把这些回报放在一起归一化,就会混淆“动作选得好”和“起始状态本来就好”。

\[\hat A_i^{\mathrm{gen}}=\frac{R(x_0^{(i)},c)-\bar R_c}{\operatorname{std}_c(R)+\epsilon},\qquad \hat A_i^{Q}(s)=Q(s,a_i)-\frac1N\sum_{m=1}^{N}Q(s,a_m).\]

一种办法是恢复到同一个状态,采几条后续轨迹来比较;另一种是在同一状态采几个候选动作,让 critic 估计它们的回报。前者需要能 reset 或 branching 的环境,后者则要看 critic 准不准,尤其是在分布外动作上。OGPO 的同状态候选链比较走的是后一条路。另外,上面两式的归一化也不一样:只减均值和再除以标准差,会得到不同的更新尺度。

7.4 “有 log-prob”到底是哪个 log-prob?

每步 Gaussian 的密度都能算,并不意味着最终动作的边缘密度也能算。存下整条潜变量轨迹,可以算 joint ratio;但要算最终动作的密度,还得把中间变量积分掉。所以,每步分别 clip、把整链 ratio 乘起来再 clip、对最终动作边缘分布做 PPO,是三个不同的目标。

\[\pi_\theta(a^0\mid s)=\int p(a^K)\prod_{k=1}^{K}\pi_\theta(a^{k-1}\mid a^k,s)\,\mathrm da^{1:K},\qquad \rho_{\mathrm{chain}}=\exp\!\left(\sum_k\Delta\log\pi_k\right).\] \[\sum_k\min(\rho_k A,\operatorname{clip}(\rho_k)A)\;\ne\;\min\!\left((\prod_k\rho_k)A,\operatorname{clip}(\prod_k\rho_k)A\right).\]

读 DPPO、ReinFlow、OGPO、GenPO 时,这一点值得到代码里确认。固定的初始噪声先验可以在 ratio 里消掉;如果像 Noise PPO / DSRL 那样连噪声策略也训练,优化的对象就换了。FPO 的 CFM-loss ratio 则是 surrogate,和前面两种精确密度比要分开看。

7.5 对照实验应该对齐什么?

比较维度Image / videoRobotics
采样预算prompt 数、每 prompt 样本数 G、分辨率 / 帧数、采样步数 K、reward 调用数环境交互步数、reset 数、执行步长 h、候选动作数、去噪计算量
优化预算实际更新的去噪步数、前后向次数、reference-model 调用、显存与 wall-clock同样的模型计算,加 critic TD / GAE 成本;需单列环境采集时间
训练 / 推理分布SDE 训练与 ODE 推理、CFG、分辨率和采样步数改变移除探索噪声、动作块执行方式、闭环频率及状态分布改变
结果与失败独立 reward / 人类偏好、prompt 泛化、多样性和 reward hacking成功率、回报、完成时间、扰动恢复、越界动作及 critic exploitation

所以看到“更省”时,我会先看省的是什么:训练 FLOPs、显存、reward 调用,还是环境交互。跑一次图像 reward model,和真实机器人失败后重新复位一次,成本显然不一样。上表列的是我会比较的几个方面,各个方法的具体配置还是看对应论文。

8两两对比器

选两个方法,并排看它们的计算网格,下表逐项列出差异,有差异的行会高亮。默认是 DDPO 对 DPPO:从单层去噪 MDP 到双层 MDP 到底改了哪几处。

DDPO

DPPO

维度DDPODPPO

高亮行表示两者在该维度上不同。表中内容与对应卡片一致。

9总对比表

“likelihood”指是否需要策略在去噪链(或噪声 / 残差)上的精确 log-prob。“on/off”指策略更新所用数据。

方法领域优化对象likelihoodcriticon / off奖励主要局限
链上 likelihood-ratio(score function)
DDPO图像整条链(逐步 ratio)是否on黑盒终端标量方差大、无 KL 易过优化
DPOK图像整条链 + 逐步 KL是可选 \(V(x_k,c)\)on学习的偏好奖励规模小、KL 上界保守
Flow-GRPO图像整条链(SDE,减步训练)是(SDE)否(组内)onGenEval / OCR / 偏好SDE 噪声需调;outcome-only credit
DanceGRPO图像 / 视频约 60% 的时间步是(SDE)否(组内)on多奖励,advantage 相加计算重;依赖共享噪声等技巧
MixGRPO图像滑动窗口内的步是(窗口内 SDE)否on偏好窗口调度是启发式
DPPO机器人最后 \(K'\) 步(双层 MDP)是\(V(s_t)\)on环境稠密 / 稀疏回报样本效率低;超参多
ReinFlow机器人整条链 + 噪声网络是(注噪)是on环境回报边缘分布偏离 prior
πRLVLA整条链(Noise / SDE)是是on任务成功大模型 rollout 成本
GenPO机器人可逆扩散整体是(精确边缘)是on环境回报动作维度加倍;结构受限
OGPO机器人整条链(乘积 ratio)是\(Q\)(off-policy)混合\(Q\) 作终端奖励critic 被利用;需保守化
链上 pathwise / 混合
ReFL / DRaFT / AlignProp图像整条链或截断的最后 K 步否否on(生成即训)可微奖励奖励必须可微;显存;hacking
NCDPO机器人整条链(BPTT)+ 输出 Gaussian输出头是on环境回报显存随 \(K\) 增长
Diffusion-QL / DIPO / QSM / DACER / IDQL / PA-RL机器人整条链 / 动作选择否\(Q\)off环境回报critic 质量决定上限
不依赖链上 likelihood
FPO机器人(图像试过)整个模型否(CFM 替代)是on环境回报ratio 有偏;CFG 下不稳
DiffusionNFT图像整个模型(前向过程)否否online归一化到 [0,1]无显式 trust region
Diffusion-DPO / D3PO / SPO图像整个模型 / 逐步否(ELBO 近似)否off / 迭代成对偏好需偏好数据;离线分布偏移
噪声空间 / 输出残差(生成器冻结)
Noise PPO图像初始噪声分布(单步 MDP)噪声策略的 Gaussian原整理未确认on美学 / 偏好多步推理时收益被洗掉
DSRL机器人初始噪声 \(w\)噪声策略的\(Q^W\) / \(Q^A\)off环境回报受冻结生成器可达输出限制
ResiP机器人输出残差残差 Gaussian是on环境回报只能局部修正
Policy Decorator机器人有界输出残差残差的\(Q\)off环境回报只能局部修正

参考文献

文献编号、标题与作者沿用 2026-10-07 的原始整理;年份按 arXiv 首次提交时间计。文中具体数值与配置均为所引论文或代码的设定,不是通用默认值。

  1. Black et al. Training Diffusion Models with Reinforcement Learning (DDPO). 2023. arXiv:2305.13301
  2. Fan et al. DPOK: Reinforcement Learning for Fine-tuning Text-to-Image Diffusion Models. 2023. arXiv:2305.16381
  3. Zhang et al. Large-scale Reinforcement Learning for Diffusion Models. 2024. arXiv:2401.12244
  4. Wallace et al. Diffusion Model Alignment Using Direct Preference Optimization. 2023. arXiv:2311.12908
  5. Yang et al. Using Human Feedback to Fine-tune Diffusion Models without Any Reward Model (D3PO). 2023. arXiv:2311.13231
  6. Liang et al. Aesthetic Post-Training Diffusion Models from Generic Preferences with Step-by-step Preference Optimization (SPO). 2024. arXiv:2406.04314
  7. Xu et al. ImageReward (ReFL). 2023. arXiv:2304.05977
  8. Clark et al. Directly Fine-Tuning Diffusion Models on Differentiable Rewards (DRaFT). 2023. arXiv:2309.17400
  9. Prabhudesai et al. Aligning Text-to-Image Diffusion Models with Reward Backpropagation (AlignProp). 2023. arXiv:2310.03739
  10. Liu et al. Flow-GRPO: Training Flow Matching Models via Online RL. 2025. arXiv:2505.05470
  11. Xue et al. DanceGRPO: Unleashing GRPO on Visual Generation. 2025. arXiv:2505.07818
  12. Li et al. MixGRPO: Unlocking Flow-based GRPO Efficiency with Mixed ODE-SDE. 2025. arXiv:2507.21802
  13. Zheng et al. DiffusionNFT: Online Diffusion Reinforcement with Forward Process. 2025. arXiv:2509.16117
  14. Miao et al. A Minimalist Method for Fine-tuning Text-to-Image Diffusion Models (Noise PPO). 2025. arXiv:2506.12036
  15. Eyring et al. ReNO: Reward-based Noise Optimization. 2024. arXiv:2406.04312
  16. Ren et al. Diffusion Policy Policy Optimization (DPPO). 2024. arXiv:2409.00588,代码
  17. Yang et al. Fine-tuning Diffusion Policies with Backpropagation Through Diffusion Timesteps (NCDPO). 2025. arXiv:2505.10482
  18. Zhang et al. ReinFlow: Fine-tuning Flow Matching Policy with Online Reinforcement Learning. 2025. arXiv:2505.22094
  19. McAllister et al. Flow Matching Policy Gradients (FPO). 2025. arXiv:2507.21053
  20. Ding et al. GenPO: Generative Diffusion Models Meet On-Policy Reinforcement Learning. 2025. arXiv:2505.18763
  21. Chen et al. πRL: Online RL Fine-tuning for Flow-based Vision-Language-Action Models. 2025. arXiv:2510.25889
  22. Patil et al. OGPO: Sample Efficient Full-Finetuning of Generative Control Policies. 2026. arXiv:2605.03065
  23. Wagenmaker et al. Steering Your Diffusion Policy with Latent Space Reinforcement Learning (DSRL). 2025. arXiv:2506.15799
  24. Ankile et al. From Imitation to Refinement: Residual RL for Precise Assembly (ResiP). 2024. arXiv:2407.16677
  25. Yuan et al. Policy Decorator: Model-Agnostic Online Refinement for Large Policy Model. 2024. arXiv:2412.13630
  26. Wang et al. Diffusion-QL. 2022. arXiv:2208.06193;Hansen-Estruch et al. IDQL. 2023. arXiv:2304.10573;Yang et al. DIPO. 2023. arXiv:2305.13122;Psenka et al. QSM. 2023. arXiv:2312.11752;Wang et al. DACER. 2024. arXiv:2405.15177;Mark et al. PA-RL. 2024. arXiv:2412.06685
  27. Schulman et al. PPO. 2017. arXiv:1707.06347;Schulman et al. GAE. 2015. arXiv:1506.02438
  28. Shao et al. DeepSeekMath (GRPO). 2024. arXiv:2402.03300;Ahmadian et al. RLOO. 2024. arXiv:2402.14740;Hu et al. REINFORCE++. 2025. arXiv:2501.03262
  29. Han et al. ReinDiffuse. 2024. arXiv:2410.07296;Yue et al. RLPF. 2025. arXiv:2506.12769;PhysMoDPO. 2026. arXiv:2603.13228
数值结果均引自各论文自述,未复现。标注“不确定”、“推测”或位于“观点”框内的内容是判断,不是论文结论。网格图中的 5 行去噪步是示意,不代表真实步数。