本篇重用3 篇
不只問到哪裡,也可以問這段平均怎麼走
U6.1 要求從同一路線不同位置出發,跳到固定目的時間的答案相同。直接讓網路輸出位置可行,但兩個時間很近時,輸出幾乎等於輸入。能不能先扣掉這個已知的部分,只學真正的改變?
想像開車從 A 到 B。若知道起點、經過多久,以及這段的平均速度向量,終點就是起點加上位移。這裡用的是位移除以時間;沿路繞遠再回來,路徑長度可能很大,但平均速度仍可能接近零。不能把 scalar 的平均速率混進來。
沿用本單元 0 為噪聲、1 為資料。令 x 是起始時間 t 的位置,r 是目的時間,生成時 t<r。定義
u(x,r,t):=r−tψt→r(x)−x.
第一個輸入是目前位置,第二個是目的時間,第三個是目前時間。它是該段 trajectory 的平均 velocity,因此
ψt→r(x)=x+(r−t)u(x,r,t).
有了平均速度就能直接還原終點,不必把沿途 velocity 一小步一小步積起來。Geng 等人的 MeanFlow [1] 選擇學這個 u。
時間差縮成零,平均速度會去哪裡?
由精確 flow 的積分表示,
u(x,r,t)=r−t1∫trvτ(xτ)dτ.
被平均的是同一條 ODE trajectory 上的 instantaneous velocity,不是不同 reference pairs 的終點差。若 velocity 沿路連續,r→t 時時間平均的極限就是當下 velocity,所以定義 u(x,t,t)=vt(x)。它不是零,也不是沒有定義;位移與時間差同時趨近零,比值取的是導數的極限。
Map 的恆等條件此時自動成立:x+(t−t)u=x。而對角線的 u=vt 可以用普通 FM supervision 學到,提供資料決定的局部動力學。
固定目的地,沿路換出發位置
現在固定目的時間 r,取同一條 trajectory 上的 xt。它的終點 xr 不隨我們從哪裡出發而改變,所以
xr=xt+(r−t)u(xt,r,t).
想求平均速度的學習目標,我們對兩邊沿 trajectory 微分。左邊固定;右邊第一項的導數是 vt(xt),第二項用乘積法則:
0=vt(xt)−u(xt,r,t)+(r−t)dtdu(xt,r,t).
中間的負號來自 d(r−t)/dt=−1。再將 u 移到另一邊,得到
u(xt,r,t)=vt(xt)+(r−t)dtdu(xt,r,t).
這就是 MeanFlow identity。書與原文常用相反的生成時間方向,會寫成 v−(t−r)du/dt;兩個寫法代數上相同,但 sampling 的起訖端必須和各自 convention 一起讀。
最後把全導數展開:
dtdu(xt,r,t)=∂tu(xt,r,t)+Jxu(xt,r,t)vt(xt).
目的時間 r 固定,沒有 ∂ru 項。修正項反映整段平均速度隨出發點的變化;即使 trajectory 是幾何直線,只要沿直線加減速,平均速度也可能不同於起點的瞬時速度。
例子不轉彎,只加速,也需要修正
令一維速度只依時間變化:vt=t。從 t 到 r 的位移是 (r2−t2)/2,所以 u=(r+t)/2,全導數為 1/2。Identity 右邊是 t+(r−t)/2=(r+t)/2,完全吻合。這個例子沒有轉向,仍有非零修正;因此不能把修正叫作「彎曲補償」。
互動 demo:解析 Gaussian 檢查。 調整起始時間、區間與位置,直接計算本篇的關係;偏差控制是明示的 surrogate,沒有使用預設的品質曲線。
公式裡有未知函數自己的導數,要怎麼訓?
Identity 的右邊仍含真實 u 的導數。我們沒有它,所以先固定一份 target 參數 θ−,用它近似導數,再讓線上網路回歸
y−=L(θ;θ−)=vt(xt)+(r−t)[∂tuθ−(xt,r,t)+Jxuθ−(xt,r,t)vt(xt)],E∥uθ(xt,r,t)−sg(y−)∥2.
這是 self-target 的訓練構造。精確 identity 對真實函數成立,不代表將未知函數換成當下網路後,優化已被保證收斂。對角線 FM 樣本、時間權重與數值穩定性都仍有角色。
從頭訓練時抽 (X0,X1)、造 xt=(1−t)X0+tX1,條件速度 v~=X1−X0 就在手上。把 target 裡兩處 vt 都換成同一個 v~:顯式 velocity 與 JVP 的方向都要換。
課堂提問Q1
v~ 不是當下的真正 ODE velocity,為什麼兩處都換掉仍可用?
先想一想,再展開看整理後的答案
固定 xt,r,t 與 target 參數後,∂tuθ−、Jxuθ− 都是固定量。整個 target 對 v~ 是 affine 的,因此
E[y−(v~)∣xt,r,t]=y−(E[v~∣xt])=y−(vt(xt)).線上輸出的平方 loss 梯度是 2(Jθuθ)⊤(uθ−y−),對固定 target 的數值也是線性的。再取條件期望,就得到使用 marginal velocity 的相同 expected gradient。這延續 U1.2 的 conditional trick。
這個結論固定了 target 參數,也要求時間抽樣與權重不偷偷依賴被平均的 reference label。它不等於 target 自身沒有 noise,更不是說用 online derivative 的完整 residual loss 也等價。若再作依樣本的非線性 tangent normalization,要另外分析 expected update。
實作時,輸入順序是 (x,r,t),方向為 (v~,0,1)。中間的 0 表示目的時間固定;用 JVP 計算 ∂tu+Jxuv~,然後整個 target 停止參數梯度。
一步與多步,究竟改變了哪一項誤差?
取樣時只用還原公式。從 x0∼p0 出發,一步是 x1=x0+uθ(x0,1,0);多步則依序使用各段的 (r−t)uθ。每段 map 直接預測整段 displacement,並非 Euler 用起點 instantaneous velocity 代替積分。
但 learned map 仍有誤差。令平均速度誤差為 e=uθ−u,在同一輸入、同一時間對上,位置誤差精確等於 (r−t)e,所以
∥Gθ−ψ∥2=(r−t)2∥uθ−u∥2.
這說明 position regression 與平均速度 regression 的 oracle errors 只差已知時間權重;不表示 CTM 與 MeanFlow 的實際 surrogate losses 相同。多步是否改善還取決於各段平均速度誤差、輸入偏移與合成穩定性,沒有單靠 semigroup identity 就得到的單調品質保證。
消化一下
參考文獻
主要理論參考:The Principles of Diffusion Models,§11.5,特別是式 11.5.3–11.5.6;原文時間方向與本單元相反。正文的符號沿用本課程;方法實作細節再對照下列原始論文。
- Geng, Deng, Bai, Kolter & He, Mean Flows for One-step Generative Modeling (2025)。
- Lu & Song, Simplifying, Stabilizing and Scaling Continuous-Time Consistency Models (2024)。
- Boffi, Albergo & Vanden-Eijnden, Flow Map Matching (2024)。