跳转至

GenPO: Generative Diffusion Models Meet On-Policy Reinforcement Learning

论文阅读笔记 — 用于后续讨论的概览


1. 基础信息

  • 题目: GenPO: Generative Diffusion Models Meet On-Policy Reinforcement Learning
  • 作者: Shutong Ding, Ke Hu, Shan Zhong, Haoyang Luo, Weinan Zhang, Jingya Wang, Jun Wang, Ye Shi(ShanghaiTech / UESTC / SJTU / UCL)
  • arXiv 编号: 2505.18763(submitted 2025-05,targeted at NeurIPS 2025)
  • 项目主页: https://shanghai-guppy.github.io/genpoplusplus/
  • 代码: https://github.com/wadx2019/genpo
  • 关键词: on-policy RL, diffusion policy, flow matching, PPO, IsaacLab, exact diffusion inversion, EDICT, normalizing flow

motivation alt Figure 1:diffusion policy 的三种 RL 学习范式。off-policy(中)可用 Q 函数梯度回传更新;offline(右)用静态数据;on-policy(左)原本无法应用 — 因为 log-likelihood 不可解析得到。GenPO 要填的就是左侧这块空白。

2. 文章介绍

2.1 解决的领域和问题

主线是 continuous-control RL 里的 policy parameterization 选择问题。传统 PPO 用 unimodal Gaussian 策略,表达力受限于单峰;扩散/flow policy 已被证明在 offline RL 和 off-policy RL 中能更好地拟合多模态最优动作分布,但没人把 diffusion policy 接进 on-policy PPO 框架

而 on-policy 恰恰是当前 large-scale 并行 GPU 模拟器(IsaacGym, IsaacLab)的主流:成千上万个并行环境同步采样、同步更新,PPO 是 first-class citizen,off-policy 算法在巨大 replay buffer 的分布漂移下反而难以收敛。所以"扩散策略 + on-policy"的缺口直接堵住了 expressive policy 在主流机器人 sim2real pipeline 里的落地。

2.2 Motivation

核心矛盾:on-policy 的 surrogate objective 需要 explicit \(\log \pi_\theta(a|s)\)(用于 importance ratio、entropy bonus、KL 自适应),但 diffusion/flow policy 走的是迭代去噪 / ODE 积分,前向 (forward) 和反向 (reverse) 之间存在 Euler-Maruyama 离散化误差,导致 \(\log \pi\) 不可逆地求不出来。

作者的新角度:借鉴图像生成里的 EDICT(Exact Diffusion Inversion via Coupled Transformations),用一对耦合 noise vectors 交替更新构造真正可逆的去噪流程,从而能用 change-of-variables 公式精确算出 log-likelihood,把扩散策略带回到 PPO 一族的所有数学工具里(entropy 项、KL 自适应学习率、importance ratio clipping)。

2.3 之前工作的问题

类别 代表工作 缺陷
直接 policy gradient 套在 diffusion 黑盒上 DACER, FlowPG, SAC-NF, TRPO-NF 仍是 off-policy 框架;log-likelihood 用近似/启发式,无法保证在 on-policy 严格 importance sampling 下的无偏
用 Q 函数梯度/数值反推 diffusion 训练目标 DIPO, QVPO, QSM, MaxEntDP 不需要 log-likelihood,但只能用 Q 函数引导 — off-policy only;在 IsaacLab 这种巨量并行环境下 replay buffer 分布漂移使其难以收敛(论文表 1 中 DACER/QVPO 几乎学不出 Ant、Humanoid)
Diffusion 用于 offline / IL Diffusion-QL, IDQL, FQL, Diffusion Policy, Decision Diffuser 完全离线,无 online interaction;无法利用大规模并行模拟器
用 PG 微调离线预训练的 diffusion policy DPPO 是 fine-tune 而不是 from-scratch online RL,且依然需要绕过 likelihood 计算

2.4 论文解决方案(一句话)

用 EDICT 的耦合双噪声向量把 flow policy 的前向/反向过程构造成精确可逆映射,再把 MDP 重写到一个 doubled dummy action 空间里使可逆性成立,从而首次让 diffusion policy 拥有解析 log-likelihood,可以直接塞进 PPO 的 clipped surrogate、entropy bonus 和 KL 自适应学习率。

2.5 与前序工作的关系

  • EDICT (Wallace et al., 2023):是方法上的直接来源 — image editing 里用耦合 noise 做精确逆扩散,本文把它从 inference-only 改造成"训练用 likelihood 估计"。关键差异:EDICT 用 \(x_0=y_0=\epsilon\)(同一个噪声);GenPO 独立采样两份噪声,才能套 change-of-variables 公式。
  • Normalizing flow (Rezende & Mohamed, 2015):理论支撑 — 整个 log-density 计算依赖 Jacobian determinant 公式。
  • PPO (Schulman et al., 2017):宿主框架,clipped surrogate / GAE / KL 自适应学习率原样照用。
  • IsaacLab + RSL-RL:实验平台。GenPO 在 RSL-RL 里实现;baseline 在 SKRL 里实现。

3. 方法介绍

3.1 形式化

标准 MDP \((\mathcal{S}, \mathcal{A}, p, r, \rho_0, \gamma)\)。Policy 是一个 flow matching 策略:给定状态 \(s\),从 \(\mathcal{N}(0, I)\) 采初值,沿 learned vector field \(v_\theta(\cdot, t, s)\) 积分 \(T\) 步得到动作 \(a\)。问题:PPO 需要 \(\log \pi_\theta(a|s)\),但 Euler-Maruyama 离散化的前向/反向并不严格互逆 — 见 (eq:ddim) DDIM 的近似项。

3.2 EDICT-style 可逆耦合更新

引入两个状态变量 \((x_t, y_t)\),每个时间步交替更新:

Reverse(采样,\(t \to t+\Delta t\): $$ \tilde{x}{t+\Delta t} = x_t + v\theta(y_t, t)\Delta t, \quad \tilde{y}{t+\Delta t} = y_t + v\theta(\tilde{x}{t+\Delta t}, t)\Delta t $$ $$ x} = p \tilde{x{t+\Delta t} + (1-p)\tilde{y}}, \quad y_{t+\Delta t} = p \tilde{y{t+\Delta t} + (1-p) x $$

Forward(反推 likelihood):先 unmixing 再倒推 vector field 即可逐步还原 \((x_0, y_0)\)

这套耦合保证了每一步 Jacobian 都是闭式的、行列式可算(核心是因为更新 \(\tilde x\) 时只用了 \(y\),反过来只用 \(\tilde x\) — 是个 triangular 结构,类似 affine coupling layer)。

3.3 Doubled Dummy Action 空间

可逆耦合需要 \(x, y\) 两条 channel,但原 action 空间 \(\mathcal{A}\) 维度可能是奇数;作者直接把 MDP 改写到 \(\tilde{\mathcal{A}} = \mathcal{A} \times \mathcal{A}\) 上:

  • 训练:策略输出 dummy action \(\tilde a = (x, y)\)
  • 与环境交互时取 \(a = \frac{x+y}{2}\)
  • 重参数后的 MDP 的最优解 \(\tilde a^\star\) 经平均映射回原 MDP 也是最优 — 显然成立。

新带来的问题:dummy action 空间是冗余的(\(\tilde a = (-1, 1)\)\((-2, 2)\) 都对应 \(a=0\)),如不约束会导致无意义的探索,浪费样本。

解决:(1) 在 (eq:fpo_reverse) 的 mixing 步里用系数 \(p=0.9\)\(x, y\) 互通信息保持靠近;(2) 加显式 compression loss \(\mathbb{E}[(x_1 - y_1)^2]\),让两个 channel 趋于一致。

method alt Figure 2:GenPO 的训练 (reverse) 和反推 likelihood (forward) 流程。每步 \(x\)\(y\) 用对方在前一中间步的值更新,是 EDICT-style 双链耦合;mixing 步保证两链不偏离过远。这个图最该带走的一点是:可逆性来自"算 \(\tilde x\) 时不用 \(x\)、算 \(\tilde y\) 时不用 \(y\)"的 triangular Jacobian。

3.4 Likelihood / Entropy / KL 的解析估计

有了可逆性后,由 change-of-variables(Lemma 1): $$ \log \pi_\theta(\tilde a | s) = \log p_Z(\tilde a_0) - \sum_t \log \left|\det \frac{\partial \tilde a_{t+\Delta t}}{\partial \tilde a_t}\right| $$ 其中 \(\tilde a_0 \sim \mathcal{N}(0, I)\)

  • Entropy loss\(\mathcal{L}^{ENT} = \mathbb{E}_{\tilde a \sim \pi_\theta}[\log \pi_\theta(\tilde a | s)]\) — 直接蒙特卡洛估计,无需启发式。
  • KL 自适应学习率\(\widehat{\mathrm{KL}}(\pi_{\theta_{old}} \| \pi_\theta) = \mathbb{E}_{\tilde a \sim \pi_{\theta_{old}}}[\log \pi_{\theta_{old}}(\tilde a|s) - \log \pi_\theta(\tilde a|s)]\)。当 KL \(\geq \bar\epsilon\) 时学习率减半,KL \(\leq \underline\epsilon\) 时加倍 — 与 RSL-RL 标准 PPO 配置一致。

3.5 总 PPO 风格目标

\[ \mathcal{L}(\theta) = \mathcal{L}^{PPO}(\theta) + \lambda \mathcal{L}^{ENT}(\theta) + \nu \mathbb{E}_{x_1, y_1 \sim \pi_\theta}\left[(x_1 - y_1)^2\right] \]

其中 \(\mathcal{L}^{PPO}\) 是把 importance ratio \(\pi_\theta(\tilde a|s)/\pi_{\theta_{old}}(\tilde a|s)\) 放进 clipped surrogate(\(\epsilon=0.2\));GAE(\(\lambda=0.95\), \(\gamma=0.99\)) 估计 advantage。

3.6 Implementation Details

  • Flow steps \(T = 5\)(diffusion 子时间步),积分 5 步推断动作。
  • Mixing 系数 \(p = 0.9\),所有任务统一。
  • Compression 系数 \(\nu = 0.01\),所有任务统一。
  • Actor / critic:MLP [400, 200, 100],Mish 激活。Actor 输入 = concat(state, action, sinusoidal_embedding(t)) → MLP
  • 时间嵌入:DDPM-style sinusoidal positional encoding,32 维(quadcopter 用 16 维),再过 [256, 256] MLP。
  • 采样\(x_0, y_0 \sim \mathcal{N}(0, I)\) 独立采样(与 EDICT 设 \(x_0 = y_0\) 不同)— 这是能套 change-of-variables 的必要条件。
  • 并行环境:默认 4096 个并行环境;512 / 1024 / 2048 / 8192 都做了 scaling 实验,4096 是 sweet spot。
  • 硬件:8× RTX 4090D(24 GB),8 卡上 PPO 几乎没加速,GenPO 反而能受益于多 GPU 并行(appendix Fig. 13)。
  • 推断时延:Ant 任务上约 2.577 ms / call,比 QVPO/DACER 快得多,足够实时机器人控制频率。
  • 任务套件:8 个 IsaacLab benchmark — Ant (60×8), Humanoid (87×21), Franka-Lift-Cube (36×8), Shadow-Hand-Repose (157×20), Anymal-D (48×12), Unitree-Go2 (235×12), Unitree-H1 (256×19), Quadcopter (12×4)。
  • 种子:每个任务 5 个 seed。

4. 结果对比

4.1 IsaacLab 8 benchmark 主结果(平均 episode return ± std)

compare alt Figure 3:8 个 IsaacLab benchmark 上的训练曲线,5 seed 平均。GenPO(红)在 8/8 上都拿到最优;off-policy 方法(DDPG/TD3/SAC/DACER/QVPO)在大规模并行环境下普遍崩溃 — 这是论文最核心的"on-policy 才是 IsaacLab 该用的范式"的论据。

算法 Ant Humanoid Franka-Arm Quadcopter Anymal-D Unitree-Go2 Unitree-H1 Shadow-Hand
DDPG 62.96 (5.18) 63.34 (7.39) -1.61 (0.76) 0.03 (0.13) -0.86 (0.55) 9.09 (0.81) -6.63 (1.04) 6209.59 (559.44)
TD3 67.80 (7.05) 82.36 (4.70) 0.03 (0.12) 0.17 (0.15) -0.89 (0.77) 8.44 (1.05) -4.97 (0.87) 9386.64 (314.37)
SAC 38.68 (21.84) 49.52 (16.89) -1.10 (0.95) 38.46 (22.20) -5.12 (0.14) 6.67 (2.02) -5.05 (0.18) 8459.74 (135.79)
DACER 0.29 (0.98) 0.58 (0.01) -3.43 (2.82) 25.39 (22.99) -1.62 (0.09) 6.37 (2.07) -6.21 (0.17) -207.43 (88.82)
QVPO 7.19 (2.32) 10.59 (6.30) -0.12 (0.14) 63.99 (45.42) -1.81 (0.36) 7.34 (0.62) -4.72 (0.16) 134.36 (39.05)
PPO 146.94 (10.61) 197.25 (18.26) 78.14 (50.43) 99.08 (13.49) 9.80 (4.78) 15.67 (1.92) 18.97 (2.02) 8402.21 (435.64)
GenPO 177.90 (13.87) 273.94 (16.96) 144.78 (3.10) 137.95 (0.84) 19.80 (0.16) 28.01 (0.76) 26.09 (0.68) 11282.35 (322.94)

注意几个关键观察: - 相对 PPO 提升 21% (Ant) ~ 85% (Franka-Arm),在 Anymal-D / Unitree-Go2 上提升 ~ 2× — 这些任务里 PPO 早就饱和,GenPO 多模态探索拿到了显著新空间。 - DACER / QVPO 这两个 off-policy diffusion 在 IsaacLab 上几乎完全失败 — 这是支撑"on-policy diffusion 缺口必须填"叙事的关键证据。 - GenPO std 普遍比 PPO 更低(Anymal-D: 0.16 vs 4.78;Quadcopter: 0.84 vs 13.49)— 训练更稳定。

4.2 关键消融(Ant-v0)

ablation alt Figure 4:(a) 压缩损失系数 \(\nu\) 的影响;(b) entropy 和 KL 自适应学习率分别去掉的对比;(c) mixing 系数 \(p\) 的影响。最值得注意的是 (a) 的"过大反而崩"和 (c) 的"\(p\) 太小数值不稳定"。

Configuration Ant return
\(\nu = 0.01\) (Full) ~ 178
\(\nu = 0\) (no compression) 慢且抖
\(\nu = 0.1\) 受限
\(\nu = 0.5\) 显著下降
\(\nu = 1.0\) 几乎学不出
Configuration Ant return
Full ~ 178
去掉 entropy bonus 探索下降,return 收敛低
去掉 KL 自适应学习率 收敛慢且不稳
两者都去掉 性能显著退化
Mixing \(p\) Ant return
0.5 / 0.7 数值不稳,foward 步爆掉
0.9 最优
1.0 (无 mixing) dummy action 冗余探索,收敛慢

4.3 附加实验(appendix)

  • Flow steps \(T \in \{1, 2, 5, 10, 20\}\)\(T=1\) 性能差,\(T \geq 2\) 都鲁棒;\(T=5\) 是 wall-clock vs return 的折中。
  • Dummy action 重组系数 \(\alpha\)\(a = \alpha x + (1-\alpha) y\)\(\alpha=0.5\) 最优 — 两端 \(\alpha \in \{0, 1\}\) 都显著下降(验证了"两个 channel 都用"的设计)。
  • Sinusoidal time embedding vs 直接 concat scalar \(t\):sinusoidal 显著好,验证了 DDPM-style 时间编码。
  • 并行环境数:1024 / 2048 / 4096 单调上升,4096 → 8192 收益边际,作者选 4096。
  • Wall-clock:单卡训练 GenPO 比 PPO 慢(约 2-3 倍),但8 卡并行时 GenPO 加速比远好于 PPO(PPO 单卡和多卡几乎一样),所以多 GPU 下 wall-clock 接近平手。推断时延 2.577 ms,远好于 QVPO/DACER 的几十毫秒。

5. 引申问题 / 讨论

5.1 做得好的地方

  1. 真把 likelihood 算出来了,而不是又一个估计。Change-of-variables 公式 + triangular Jacobian 让 \(\log \pi\) 是闭式的(采样路径上的逐步 log-det 之和),entropy 和 KL 也是无偏 Monte Carlo — 这一点直接区分于 DIME / DACER / QVPO 等"估计派",把 PPO 整套数学工具完整保下来。

  2. EDICT → RL 的迁移角度新颖且精确。原始 EDICT 是 inference-time image editing trick,被搬到 RL 训练 loop 里仍要保证 forward / reverse 严格互逆 — 关键调整是 \((x_0, y_0)\) 独立采样而非耦合采样,这处变化才使 likelihood 公式可用。这是个 first-principle 推动的设计。

  3. Doubled action + averaging 的工程简洁性。比起重新设计可逆 NN 架构(normalizing flow 那种 coupling layer),这里只需要在 MDP 外层做 wrapper:策略输出 \((x, y)\)、与环境交互前取均值。完全不改 IsaacLab 接口,工程友好。

  4. 冗余探索的 mitigation 做得细致。Mixing 系数 \(p=0.9\)(信息互通保持 \(x, y\) 接近)+ compression loss \(\nu (x_1 - y_1)^2\)(显式拉近)双重约束,并且 ablation 系数选得很合理(\(p \to 0.5\) forward 数值不稳,\(\nu \to 1\) 完全限制策略表达力 — 都给出了直观解释)。

  5. IsaacLab 大规模并行的"自然舞台"判断准确。论文反复强调 off-policy 在 4096+ 并行环境下 replay buffer 漂移导致 diffusion 跟不上,这个观察被 Table 1 的 DACER ≈ 0 / QVPO ≈ 7 等数字强有力地支持 — 不是为了证明"我比你强",而是确实点出了 paradigm 适配性问题。

  6. 解析 entropy 与 KL 自适应一起回归。这两个机制在 Gaussian PPO 里是默认配置,能让 diffusion policy 也享受,是显著的"以小博大"工程价值。

5.2 做得不够好的地方 / 值得质疑的地方

  1. Compression loss 的 \(\nu = 0.01\) 暴露了核心 trick 的脆弱。Figure 4(a) 显示 \(\nu = 0.5\) 就崩了 — 这意味着 dummy action 空间扩张引入的冗余探索问题没有真正被解决,只是被超参强行压住。如果在更高维动作空间(比如 Shadow Hand 20 维 → dummy 40 维)冗余指数增长,\(\nu\) 是否需要任务相关调优?论文却把 \(\nu\) 在 8 个任务上全部固定 — 看起来太干净,可能是把没探好的 case 隐藏了。

  2. Doubled action 是"用空间换可逆性",本质上是把 normalizing flow 的 coupling-layer 思路外置。但 RL 中真正需要的是动作空间维度的语义保留 — 把 20 维 Shadow Hand 写成 40 维 dummy,再让 mixing \(p\) 和 compression \(\nu\) 把它"压回去",这种 detour 在样本效率上几乎一定不如直接设计 invertible flow 架构(如 Real-NVP / Glow style 的 actor)。论文没和 normalizing-flow policy 做正面对比,回避了这个最自然的 baseline。

  3. flow steps \(T = 5\) 的 Jacobian 都要存在反向图里 — 显存代价大。Conclusion 里作者自己承认了:每个采样步都要保留计算图算 log-det,PyTorch 下 VRAM 占用显著高于 Gaussian PPO。Ant (8 维 → dummy 16 维) 还撑得住,到 Shadow-Hand 20 维(dummy 40 维)× 5 步 × 4096 并行,这套 graph retention 的 GPU 内存 footprint 一定不小,但论文没给具体数字。

  4. "GenPO 全胜"的 Table 1 隐藏了若干疑点

  5. DACER 在 Ant / Humanoid 上 ≈ 0:这两个任务对其他 baseline 都拿到正 reward,DACER 几乎完全没学到 — 是否暗示 DACER 的实现 / 超参没有公平调优?
  6. QVPO 在 Quadcopter 上 63.99 (std 45.42):std 远大于 mean,说明部分 seed 学到了部分没学到 — 但被作为"GenPO 远超"的对照,不太严谨。
  7. PPO baseline 用的 SKRL 实现,GenPO 用 RSL-RL 实现:作者承认了,但两套库的 PPO 实现并不完全等价(advantage normalization、minibatch shuffle、KL early-stop 等细节可能不同)。在 Anymal-D / Unitree-Go2 / Unitree-H1 上 PPO 表现明显低于社区已知 RSL-RL 的训练结果,这点未做 sanity check。

  8. Mixing 系数 \(p = 0.9\) 在所有任务上统一 — 但 \(p\) 物理意义是"信息互通强度",跟动作维度强相关。Quadcopter 4 维 → dummy 8 维,跟 Shadow-Hand 20 维 → dummy 40 维所需的"信息整合带宽"差异巨大,统一 0.9 几乎肯定不是最优。这是后续工作必然要打开的口子。

  9. EDICT-style 可逆其实是数学上严格、实际上数值脆弱。Figure 4(c) 已经显示 \(p \leq 0.7\) forward 反推就数值爆掉 — 因为 unmixing 步要除以 \(p\)。在 \(T=20\) 这种深步数下,5 个 task 都至少 \(T \geq 5\),单步浮点误差能否在 log-det 求和中保持稳定?没有给数值精度的分析。

  10. 真实机器人部署的缺席。摘要明明把"real-world robotic deployment"作为卖点,但全篇没有 sim2real 实验。8 个 task 全部停留在 IsaacLab — 这是 NeurIPS 2025 的合理 scope,但 "first method to unlock real-world deployment of diffusion policies" 的措辞和实验范围严重不符。

  11. 多模态探索这个理论优势没被实验验证。Diffusion policy 相对 Gaussian 的核心卖点是"多峰动作分布",但论文没设计"显式多最优解"的 task(如 multi-goal maze、双目标 dexterous)来证明 GenPO 真的能利用多模态 — 只是在常规 IsaacLab 上比 PPO 高一截。高出来的部分可能来自更复杂的 noise 网络(参数量)和更细的 mixing 调度,未必来自 multimodality 本身。

  12. 缺少与 DPPO 这个最接近的 baseline 对比。DPPO 也是把 PPO 套在 diffusion 上,虽然定位是 fine-tune offline-pretrained diffusion,但 PG 损失结构跟 GenPO 高度相似,作者只在 related work 一笔带过没做实验对比。

  13. 匿名链接 anonymous-project365.github.io 在最终版(arXiv v2)还出现在 appendix,说明作者投稿和 arXiv 文本同步性较差 — 不影响科学性,但能感觉到论文成稿时间紧。

5.3 值得继续探讨的方向

  • Doubled dummy 是必要的吗? 能否在 single-channel 上用 affine coupling layer 设计真正的 invertible policy 架构(如 Glow),跳过 \((x, y)\) → average 这一层 detour?
  • EDICT 之外的 inversion:BELM、null-text inversion、DDIM-with-trajectory-storage 等更近期的精确扩散反演方法是否能用到 RL — 也许能减少 doubled action 维度爆炸的代价。
  • 多模态探索的针对性实验:构造显式多 optima 的任务(双门走廊、双抓握姿势),看 GenPO 的策略在 KL 等约束下能否真的"分配概率质量到多个 mode"。
  • 混合精度 / 显存优化:当前 forward / reverse 都要存计算图算 Jacobian,能否用 checkpointing 或者解析 Jacobian 公式(每步是 affine triangular,应该可写解析式)避免 autograd?
  • Sim2real:把 GenPO 训出的 Unitree-Go2 / H1 policy 真在硬件上跑一遍 — 它的"多模态 → 鲁棒性"叙事需要硬件证据。
  • 更大动作维度的极限:Shadow Hand 已经 20 维,更高维(如全身 humanoid 30+ 维 → dummy 60+)下,\(p\) / \(\nu\) 是否还稳?
  • 与 normalizing flow policy 的正面对比:用 Real-NVP / Neural Spline Flow 作 actor 跑同样 8 个 task,验证"扩散表达力 > flow"在 on-policy RL 上是否真的成立。
  • VLA / robot foundation model 中作为 head:扩散 head 已是 VLA 的标准件(pi0/RDT),但目前都是 BC + offline RL,把 GenPO 作为 on-policy fine-tune 的方法接进去,能否解决长程任务的 reward shaping 问题?

参考资源

  • 论文 PDF:paper.pdf
  • LaTeX 源码:source/
  • 项目主页:https://shanghai-guppy.github.io/genpoplusplus/
  • 官方代码:https://github.com/wadx2019/genpo
  • 关键 baseline / 相关论文:
  • EDICT (Wallace et al., 2023) — 扩散精确反演原型
  • DPPO (Ren et al., 2024) — diffusion + PPO 的离线微调对照
  • QVPO (Ding et al., 2024) / DACER (Wang et al., 2024) — 表中 off-policy diffusion baseline
  • Flow Matching (Liu et al., 2022 / Lipman et al., 2022) — base policy parameterization