本篇重用M0.3漂流的溫度計:全導數、微分穿過積分與 JVP·M1.2天氣預報該報幾度:MSE 的最小值是 Conditional Expectation·M1.1從鞋子猜身高:Conditional Expectation
換一個座標寫 flow map
上一篇說 Eulerian 是能夠不要 teacher 的那條路,但直接對 ψθ 寫 Eulerian 損失有兩個不順手的地方:恆等條件 ψt→t=id 要另外用參數化保證;而 ψ 的輸出是「位置」,兩個時間很近時它幾乎等於輸入,網路要學的是一個接近恆等的映射,訊號很弱。
MeanFlow(Geng et al. [1])的第一步是換座標。flow map 把 z 從時刻 t 送到時刻 r,位移是 ψt→r(z)−z;把位移除以時間差,得到的是這段路的平均速度:
u(z,r,t):=r−tψt→r(z)−z=t−r1∫rtv(zτ,τ)dτ,
zτ 是經過 (z,t) 的那條軌跡,第二個等號只是把位移寫成速度的積分。讀法:z 是時刻 t 的位置,r 是要跳去的時刻,u 是這一段軌跡上瞬時速度的平均。 反過來,flow map 就是 ψt→r(z)=z+(r−t)u(z,r,t)。
r→t 時積分區間縮成一點,u(z,t,t)=v(z,t)——平均速度退化成瞬時速度,flow matching 是 r=t 的切片。恆等條件也自動滿足:ψt→t(z)=z+0⋅u=z,不需要 cskip、cout 那套參數化。這兩件事來自同一個原因:我們把「位置」換成了「速度」,網路輸出的是 v 的同類物件,而不是一個接近恆等的映射。
展開細節慣例對照:MeanFlow 原文的 r<t 與這裡的 t<r
MeanFlow 原文用 t=0 是資料、t=1 是噪聲的慣例,一步生成是從 t=1 跳到 r=0,所以文中 r<t、u 的定義寫成 t−r1∫rtvdτ。本篇沿用 U2 的 FM 慣例(t=0 噪聲、t=1 資料),從噪聲端往資料端跳是 t<r。但注意上面的定義式對 r<t 與 r>t 都成立——t−r1∫rt 換成 r−t1∫tr 值不變——所以接下來的 identity 不需要選方向,這正是 U7.0 說「雙時間沒有方向問題」的意思。
把定義式微分:MeanFlow identity
定義式兩邊乘上 (t−r):
(t−r)u(zt,r,t)=∫rtv(zτ,τ)dτ.
現在固定 r,讓 t 動,而且讓 zt 跟著沿軌跡動(dtdzt=v(zt,t))。右邊的積分只透過上限依賴 t(軌跡是同一條,被積函數不變),微分就是 v(zt,t)。左邊是乘積,乘法法則:
u(zt,r,t)+(t−r)dtdu(zt,r,t)=v(zt,t),
其中 dtd 是沿軌跡的全導數——u 的三個輸入裡 zt 與 t 都在動:
dtdu(zt,r,t)=∂tu+(∂zu)v(zt,t).
整理成 MeanFlow identity:
u(zt,r,t)=v(zt,t)−(t−r)dtdu(zt,r,t)
讀法:平均速度 = 瞬時速度 − 一個修正項。修正項是「平均速度沿軌跡的變化率」乘上時間差。軌跡是直線時 u 沿路不變,修正項為零,平均等於瞬時;軌跡彎,兩者才分開。r=t 時修正項也為零,回到 u=v。
這條式子對任何一對 (r,t) 精確成立,沒有任何近似——它只用到微積分基本定理與乘法法則。
展開細節它就是上一篇的 Eulerian 恆等式
把 ψt→r(z)=z+(r−t)u(z,r,t) 代進 Eulerian 恆等式 dtdψt→r(zt)=0。沿軌跡微分:zt 的變化率是 v,(r−t) 的變化率是 −1,u 的變化率是 dtdu:
dtdψt→r(zt)=v−u+(r−t)dtdu=0⟺u=v−(t−r)dtdu.所以 MeanFlow identity 不是一條新的恆等式,是 Eulerian 恆等式在「平均速度」座標下的樣子。換座標的好處在前一節說過:恆等條件自動成立、r=t 自動是 FM。r 釘在資料端時,它就是 U6.4 sCM 的連續時間 consistency 條件換了寫法。
訓練:把右邊當目標
網路 uθ(z,r,t) 輸入三樣東西、輸出一個向量。把 identity 的右邊當成目標:
utgt=v(zt,t)−(t−r)dtduθ,用 JVP 算[∂tuθ+(∂zuθ)v(zt,t)],L=uθ(zt,r,t)−sg(utgt)2.
三個實作上的決定:
- 全導數用 JVP。 dtduθ 是 uθ 對輸入 (z,r,t) 的 Jacobian 乘上切向量 (v,0,1),
torch.func.jvp 一次前向就算出來,不需要整個 Jacobian——U6.4 算 dtdfθ 用的是同一招。成本大約是一次額外的前向。
- 目標 stop-gradient。 右邊含 uθ 自己,不回傳梯度。這是 U6.2 以來所有 self-consistency 方法的共同結構:把自己當 target 的 bootstrapping。
- v 用條件速度代替。 訓練時抽 (x0,x1)、造 zt=(1−t)x0+tx1,我們沒有邊際速度 v(zt,t),但有 x1−x0。把 utgt 裡兩處 v——顯式的那個、JVP 切向量裡的那個——都換成 x1−x0。
第三點就是下面的問題。
課堂提問Q1
Identity 是對邊際速度 v(zt,t) 成立的,訓練時卻代進了條件速度 x1−x0,而同一個 zt 會被許多不同的 (x0,x1) 對經過。為什麼這樣代是可以的? 這是哪一個已經用過的模式?這一次和 consistency training 那一次差在哪裡?
先想一想,再展開看整理後的答案
課堂上到這裡,大多數人已經能直接說出前半:「squared loss 回歸隨機目標,學到的是目標的條件期望;E[x1−x0∣zt]=v(zt,t),所以平均起來就是邊際速度。」這就是 U1.2 的 conditional trick,用在平均速度上(U5.2 有一張表列著它先前的幾個版本)。但這一次有兩個新的細節值得說清楚。
細節一:目標對 v 是線性的,所以代換在期望上精確。 把目標寫成 v 的函數:utgt(v)=v−(t−r)[∂tuθ+(∂zuθ)v],兩處 v 都是一次項。線性函數與期望可交換:
E[utgt(x1−x0)zt]=utgt(E[x1−x0∣zt])=utgt(v(zt,t)).而 squared loss 對一個隨機目標回歸,等於對目標的條件期望回歸再加一個變異數項;因為目標是 stop-gradient 的,那個變異數項不影響對 θ 的梯度。所以梯度與用真正的邊際速度訓練時完全相同。這裡「線性」是關鍵——上一篇的展開框說過,若 v 出現在非線性(例如平方)的位置,代換會多出一項 bias。
細節二:與 consistency training 差在「沒有離散化」。 U6.3 的 CT 也是條件代換,但它代的是「用同一組 (x0,ϵ) 重新插值出 xt′」來假裝走了一步;那個目標在期望上等於用真實 score 走一步 Euler,而 Euler 假設這一步是直線——bias 是 O(Δt) 乘上曲率,所以 CT 需要對 N 做 curriculum。MeanFlow 沒有走任何一步:identity 是把「走一步」換成了解析的全導數,對任何 (r,t) 精確,沒有 Δt 可言。U3.2 那個曲率積分在這裡不是被壓小,是根本沒有出現。
還有一件事要誠實標出來:dtdu 那一項用的是 uθ 自己。 條件→邊際的論證只處理 v;identity 右邊的 dtdu 應該是真實平均速度的導數,訓練時我們手上沒有,只能用網路當下的輸出代替。這是一個實作選擇(bootstrapping),不是定理:它的辯護是不動點論證——若 uθ 已經等於真實的 u,目標就恰好是 u 本身,訓練停在正解;訓練過程中它是否穩定收斂,靠的是 stop-gradient、r=t 樣本的錨定(那些樣本就是普通 FM,沒有 bootstrapping),以及 U6.4 談過的那些穩定技巧。CT 與 sCM 也有同樣的 self-target 結構,MeanFlow 在這一點上並不比它們更多或更少。
取樣,與它為什麼值得
取樣只是把定義式反過來用。從 z0∼N(0,I) 出發,一步:
z1=ψ0→1(z0)=z0+uθ(z0,1,0).
(讀法:位置 z0、當前時刻 t=0、目標 r=1。)兩步就是 0→21→1,中途不需要重新加噪——半群條件被 identity 隱含地訓進去了。
MeanFlow 值得記住的原因,是它把這個單元的目標——flow map 可以像 flow matching 一樣從頭訓練、不要 teacher、不帶曲率 bias——用一條式子做到。代價有兩個:每一步訓練多一次 JVP 的前向;以及 dtdu 那一項的 bootstrapping。實務上 MeanFlow 還把一部分訓練樣本取 r=t(純 FM,穩定訓練的錨),並對 loss 做自適應加權——那些屬於 U3.5 說的加權那一軸,不改變主線。
先消化一下
參考文獻
- Geng, Z., Deng, M., Bai, X., Kolter, J. Z., He, K. Mean Flows for One-step Generative Modeling. 2025.(平均速度、MeanFlow identity、JVP 訓練、r=t 樣本的混合。)
- Lu, C., Song, Y. Simplifying, Stabilizing and Scaling Continuous-Time Consistency Models. 2024.(連續時間 consistency 條件與 JVP;MeanFlow 在 r 釘於資料端時的對應。)
- Boffi, N. M., Albergo, M. S., Vanden-Eijnden, E. Flow Map Matching. 2024.(Eulerian 恆等式。)