本篇重用M1.4去噪就是取 Posterior Mean(Tweedie)·M2.1從一片葉子到一群葉子:Flow Map 與 Pushforward
這兩個框架到底是不是同一件事
U1 和這個單元看起來差很多:一邊是 SDE、score、Tweedie,一邊是 ODE、速度場、回歸。但兩邊的中間分布都是「縮小的資料加上 Gaussian noise」,這實在太像了。
如果中間分布是同一族,
那兩邊學的東西是不是同一個?
把兩邊的速度場寫進同一個座標
沿用 FM 慣例,起點 x0∼N(0,I)(下面改記成 ϵ,方便和 U1 對照),條件路徑 xt=αtx1+σtϵ。邊際速度是兩個條件期望的組合:
ut(x)=α˙tE[x1∣xt=x]+σ˙tE[ϵ∣xt=x].
這兩個條件期望不是獨立的兩個未知數——把 xt=αtx1+σtϵ 兩邊取條件期望就有 x=αtE[x1∣x]+σtE[ϵ∣x],所以知道一個就知道另一個。用它消去 E[x1∣x],再代入 U1.3 的 Tweedie 公式 E[ϵ∣x]=−σt∇logpt(x):
ut(x)=αtα˙tx−σt(σ˙t−αtα˙tσt)∇logpt(x)
讀法很簡單:速度場就是「位置」和「score」的線性組合,而那兩個係數只跟 t 有關,跟資料無關。
動手代 VP 進去:兩個係數各化簡一次,就是 PF-ODE
用 U1 的時間 τ(τ=0 是資料、τ=1 是噪聲)寫 VP:αˉτ=exp(−∫0τβ),所以 ατ=αˉτ、στ=1−αˉτ,而 αˉ˙τ=−βαˉτ。
第一個係數:α˙τ=2αˉταˉ˙τ=−2βαˉτ,所以
ατα˙τ=−2β.第二個係數:σ˙τ=21−αˉτ−αˉ˙τ=2στβαˉτ,代進去:
−στ(σ˙τ−ατα˙τστ)=−στ(2στβαˉτ+2βστ)=−2β(αˉτ+στ2)=−2β,最後一步用的是 VP 的定義 αˉτ+στ2=1。兩個係數都是 −β/2,所以
dτdx=−21β(τ)x−21β(τ)∇logpτ(x),一字不差就是 U1.4 的 probability-flow ODE(生成時 τ 從 1 積到 0,也就是那裡的時間方向)。
所以在「Gaussian 路徑、獨立配對」這個交集上,兩邊是同一個 ODE,只差在 parametrization:一個學 ϵ、一個學 u,兩者 affine 等價。
同一個訓好的 ϵθ,不用重訓就能當速度場用。
實務上這可以直接兌現:
uθ(x,t)=αtα˙t(x−σtϵθ(x,t))+σ˙tϵθ(x,t),
然後丟給任何 FM 的 ODE 取樣器解。反過來也成立。
但要注意一個很容易踩的坑:這條轉換式裡的 (αt,σt) 必須是模型當初訓練時走的那一條路徑。拿 VP 訓的 ϵθ 去配線性路徑的係數,等於要求網路在它沒看過的 xt 分布上給出正確答案——換的是座標,不是路徑。U2.5 會要你把這件事跑出來對一次,也會要你把踩坑的版本跑一次看它壞成什麼樣子。
互動 demo:兩套座標、兩條路徑。 「兩套座標的差」把上面那個框裡的等式當場驗一次:左式用兩個條件期望算、右式用位置與 score 算,兩者相減的最大值一直停在 10−15 量級——浮點誤差而已。然後切換路徑:軌跡的形狀立刻不同,彎曲度與 8 步 Euler 的終點誤差也跟著變。速度場是用資料精確算的,相當於一個訓到最佳的網路。
交集之外,兩邊各能動什麼?
同一個交集之外,兩邊能動的東西差很多。整理的時候要分兩層:
- U2.0 的三個 forward 旋鈕——起點分布、路徑、配對。它們決定 pt 長什麼樣。
- 再加一個訓練端的旋鈕:加權。它不改 pt、也不改最佳解,只改「有限預算下先學好哪一段 t」。U2.0 那三個旋鈕沒有涵蓋它,因為它根本不在 forward process 裡。
下面四段就是這四個。其餘的(likelihood 怎麼算、能不能用 SDE 取樣)都是這四個選完之後的後果,不是可以獨立轉的旋鈕。
路徑。 Diffusion 綁在 VP(或 VE);FM 的 (αt,σt) 任選,例如線性路徑 (t,1−t) 就不滿足 α2+σ2=1。中間分布 pt 不同,速度場、軌跡、彎曲程度就全部不同。
加權。 U2.3 算過:均勻 t 的線性 FM 等於帶 1/t2 的 ϵ-loss;DDPM 的均勻 ϵ-loss 換到 FM 座標則是另一種加權。同一條路徑配不同加權,訓出來的模型就不一樣。 比較兩個框架的時候這一軸最常被忽略,於是把加權的效果誤記在路徑頭上。
起點與配對。 Diffusion 的起點必須是 forward SDE 的平穩分布,配對也必然是獨立的。FM 的 p0 可以是任意分布,(x0,x1) 可以是任何耦合——U2.2 那兩個定理從頭到尾沒有用到獨立性。這一軸就是 U3 拉直軌跡的入口。
Likelihood。 文獻上 diffusion 有一條從 ELBO 出發的推導,可以得到 likelihood 的下界——但 U1 沒有走那條路:U1.2 走的是逐步的 KL 加上一條等價定理,每一步都是等式(差一個與參數無關的常數),不是上界。FM 更乾脆,是純回歸,連界都沒有;但因為它是一條 ODE,likelihood 可以沿著軌跡精確算:
dtdlogpt(xt)=−∇⋅ut(xt).
沿路把「體積被壓縮了多少」累加起來,就是 likelihood。
這正是 U1.0 講 normalizing flow 時那個 log-det 代價的連續時間版本,只是現在不必為了它去設計可逆層。
補充散度那一項在高維要怎麼算
∇⋅uθ 是 Jacobian 的跡。直接算要 d 次反向傳播,d=3072 就不現實。實務上用 Hutchinson 估計:取隨機向量 v(例如 Rademacher),則 Ev[v⊤(∂uθ)v]=∇⋅uθ,一次 vector-Jacobian product 就得到一個無偏估計 [4]。
代價是它比 ELBO 貴,而且結果帶噪聲。所以「精確 likelihood」在 FM 裡是做得到但不便宜的事。
| Diffusion | Flow Matching |
|---|
| 旋鈕:起點 | forward SDE 的平穩分布 | 任意 |
| 旋鈕:路徑 | VP/VE,固定 | 任意 (αt,σt) |
| 旋鈕:配對 | 獨立 | 任意耦合 |
| 旋鈕:加權 | 由 ϵ-loss 與 schedule 隱含 | 由目標與 t 的分布隱含 |
| 後果:訓練目標的語意 | 逐步 KL + 等價定理(是等式) | 純回歸 |
| 後果:likelihood | 沿 PF-ODE 精確積分 | 沿 ODE 精確積分 |
| 後果:取樣器 | SDE 或 ODE | Gaussian 路徑上兩者皆可(上面那條式子就給出 score);一般的路徑或耦合只剩 ODE,見 U3 |
課堂提問Q1
常聽到的說法是:「線性路徑的軌跡比較直,所以少步數就能取樣。」上面的 demo 可以直接量彎曲度。
這個說法在什麼意義下成立?
先想一想,再展開看整理後的答案
先看量出來的數字。在這個 2D toy、獨立配對、速度場用資料精確算的設定下,雙月的彎曲度(軌跡長 ÷ 起終點直線距離)大約是線性 2.1、VP 1.5;換成環形差距更大。8 步 Euler 的終點誤差也是線性比較大。在這裡,線性路徑反而比較彎。
原因可以在 t=0 那一瞬間看出來。線性路徑的邊際速度
u0(x)=E[x1−x0∣x0=x]=E[x1]−x,因為獨立配對讓 x1 和起點無關。也就是說每一顆粒子一開始都朝資料的平均位置衝,之後才分岔到各自的 mode——一去一回,當然彎。VP 路徑在 t=0 的 σ˙0=0,那個 −x 的項不存在,起步反而是整片平移。
所以「線性比較直」真正成立的地方是條件路徑:給定一組配對,直線插值畫出來就是一條直線,而 VP 的條件軌跡是弧線(α2+σ2=1 是圓的參數化)。但 U2.3 已經說過,條件直不等於邊際直——邊際軌跡是平均出來的,而平均會把交叉的方向抵消掉。
那該相信什麼?相信可以量的東西。把「彎」寫成加速度 x¨t=dtdut(xt),Euler 每一步的誤差約 2h2∥x¨t∥,累積起來的全域誤差大致是 h∫01∥x¨t∥dt。這個積分就是「彎多少」的定量版,它等於零時一步 Euler 就是精確解。U3.2 會把這個不等式證出來,U3.3 與 U3.4 則給出兩種真正把它壓小的方法——而它們動的都是配對那一軸,不是路徑。
展開細節那為什麼文獻裡的影像實驗常說線性路徑少步數更好
那些比較是在高維、用訓練出來的網路、而且往往同時換了加權與時間取樣。幾件事會一起改變結論:維度越高,獨立配對造成的方向抵消在單位長度上的影響越小;學出來的場比精確場平滑,彎曲度會被低估;而 1/t2 那種加權本身就會改變網路在哪一段時間學得好。
這正是上面那四個旋鈕的用處:一個實驗結果要歸因到哪一個,得把其他三個控制住才說得清。上面那個 2D 的反例不是要說線性路徑不好,而是要說這件事不能用框架的名字來推論。
消化一下
參考文獻
- Song, Y., Sohl-Dickstein, J., Kingma, D. P., Kumar, A., Ermon, S., Poole, B. Score-Based Generative Modeling through Stochastic Differential Equations. ICLR 2021. (PF-ODE 的來源,也是「速度場是位置與 score 的組合」在 diffusion 這一側的說法。)
- Lipman, Y., Chen, R. T. Q., Ben-Hamu, H., Nickel, M., Le, M. Flow Matching for Generative Modeling. ICLR 2023. (FM 這一側,含 Gaussian 路徑下與 diffusion 的對照。)
- Chen, R. T. Q., Rubanova, Y., Bettencourt, J., Duvenaud, D. Neural Ordinary Differential Equations. NeurIPS 2018. (沿 ODE 積分散度得到 likelihood 的原始形式。)
- Grathwohl, W., Chen, R. T. Q., Bettencourt, J., Sutskever, I., Duvenaud, D. FFJORD: Free-Form Continuous Dynamics for Scalable Reversible Generative Models. ICLR 2019. (用 Hutchinson 估計散度,讓高維也算得動。)