前言

如公号具身纪元所说,虽然最近WM非常火,但显然,Physical Intelligence(PI)在坚持做VLA+RL

  1. 他们(几乎)做出了最好的VLA,同时他们本身又是最强的RL团队之一
    但在VLA+RL上,却有一个矛盾,困扰了他们很久。他们做了很多工作尝试解决它,比如Q-Chunking、EXPO、FQL等等
  2. VLA需要加动作头,动作头用到了流匹配(flow matching)
    扩散模型(diffusion)和流匹配(flow matching)策略,是当下机器人模仿学习当之无愧的最优解

    它们能拟合复杂的多模态动作分布——同一个场景下,抓杯子可以从左边伸手也可以从右边伸手,这种"一个状态对应多种合理动作"的情况,传统的高斯策略会被逼着取个平均、最后两边都够不着,而扩散与 flow 策略能干净利落地把每一种模态都学下来

    更重要的是,它们在监督式的模仿学习里scaling的非常稳:数据和模型一路怼上去,性能就一路涨,不像很多其他方法,越大越难训
    今天几乎所有顶尖的机器人基础模型——从PI的π系列,到各家的VLA——骨干里都站着它们的身影
  3. 可一旦你想让它做RL,麻烦就来了
    让机器人自己试错、自己根据做得好不好的反馈把策略往上推。这件事在高斯策略上做了很多年,轻车熟路
    可一旦换成扩散或flow策略,就不太好用了——训练要么需要设计专门的目标函数,要么得对多步去噪过程做反向传播,结果不是不稳定就是直接崩溃

    于是出现了一个荒诞的局面:最强的那类策略,恰恰最难RL的更好

好在,2026年6.9,Sergey Levine团队发布了一篇新论文,给这个矛盾提供了一个相当反直觉的解法。方法叫QGF(Q-Guided Flow),论文题目是《Test-Time Gradient Guidance of Flow Policies in Reinforcement Learning》

它的核心主张是:不训练任何新策略。只在推理时,用一个现成的价值函数的梯度,去推一把已经训好的flow策略,让它采样出更高价值的动作


预训练一个参考流策略(通过标准的行为克隆目标)和一个价值函数评论家,并在测试时利用价值梯度来引导参考策略生成更高价值的动作,而无需任何额外的策略学习

第一部分 Test-Time Gradient Guidance of Flow Policies inReinforcement Learning

1.1 引言与相关工作

1.1.1 引言

如原论文所说,强化学习是一个用于优化最大化回报行为的强大框架,但要实现 RL算法的规模化——尤其是在离线或离策略(off-policy)设置下——仍然面临重大挑战

  1. 一个关键难点在于策略优化过程的复杂性与不稳定性:
    与面向已知固定目标进行优化的简单监督学习目标不同,RL通常在学习价值函数与优化执行者(actor)以最大化该学习到的价值函数之间交替进行训练
  2. 这种耦合的训练动态使得 RL 策略训练对超参数高度敏感,且容易出现优化不稳定
    61-Analysis of temporal-diffference learning with function approximation
    16- Addressing function approximation error in actor-critic methods
    21-Deep reinforcement learning that matters


    从而难以扩展

当使用扩散模型(diffusion models)和流模型(flow models)等表达能力很强的策略类时,这一挑战尤为突出。DP这类模型的优势在于,它们能够表示复杂的、多峰的动作分布,并且已有研究表明,当通过行为克隆(behavioral cloning,BC)执行标准监督学习时,它们可以有效扩展

然而,将其纳入要将它们集成到 RL 流水线中

  • 通常需要设计专门的训练目标
    5-Diffusion policies creating a trust region for offline reinforcement learning
    50-Seohong Park, Qiyang Li, and Sergey Levine.
    Flow Q-learning
    28- Flow-based single-step completion for efficient and expressive policy learning
    4-One-step flow policy mirror descent
  • 或通过漫长的去噪过程进行反向传播
    63-Diffusion policies as an expressive policy class for offline reinforcement learning
    20-Diffcps: Diffusion model based constrained policy search for offline reinforcement learning
    9-Consistency models as a rich and efficient policy class for reinforcement learning
    69-Entropy-regularized diffusion policy with q-ensembles for offline reinforcement learning
    62-Diffusion actor-critic with entropy regulator
    11- Scaling offline rl via efficient and expressive shortcut models
    40-Flow-based policy for online reinforcement learning

这削弱了其可扩展性和稳定性

说白了

  1. 扩散/flow策略不像传统策略那样看一眼状态、直接吐一个动作,而是从一团随机高斯噪声出发,在当前观测(状态)的条件下,一步步地去噪,经过若干步迭代,才把这团噪声雕琢成一个干净、可执行的动作
  2. flow matching的说法略有不同,它学的是一个速度场(velocity field),沿着这个速度场做常微分方程(ODE)积分,把噪声连续地搬运成动作
    但本质是一样的:动作不是一次算出来的,是一条多步轨迹的终点

这套多步生成的机制,正是它在模仿学习里如此强大的原因,却也正是它做RL时的难点


强化学习要提升一个策略,核心动作是:算出当前动作好不好(由价值函数Q给分),然后顺着让Q变大的方向去调策略

  • 对高斯策略来说,这一步干净利落——动作就是网络一次性输出的,Q对动作的梯度可以直接顺着这一次前向传播回传到策略参数上
  • 可对扩散/flow策略,动作藏在一条几十步的去噪链条的末端,你想把让Q变大的信号传回去,就得穿过整条去噪链做反向传播(这就是所谓的 BPTT,backpropagation through time)。链条越长,梯度越容易爆炸或消失,训练随之变得极不稳定

这种张力促使作者考虑一种替代性的思路:与其为策略优化设计一种更具可扩展性的强化学习目标,那能否在训练阶段用标准的监督学习来训练 actor,并在推理时利用额外算力,将该actor 相对于一个价值函数进行优化?

  1. 更具体地说,先用标准的行为克隆来训练一个策略(下文将该策略称为参考策略),并使用标准的时序差分(TD)学习方法单独学习一个评论家(critic)
  2. 然后,在推理阶段,利用这个评论家来“引导”参考策略选择更高价值的动作,而无需改变策略参数

这样一来,就可以避免需要训练一个 actor 去最大化不断变化的评论家而引发的不稳定性;相反,在策略训练阶段直接利用已充分研究、可扩展性良好

  1. 实现这一想法的一种直接方法是,将来自参考策略的采样与针对已学习评论家的动作优化相结合
    此前成功利用测试时计算的尝试大多依赖于best-of-N(BFN)采样策略
    57-Learning to summarize with human feedback
    19- IDQL:Implicit Q-learning as an actor-critic method with diffusion policies
    35-Reinforcement learning with action chunking,即
    Q-Chunking,详见本博客中的解读《Q-chunking——带有动作分块的强化学习:基于人类演示,进行一定的连贯探索(且可做到无偏的n步价值回溯)

    即从策略中抽取N 个动作,然后根据评论家的评估选择价值最大的动作
  2. 然而,在高维动作空间中,BFN 采样的计算代价可能高得难以接受。人们可能会想,能否不依赖采样,而是依靠评论家的梯度\nabla_{a} Q(s, a)直接引导动作生成朝向高价值的方向

    不幸的是,对于flow 和diffusion 模型,梯度引导方法并不容易实现,因为动作是通过迭代去噪过程生成的
    最朴素的引导这一去噪过程的方法,是通过对整个去噪过程进行反向传播,利用Q 相对于中间” 有噪声” 动作的梯度来进行引导
    63-Diffusion policies as an expressive policy class for offline reinforcement learning
    20-Diffcps: Diffusion model based constrained policy search for offline reinforcement learning
    9- Consistency models as a rich and efficient policy class for reinforcement learning
    69-Entropy-regularized diffusion policy with q-ensembles for offline reinforcement learning
    62-Diffusion actor-critic with entropy regulator
    11-Scaling offline rl via efficient and expressive shortcut models
    40-Flow-based policy for online reinforcement learning

    但这在计算上代价高昂、不稳定[50-Flow Q-learning],并且具有高方差
    (见图3)

    又由于评论家并未被训练来处理中间的有噪声动作,直接在这些位置使用梯度会导致有偏的引导(见图2),因此不能简单地规避这种反向传播『一维去噪过程的示意例子,将高斯噪声映射为三峰分布,其中Q被定义为到最优动作a^{*}的负 L2 距离。作者比较了基础的 BC flow 和三种评论家梯度引导方法(BPTT、OOD、QGF)在三种不同引导权重下的表现。虽然 BPTT 和QGF 都收敛到 a^{*},但使用 OOD 梯度\nabla_{a_{t}} Q\left(s, a_{t}\right)进行引导并不会得到最优解。此外,图 14 显示 BPTT 可能表现得非常不稳定

在本文中,作者提出了一种方法 QGF(Q-Guided Flow,Q 引导流),能够在从流策略进行采样时有效利用评论家(critic)的引导信号。QGF 通过使用在一个近似动作处计算得到的评论家梯度,避免了对时间的反向传播以及在未训练的含噪动作上的评论家梯度计算。这个近似动作是通过沿学习到的速度流场执行一次较大的欧拉积分步得到的(见下图图 1)

1.1.2 相关工作

首先,对于离线RL

研究如何仅从一个固定数据集学习最大化奖励的策略,而无需任何交互和环境反馈。关键挑战在于从一个混合质量的离线数据集中提取最优行为,同时防止偏离数据集行为太远的错误外推

  1. 先前的工作已经广泛研究了防止错误外推的价值学习方法
    2- Uncertainty-based offline reinforcement learning with diversified q-ensemble
    17-Extreme q-learning: Maxent rl without entropy
    29- Offline reinforcement learning with implicit Q-learning
    31- Conservative Q-learning for offline reinforcement learning
    66-Offline rl with no ood actions: In-sample learning via implicit value regularization


    和策略提取技术
    3- Offline reinforcement learning via high-fidelity generative behavior modeling
    15- A minimalist approach to offline reinforcement learning
    19- IDQL:Implicit Q-learning as an actor-critic method with diffusion policies
    44-Awac: Accelerating online reinforcement learning with offline datasets
    51-Advantage-weighted regression: Simple and scalable off-policy reinforcement learning
    59- Revisiting the minimalist approach to offline reinforcement learning
    64-Behavior regularized offline reinforcement learning


    在这种设定下,占主导地位的方法是在训练期间优化策略以最大化奖励,并在测试时直接从该策略中采样
  2. 另一方面,作者的方法并不将策略训练为寻求奖励
    相反,作者使用标准的行为克隆训练策略,以模仿收集混合质量数据集的策略,并在测试时完全进行策略优化,在价值函数梯度的指导下完成

其次,对于用于强化学习的流模型和扩散模型策略

以往的工作探索了使用扩散和流模型等表达能力强的模型来训练强化学习中连续控制的策略的不同方法,包括

  • 策略梯度方法
    54-Diffusion policy policy optimization
    43-Flow matching policy gradients
  • 重要性加权方法
    52-Reinforcement learning for flow-matching policies
    12-Online reward-weighted fine-tuning of flow matching with wasserstein regularization
    8-Diffusion-based reinforcement learning via q-weighted variational policy optimization
    70- Energy-weighted flow matching for offline reinforcement learning
    4- One-step flow policy mirror descent
    67-Advantage weighted matching:
    Aligning rl with pretraining in diffusion models
  • 以及actor-critic 方法
    63-Diffusion policies as an expressive policy class for offline reinforcement learning
    20- Diffcps: Diffusion model based constrained policy search for offline reinforcement learning
    9-Consistency models as a rich and efficient policy class for reinforcement learning
    69-Entropy-regularized diffusion policy with q-ensembles for offline reinforcement learning
    62-Diffusion actor-critic with entropy regulator
    40-Flow-based policy for online reinforcement learning
    5-Diffusion policies creating a trust region for offline reinforcement learning
    50- Flow Q-learning
    28-Flow-based single-step completion for efficient and expressive policy learning
    4-One-step flow policy mirror descent

具体而言

  1. 在actor-critic 风格的算法中使用这些迭代去噪方法尤其具有挑战性,因为actor \pi_{\theta}(a \mid s)是通过critic 的梯度\nabla_{\theta} Q\left(s, \pi_{\theta}(a \mid s)\right)来训练的
    对于单步高斯策略,actor 可以通过重参数化技巧[18] 利用该梯度
  2. 然而,对于流模型和扩散模型策略来说,利用梯度需要通过多步去噪过程进行反向传播
    63- Diffusion policies as an expressive policy class for offline reinforcement learning
    20-Diffcps: Diffusion model based constrained policy search for offline reinforcement learning
    9- Consistency models as a rich and efficient policy class for reinforcement learning
    69-Entropy-regularized diffusion policy with q-ensembles for offline reinforcement learning
    62-Diffusion actor-critic with entropy regulator
    40-Flow-based policy for online reinforcement learning

    这在实践中开销很大且可能不稳定
    50-Flow Q-learning

先前的工作尝试通过以下方式避免不稳定的反向传播:

  1. 将多步策略蒸馏为单步策略
    50-Flow Q-learning
    4- One-step flow policy mirror descent
    方法(1) 需要额外训练一个蒸馏网络,开销大且可能受到表达能力的限制
  2. 使用多步去噪过程的单步欧拉积分近似[25-Efficient diffusion policies for offline reinforcement learning];
    方法(2)成本更低且不需要额外训练,但会产生近似误差,尽管发现其在实践中表现更好『见图4,可知在不同梯度引导下,去噪动作的Q值,其数值大致与性能相关。结果在20个 OG-Bench 环境上取平均。QGF 是表现最好的基于梯度的优化器,其性能已接近最优的 best-of-n 预言机』

  3. 干脆忽略去噪过程,在带噪声的动作a_{t} 处直接使用评论家梯度(即\nabla_{a_{t}} Q\left(s, a_{t}\right))
    53-Learning a diffusion model policy from rewards via q-score matching
    68-Policy representation via diffusion probability model for reinforcement learning
    13-Diffusion actor-critic: Formulating constrained policy iteration as diffusion noise regression for offline reinforcement learning
    36-Learning multimodal behaviors from scratch with diffusion policy gradient

    本方法(3) 最为简单,但会导致有偏的引导(见图2)

与本文介绍的QGF最相似的是EDP [25-Efficient diffusion policies for offline reinforcement learning],其采用了上述方法(2)。作者同样使用单步欧拉积分来近似去噪过程。然而,作者利用的是评论家关于动作的梯度,而EDP 使用的是评论家关于策略参数的梯度

更重要的是,EDP 需要在训练阶段使用强化学习目标来训练actor,而QGF是在预训练一个价值函数后,在推理时于行为流策略的动作去噪过程中使用其梯度来优化策略动作

  1. 强化学习中测试时的方法通常侧重于在测试阶段利用价值函数来精炼来自参考策略的动作。这可以通过使用评论家对动作样本进行排序并选择最优样本来实现
    35- Reinforcement learning with action chunking
    19- IDQL: Implicit Q-learning as an actor-critic method with diffusion policies

    或者在完全去噪的动作上进行额外的梯度步骤,对评论家价值进行爬山搜索
    41-Policy agnostic rl: Offline rl and online rl fine-tuning of any class and backbone
    65-Reinforcement learning via value gradient flow
  2. 另一类方法则可以在测试时控制策略的最优性,其方式不是使用评论家,而是训练一个以最优性为条件的策略
    14-Diffusion guidance is a controllable policy improvement operator
    30- Reward-conditioned policies


    与QGF最相似的是QFQL[24- Q-guided flow q-learning],它使用评论家的梯度来引导动作去噪过程
    然而,QFQL 在噪声动作步骤处获取评论家梯度(即\left.\nabla_{a_{t}} Q\left(s, a_{t}\right)\right)),此时的噪声动作往往会超出评论家仅在完全去噪动作上训练得到的分布

    相比之下,QGF直接在近似的完全去噪动作上利用评论家梯度,并在实践中取得了更好的效果(见图5 和图8)

1.1.3 预备知识与问题设定

首先,对于马尔科夫决策过程和Q学习

考虑一个马尔科夫决策过程MDP

\mathcal{M}=(\mathcal{S}, \mathcal{A}, P, r, \gamma)

其中

  • S是状态空间
  • \mathcal{A}是动作空间
  • P\left(s^{\prime} \mid s, a\right): S \times \mathcal{A} \rightarrow \Delta(S)是转移函数
  • r(s, a): \mathcal{S} \times \mathcal{A} \rightarrow \mathrm{R}是奖励函数
  • \gamma \in[0,1)是折扣因子

目标是学习一个策略\pi_{\theta}: \mathcal{S} \rightarrow \Delta(\mathcal{A}),使期望折扣回报最大化:

J(\pi)=\mathbb{E}_{a_{t} \sim \pi\left(\cdot \mid s_{t}\right), s_{t+1} \sim P\left(\cdot \mid s_{t}, a_{t}\right)}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(s_{t}, a_{t}\right)\right]

Q 函数近似在从状态s 采取动作a 并随后遵循策略π 时的期望折扣回报:

Q^{\pi}(s, a)=\mathbb{E}_{\pi}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(s_{t}, a_{t}\right) \mid s_{0}=s, a_{0}=a\right]

Q 函数通常通过最小化时序差分(TD)损失进行训练:

\mathrm{E}_{s, a, s^{\prime} \in \mathcal{D}}\left(Q(s, a)-r(s, a)-\gamma \mathrm{E}_{\hat{a}_{1} \sim \pi}\left[Q_{\tilde{\phi}}\left(s^{\prime}, \hat{a}_{1}\right)\right]\right)^{2}

值得注意的是,该损失依赖于从π 中采样。由于作者只在测试时才关心求解π ,因此转而依赖隐式Q 学习(IQL)[29- Offline reinforcement learning with implicit Q-learning],这使得仅使用数据集中的动作就能为近最优策略学习一个Q 函数

具体地,IQL 最小化损失

\mathcal{L}_{Q}(\phi)=\mathbb{E}_{\left(s, a, r, s^{\prime}\right) \sim \mathcal{D}}\left[\left(r(s, a)+\gamma V_{\psi}\left(s^{\prime}\right)-Q(s, a)\right)^{2}\right]

其中V_{\psi} 是一个状态价值函数,被训练为回归到Q 的上部期望分位数:

\mathcal{L}_{V}(\psi)=\mathbb{E}_{(s, a) \sim \mathcal{D}}\left[L_{2}^{\tau}\left(Q(s, a)-V_{\psi}(s)\right)\right]

这里L_{2}^{\tau} 是期望分位回归损失L_{2}^{\tau}(u)=|\tau-\mathbf{1}(u<0)| u^{2}\tau \in(0.5,1]

其次,对于行为正则化RL

  1. 在离线RL 设置中,智能体无法访问环境,而必须从由行为策略\hat{\pi}收集的固定数据集\mathcal{D}=\left\{\left(s_{i}, a_{t}, s_{i}^{\prime}, r_{i}\right)\right\}_{i=1}^{|\mathcal{D}|}的迁移中进行学习
  2. 然后,策略优化通常通过在最大化Q 值的同时,将策略正则化到数据分布上来执行
    正则化是必要的,因为在无法访问环境的情况下,策略可能会利用分布外的Q 值,而这些值永远不会被真实经验纠正

    为了解决这个问题,各种方法对策略进行正则化,以防其过度偏离行为策略的分布
  3. 具体而言,作者考虑相对于行为策略\hat{\pi}的KL 正则化RL 目标,其中\beta>0控制行为正则化的强度(定义为公式1):
    J\left(\pi_{\theta}\right)=\mathbb{E}_{\tau \sim \pi_{\theta}}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(s_{t}, a_{t}\right)\right]-\beta \mathbb{E}_{s \sim d^{\pi_{\theta}}(s)}\left[D_{\mathrm{KI}}\left(\pi_{\theta}(\cdot \mid s) \| \hat{\pi}(\cdot \mid s)\right)\right]

最后,对于流匹配

  1. 流匹配[39-Flow matching for generative modeling] 生成模型由一个随时间变化的速度场v_{\theta}(x, t): \mathbb{R}^{d} \times[0,1] \rightarrow \mathbb{R}^{d}参数化,该速度场将样本从一个简单的噪声分布p_{0}=\mathcal{N}\left(0, I_{d}\right)通过一个ODE 传输到目标数据分布

    p_{1}=p(x)\mathrm{d} \hat{x}_{t}=v_{\theta}\left(\hat{x}_{t}, t\right) \mathrm{d} t
  2. 速度场通过流匹配进行训练,使其与噪声和数据样本之间的线性插值x_{t}=(1-t) x_{0}+t x_{1}的方向相匹配(定义为公式2):

    \mathcal{L}_{\mathrm{FM}}(\theta)=\mathbb{E}_{t \sim \mathcal{V}[0,1], x_{0} \sim p_{0}, x_{1} \sim p_{1}}\left[\left\|v_{\theta}\left(x_{t}, t\right)-\left(x_{1}-x_{0}\right)\right\|_{2}^{2}\right]

    为了将flow matching 用于策略训练,作者在状态s 上对速度场进行条件化,并使用数据集中的动作作为训练目标
    在推理时,通过将ODE 从\hat{x}_{0} \sim p_{0}积分到\hat{x}_{1}来生成动作,\widehat{x}_{1}作为来自策略分布\pi_{\theta}(a \mid s)的有效样本

本文中,作者将来自策略的样本称为” 去噪动作”,而将积分过程中产生的中间结果称为” 带噪动作”

1.2 不用QGF的两种方法:朴素Q 梯度引导和对整条去噪链做 BPTT

1.2.0 RL中的推理时梯度引导:首先训参考flow策略、其次训critic、最后推理时做引导

回顾一下,作者的目标是优化式(1)中的 KL 正则化奖励最大化目标函数

文献 [6-Feudal reinforcement learning,1- Maximum a posteriori policy optimisation,51-Advantage-weighted regression: Simple and scalable off-policy reinforcement learning] 中已广为人知,该优化问题的解可以通过如下闭式形式给出(定义为公式3):

\pi(a \mid s) \propto \hat{\pi}(a \mid s) \cdot \exp (Q(s, a))^{1 / \beta}

  1. 在这里,作者参考策略\hat{\pi}(a \mid s)视为通过式(2) 中的行为克隆损失训练得到的流策略
    用最标准的行为克隆(BC,behavioral cloning)训。它只负责忠实地模仿数据,不掺任何RL,因此训练绝对稳定

    接下来,作者希望将这个方程转化为一个能够利用梯度\nabla_{a} Q(s, a)告诉如何从π 的高似然区域采样的形式
  2. 不幸的是,无法精确计算参考策略\hat{\pi}(a \mid s)(由流匹配或扩散模型表示)的似然值
    然而,扩散模型(以及在某些约束下的流匹配)可以被解释为在优化对数似然的下界[27-Understanding diffusion objectives as the elbo with simple data augmentation]

    并且扩散模型直接学习一个score 函数
    用最标准的TD学习(时序差分)单独训一个价值函数Q。它只负责给状态 + 动作打分,估计这个动作长期能拿多少回报

    借助这一视角『假设流对应于score 函数\left.\nabla_{a} \log \hat{\pi}(a \mid s)\right)』,可以将公式(3) 中π 的score 写为(定义为公式4)

    \nabla_{a} \log \pi(a \mid s)=\nabla_{a} \log \hat{\pi}(a \mid s)+1 / \beta \cdot \nabla_{a} Q(s, a)
  3. 此外,遵循已有工作 [13],作者将这一定义扩展到一个扩展的动作空间,其中的噪声扰动动作来源于对扩散去噪过程积分时的中间步骤(定义为公式5):

    \nabla_{a_{t}} \log \pi\left(a_{t} \mid s\right) \approx \nabla_{a_{t}} \log \hat{\pi}\left(a_{t} \mid s\right)+1 / \beta \cdot \nabla_{a_{t}} Q\left(s, a_{t}\right)

    其中a_{t} 对应于在去噪步骤t 时的部分去噪动作是中间的“嘈杂动作”(或者叫去噪到一半的动作)
    这表明,为了从改进后的策略π 中采样,可以修改去噪过程,使其积分参考策略的评分函数以及一个引导项\nabla_{a_{t}} Q\left(s, a_{t}\right)

    对引导项施加更高的权重会得到一个对参考策略约束更小、并在更大程度上最大化Q 函数的策略。这类似于执行分类器引导classifier guidance[7-Diffusion models beat gans on image synthesis],不过是用学习到的Q 函数替代了分类器

    真正的魔法在这一步。当参考策略在去噪、一步步生成动作的过程中,QGF用critic的梯度∇ₐQ(s, a)——也就是往哪个方向改动作能让Q变大——去实时地推一把去噪过程,让它最终落到一个比参考策略原本会给出的、价值更高的动作

如公号具身纪元所说

  1. 熟悉文生图的朋友知道,扩散模型生成图片时,可以挂一个分类器在旁边:"你现在生成的这个东西,像不像猫?"
    然后用分类器的梯度去引导去噪过程,让最终图片越来越像猫。QGF干的是一模一样的事,只不过把分类器换成了学到的Q函数——它引导去噪过程的标准不再是"像不像猫",而是"这个动作价值高不高"
  2. 这个类比一旦建立,整个方法的骨架就清楚了:
    参考策略提供"合理动作长什么样"的先验
    Q函数提供"什么样的动作更好"的方向


    两者在推理时合流,采样出既合理、又高价值的动作。训练阶段没有任何不稳定的联合优化,没有BPTT,没有要小心翼翼调教的新模块

嗯,听上去很完美,可接下来呢,用Q的梯度引导去噪,到底该怎么算

你可能会想到以下两种最自然的算法

1.2.1 朴素Q 梯度引导:直接在噪声动作上求Q的梯度

QGF想采样改进策略,最简单的方法是,只要在原本去噪过程的速度场上,加一个引导项∇Q就行了。这正是classifier guidance的标准形式

问题出在这个∇Q到底在哪个动作上求

式(5) 中的引导项是噪声动作a_{t} 处Q 函数的梯度

\nabla_{a_{t}} \log \pi\left(a_{t} \mid s\right) \approx \nabla_{a_{t}} \log \hat{\pi}\left(a_{t} \mid s\right)+1 / \beta \cdot \nabla_{a_{t}} Q\left(s, a_{t}\right)

这个梯度可能不可靠,因为评论者Q(s, a)只在去噪后的动作空间上进行了训练,而在分布外的带噪声动作上进行查询,可能要求Q 函数的梯度在远离其训练数据的区域仍然是正确的,这在一般情况下并没有保证

说白了,如公号具身纪元所解读的

  1. 按推导,它要在去噪过程中间那个还带着噪声的动作 aₜ 上求 Q 的梯度。可是别忘了,critic 这个 Q 函数是只在干净动作上训练出来的——它见过的全是数据集里完整、可执行的动作
    而去噪中途那个半成品 aₜ,对它来说是彻头彻尾的分布外(OOD,out-of-distribution)输入
  2. 即你在一个从没见过的输入上,去问神经网络梯度往哪指,它会一本正经地给你一个方向——但这个方向毫无保证是对的
    神经网络在训练分布之外的行为是出了名的不可靠,它可能把你信心十足地导向一个其实很糟糕的动作

因此,作者将\nabla_{a_{t}} Q\left(s, a_{t}\right) 称为”OOD 梯度”。在带噪声动作a_t 处取梯度也是有问题的,因为a_{t} \in \mathbb{R}^{|\mathrm{A}|}甚至可能都不对应于\mathcal{A} 中的一个有效动作

1.2.2 对整条去噪链做 BPTT,在干净动作上求"精确"梯度

既然在噪声动作上查 Q 不靠谱,那换个更讲究的做法:别在半成品上查 Q,只在最终的干净动作上查

即,可以考虑仅在去噪后的动作上对\mathrm{Q}  进行查询
由于flow matching 通过沿ODE 积分『即,a_{1}=\operatorname{ODE}\left(a_{t}\right)= \left.a_{t}+\int_{t}^{1} v_{\theta}\left(a_{\tau}, \tau\right) d \tau\right))将每个带噪动作a_{t} 确定性地映射到一个去噪动作a_{1}是预测出的“最终干净动作” 。下标 1 对应的就是去噪结束的终点 t = 1,可以将带噪动作的Q 值解释为:其去噪版本的Q 值

Q\left(s, a_{t}\right):=Q\left(s, \operatorname{ODE}\left(a_{t}\right)\right)

因此,更加有原则的方法是使用\nabla_{a_{t}} Q\left(s, \operatorname{ODE}\left(a_{t}\right)\right)

计算该梯度需要通过去噪过程进行反向传播,作者将其称为”BPTT 梯度”。虽然这种方法更为严谨,但计算这个梯度的计算代价很高

此外,作者发现BPTT 梯度对噪声非常敏感,且具有较高的方差

  1. Q永远只在干净动作上被查询,就彻底避开了OOD问题。但代价是:要算这个梯度,你得反向穿过整条去噪积分链——又回到了 BPTT
  2. 而 BPTT 在这里有两个致命伤
    一是,每算一次梯度都要把几十步去噪展开来回传一遍
    二是更要命的——对噪声极度敏感、极不稳定。aₜ 上一点点微小的扰动,经过整条链路的放大,会导致最终梯度方向天翻地覆

有一点,顺带强调下

  • 传统DDPM中的设定: 纯噪声是a_T,最终干净动作是a_0(也就是时间倒着走 T \rightarrow 0
  • Flow Matching中的设定: 时间是从t=0正向走到t=1。纯高斯噪声是 a_0,而最终生成的干净动作是a_1

这一现象在图3 中清晰可见

作者在图中绘制了在a_{t} 处评估的梯度与在略微扰动的噪声动作a_{t}+\epsilon处评估的梯度之间的余弦相似度,即

\cos \left(G\left(s, a_{t}\right), G\left(s, a_{t}+\epsilon\right)\right)

其中G代表估计得到的梯度。值越接近1 表示梯度估计器对噪声越不敏感

对于次优Q 梯度引导的示例性说明


作者在论文中给出一个简单的示例性例子,其中使用上述任一梯度估计器都会导致次优的去噪动作

  1. 在图2 中『一维去噪过程的示意例子,将高斯噪声映射为三峰分布,其中Q被定义为到最优动作a^{*}的负 L2 距离。作者比较了基础的 BC flow 和三种评论家梯度引导方法(BPTT、OOD、QGF)在三种不同引导权重下的表现。虽然 BPTT 和QGF 都收敛到 a^{*},但使用 OOD 梯度\nabla_{a_{t}} Q\left(s, a_{t}\right)进行引导并不会得到最优解。此外,图 14 显示 BPTT 可能表现得非常不稳定

    作者可视化了一个一维去噪过程,其中一个flowmatching 模型尝试将输入噪声分布映射到一个三峰的动作分布。在这个教学示例中,”Q 函数” 是到最优动作的负平方距离

    作者可视化了基础行为克隆(BC)flow 的解析解,以及在三种不同梯度引导下的解:OOD 梯度\nabla_{a_{t}} Q\left(s, a_{t}\right),BPTT 梯度\nabla_{a_{t}} Q\left(s, \operatorname{ODE}\left(a_{t}\right)\right),以及将在下文1.3节中提出的近似梯度
  2. 可以看到,无论引导权重如何,使用OOD 动作梯度总是会误导flow,并在去噪后将其” 偏置” 到一个次优动作上
    下文的1.4节中的实验(对应于原论文第6 节)也验证了这个示例性说明,并展示了在测试时使用OOD 梯度进行引导(遵循[24- Q-guided flow q-learning])会导致较差的性能

    而BPTT梯度虽然“偏差”较小,但对噪声仍然非常敏感『见图 3,不同梯度估计器对动作空间噪声的敏感性:对于每一个梯度估计器G,图中展示了G\left(s, a_{t}\right)G\left(s, a_{t}+\epsilon\right)之间的余弦相似度。作者提出的梯度估计器具有最小的方差和对噪声最不敏感的特性。结果在 20 个任务和 4 个随机种子上取平均

    因此在策略优化中会导致不稳定性,这一点在图14 中有所体现
    另一方面,作者在下文提出的梯度估计器 QGF 具有显著更小的方差(见图 3),并能使优化过程稳定地收敛到最优动作

总之,综上,可知:

  • OOD 梯度

    便宜,但方向是错的,把你带偏

  • BPTT 梯度

    方向理论上对,但又贵又不稳,根本用不了

看起来要在精度和稳定之间二选一,QGF的回答是:两个都不选。我用一个比BPTT更粗糙的近似,反而同时拿到了准和稳

1.3 Q 引导的流(Q-Guided Flow)的完整方法论

在本节中,作者将展示可以推导出一种梯度估计器,该估计器:

  1. 不会在分布外(OOD)输入上查询评论器(critic)
  2. 相比通过常微分方程(ODE)积分进行的 BPTT 计算开销更低
  3. 具有更小的方差,从而更有效地优化动作以最大化 Q 值

QGF的破局点,是两次刻意的粗糙化

  1. 第一次粗糙化——不积分整条链,只走一步
    与其老老实实地沿速度场积分几十步算出精确的 a₁,QGF只用当前的速度场做一次 Euler 积分一步外推出一个对干净动作的粗略估计 â₁。便宜,但显然不精确
  2. 第二次粗糙化——把 Jacobian 直接换成单位矩阵
    相当于假设"中间动作动一点,最终动作就跟着动一样多",整个雅可比项被一笔抹掉

于是最终的引导梯度,就退化成一个干净利落的式子:在一步外推出的估计动作 â₁ 上,求Q的梯度(即在预测的干净动作上算梯度),直接加到速度场上

1.3.1 先一步积分(在预测的干净动作上算梯度),后把 Jacobian 直接换成单位矩阵

具体而言

  1. 一方面,作者注意到,与其完全求解去噪常微分方程(ODE),不如通过单步大尺度欧拉积分,沿着动作空间中的局部速度场:直接从当前动作推进到去噪后的动作,从而获得一个廉价的一阶近似解『We start by noting that, instead of fully integrating thedenoising ODE, we can obtain a cheap, first-order approximation to the ODE solution by taking a single large Euler integration step, following the local velocity field at action 𝑎𝑡 all the way to a denoised action

    定义为公式7
    \hat{a}_{1}=a_{t}+v_{\theta}\left(s, a_{t}, t\right) \cdot(1-t)
    a_0 \rightarrow \dots \rightarrow a_t \rightarrow a_{t+\delta} \rightarrow \dots \rightarrow a_1

    其中v_{\theta}\left(s, a_{t}, t\right)是参考策略\hat{\pi}(a \mid s)在时间步t 的流速函数
    ps,计算Jacobian 本质上需要对v_{\theta} 求偏导数,并且有时可能表现不佳,例如,在Eq. (7) 只是对真实去噪过程的粗略近似的早期步骤中

    正如将在图4 中展示的,使用这一一阶近似不仅仅是为了方便

  2. 也许出人意料的是,它实际上比运行完整去噪过程更有效,因为它对精确的数据集分布约束更小
    据此,可以将真实梯度近似为(定义为公式8,称为QGF-Jacobian 估计器)

    \nabla_{a_{t}} Q\left(s, a_{1}\right) \approx \nabla_{a_{t}} Q\left(s, \hat{a}_{1}\right)=\left(\frac{\partial \hat{a}_{1}}{\partial a_{t}}\right)^{\top} \nabla_{\hat{a}_{1}} Q\left(s, \hat{a}_{1}\right)

    它是:Q 的梯度与去噪动作\hat{a}_{1} 相对于带噪动作a_{t} 的Jacobian 的乘积 J=\frac{\partial \hat{a}_{1}}{\partial a_{t}}

    在经验上,作者发现J 可能表现不佳,因为它需要通过v_{\theta}\left(s, a_{t}, t\right)进行求导,并且将其完全替换为恒等矩阵(J \approx \hat{J}:=I)会带来更好的性能,从而有效地计算(定义为公式9,称为QGF 估计器)

    \nabla_{a_{t}} Q\left(s, a_{1}\right) \approx \hat{J}^{\top} \nabla_{\hat{a}_{1}} Q\left(s, \hat{a}_{1}\right)
    \text { where } \hat{a}_{1}=a_{t}+v_{\theta}\left(s, a_{t}, t\right) \cdot(1-t), \hat{J}=I

    即,按照标准的微积分链式法则,\hat{a}_1 倒推回 a_t 的梯度需要乘上一个雅可比矩阵 J = \frac{\partial \hat{a}_1}{\partial a_t}。但作者实验发现,这个雅可比矩阵由于要对速度场求导,往往表现得很差且对噪声高度敏感(导致方差变大)。作者索性把 J 直接用单位矩阵 I代替(也就是丢弃雅可比项)

可能还是有同学疑问,为何要乘雅可比矩阵?


因为 Critic(也就是评估动作好坏的 Q 函数)在训练时只见过最终的干净动作,它根本不认识中间的嘈杂动作 

  1. 前向预测: QGF 在第 t 步时,利用当前充满噪声的动作a_t,通过一个大步长的欧拉公式,“快进”预测出它最终会变成的干净动作\hat{a}_1

  2. 计算奖励梯度: 把这个预测出的干净动作\hat{a}_1 喂给 Critic,算出 Q 对这个干净动作的梯度\nabla_{\hat{a}_1}Q(s, \hat{a}_1)

  3. 梯度反向传播: 但真正要更新和调整的,是当前这一步的动作 a_t
    根据微积分的链式法则(Chain Rule),想要知道最终的 Q 值对当前 a_t 的梯度,就必须用 “Q\hat{a}_1 的梯度” 乘以 “\hat{a}_1a_t 的变化率” 
    \nabla_{a_{t}} Q\left(s, a_{1}\right) \approx \nabla_{a_{t}} Q\left(s, \hat{a}_{1}\right)=\left(\frac{\partial \hat{a}_{1}}{\partial a_{t}}\right)^{\top} \nabla_{\hat{a}_{1}} Q\left(s, \hat{a}_{1}\right)

而这个“最终输出”对“当前输入”的变化率,在多维空间里就是雅可比矩阵:J=\frac{\partial \hat{a}_{1}}{\partial a_{t}}


所以完整的链式传导公式是:

\nabla_{a_{t}} Q \approx\left(\frac{\partial \hat{a}_{1}}{\partial a_{t}}\right)^{\top} \nabla_{\hat{a}_{1}} Q

1.3.2(选读) 如何通俗理解雅可比矩阵(Jacobian Matrix)

首先,为什么要从“一个数字”变成“一个矩阵”?

如果机器人的动作非常简单,只需要控制一个电机的转速,那么当下的动作 a_t 和预测的干净动作 \hat{a}_1都只是一个普通的数字

这时候,前半段的变化率就是高中学过的普通导数:

\frac{d\hat{a}_1}{da_t} = 2

这代表:如果当下的 a_t 增加 0.1,远方的预测值\hat{a}_1 就会雷打不动地增加0.2。这一切非常单纯

但现实中,论文面对的是高维的动作空间(比如机器人有十几个关节,或者像论文里一样一次性输出一整串动作分块 Action Chunk)

  • 当下的嘈杂动作 a_t是一个包含很多元素的向量:a_t = [a_{t,1}, a_{t,2}, a_{t,3}, \dots]
  • 预测的干净动作 \hat{a}_1 也是一个包含很多元素的向量:\hat{a}_1 = [\hat{a}_{1,1}, \hat{a}_{1,2}, \hat{a}_{1,3}, \dots]

这就带来了一个复杂的网状关系:你动了 a_t 里的第一个关节,远方的\hat{a}_1 里的第一、第二、第三个关节可能都会跟着产生不同程度的晃动

为了把这群多对多的“晃动关系”一网打尽,数学家把所有的偏导数排成了一个表格(矩阵),这个矩阵就是雅可比矩阵J 

其次,这个矩阵里具体装了什么?

我们可以把雅可比矩阵 J 想象成一张“连锁反应关联表”:

J = \frac{\partial \hat{a}_1}{\partial a_t} = \begin{bmatrix} \frac{\partial \hat{a}_{1,1}}{\partial a_{t,1}} & \frac{\partial \hat{a}_{1,1}}{\partial a_{t,2}} & \dots \\ \frac{\partial \hat{a}_{1,2}}{\partial a_{t,1}} & \frac{\partial \hat{a}_{1,2}}{\partial a_{t,2}} & \dots \\ \dots & \dots & \dots \end{bmatrix}

  • 表格的第一行第一列,记录的是:“如果 a_t 的第1个关节动一点,\hat{a}_1的第1个关节跟着变多少”
  • 第一行第二列,记录的是:“如果a_t 的第2个关节动一点,\hat{a}_1 的第1个关节跟着变多少”

所以,雅可比矩阵本质上就是一个多维空间里的“放大镜/旋转器”。你给它一个当前动作的微小调整方向 \Delta a_t ,它乘以这个矩阵,就能精确预测出远方的 \hat{a}_1 会往哪里产生偏移

最后,为什么论文说这个矩阵“生病了”?

为了让你完全通透,我们看一下论文里 \hat{a}_1 是怎么算出来的 :

\hat{a}_1 = a_t + v_\theta(s, a_t, t) \cdot (1-t)

如果我们现在对 a_t 求导,去计算那个雅可比矩阵J

J = \frac{\partial \hat{a}_1}{\partial a_t} = I + (1-t) \cdot \frac{\partial v_\theta(s, a_t, t)}{\partial a_t}

(注:I 是单位矩阵,代表 a_t 对自己求导等于 1)

重点在后面那一项:\frac{\partial v_\theta}{\partial a_t}。这意味着我们要被迫对流策略的神经网络 v_\theta 求导

  1. 神经网络内部有成千上万个非线性参数,它的导数是非常杂乱、极其敏感的 
  2. 更糟糕的是,在去噪的早期阶段(t 接近 0 时),前方那个系数(1-t) 接近 1,等于把神经网络那群乱七八糟的梯度原封不动地放大了 

这就导致算出来的雅可比矩阵数值方差极大、极其不稳定(即论文说的 ill-behaved) ,传回去的梯度反而把方向给指歪了

正因如此,作者才一拍大腿做出了那个惊人的决定:既然这个多维变化率矩阵 J总是添乱,我直接假设 J 等于单位矩阵 I——为了追求效率才能勉强容忍的“粗糙近似”

肯定有同学疑问,为何可以如此近似

  1. 用常识来开车:“既然我想让车子往左走,那我现在把方向盘往左打就完事了!” 你忽略了轮胎、风速、悬挂等中间极其复杂的连锁反应,直接假设“当下方向盘往左,最终车子就会往左”
    结果:虽然不够绝对精确,但大方向绝对错不了!而且你的手非常稳,不会因为路面的一点小颠簸就神经过敏地乱晃方向盘
  2. 流匹配(Flow Matching)这个模型在训练的时候,目标就是让动作去噪的轨迹尽可能走直线
    既然去噪轨迹本身就像一条平行的直跑道,那么你在起点把动作往右挪 1 厘米,终点产生的动作基本上也就是往右挪 1 厘米
    所以,“当下变多少,远方就变多少”的假设在地理上是非常准的
  3. 在修正动作时,只需要知道“往哪拐”(正梯度方向),并不需要精确知道“拐多少厘米”(尺度)。拐弯的力度大小,完全可以由策略前面的引导权重(参数\frac{1}{\beta})统一去踩油门或刹车 。只要方向指对了,机器人就能摸索着走到高奖励区域

也就是说,直接假设当下的动作变多少,远方的预测动作就等量变多少,忽略中间网络的复杂连锁反应

丢掉它之后,公式直接变成了 :

\nabla_{a_t} Q \approx \nabla_{\hat{a}_1} Q

代码不仅运行得飞快,而且由于没有了神经网络梯度的干扰,方向变得异常稳定,效果反而拿了第一

1.3.3 算法1: QGF (Q-Guided Flow) inference及相应的评估分析

总而言之,作者使用一阶近似来对动作a_{t} 进行去噪,并在去噪后的动作(即在干净的动作)上取评论家梯度。QGF 在推理阶段使用这个Q 梯度来指导参考策略的去噪,本质上是将该梯度的加权值添加到参考策略的速度中,从而引导其朝向更优的动作

完整的算法在算法1 中给出

QGF中的两个设计选择看起来像是相当粗糙的近似:且完全舍弃了雅可比矩阵,并使用去噪动作的一阶近似。二者看起来都像是为了效率而勉强接受的近似。出人意料的是,作者发现二者都不仅仅是折中方案,并且两者都优于它们在形式上更加“精确”的对应方法

总之,如公号具身纪元的解读所说,两次近似叠加,按常理这应该是个"为了能跑起来不得不忍受的劣质版本"。但论文最精彩的发现恰恰在这里:

这两个粗近似,不是在精确方法面前的妥协,它们各自都打败了自己"精确"的对照版本

// 待更

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐