本篇重用5 篇
相鄰的兩點,要怎麼拿到?
U5.2 的目標需要一個比較乾淨的相鄰位置。沿用 xt=x0+tϵ,從 t 回到 s=t−h,其中 h>0。真正需要的是 ψt→s(xt),但它沒有現成公式。
若手上有 score teacher sϕ(x,t),就先把它換成 velocity vϕ(x,t)=−tsϕ(x,t),再走一小步:
x^sCD=xt−hvϕ(xt,t)=xt+htsϕ(xt,t).
它用起點的方向近似整個短區間。對 teacher 的這個位置,再用停止梯度的終點網路作 target,就是 consistency distillation(CD)。Teacher 誤差與一步 solver 誤差都會進入 target。
我們其實還知道創造這個輸入的那份 noise
沒有 teacher 時,xt 不是憑空出現的。我們剛才抽了資料 x0 與 noise ϵ,所以還能用同一組配對合成
x^sCT=x0+sϵ=xt−hϵ.
這個版本不需要 score evaluation,稱為 consistency training(CT)。兩份輸入分別是 xt=x0+tϵ 與 x^sCT,兩者共用同一份 noise;重新抽一份 noise 是不同方法。
但少算一次網路不能當作數學理由。Reference 直線使用這筆資料自己的 ϵ,PF-ODE 使用 vt(xt)=E[ϵ∣xt];兩個方向通常不同。那我們究竟能保住哪一個量?
想像好幾條 reference 路線經過同一個街口。我們只知道眼前位置 xt,但訓練資料知道這次是哪個人、從哪裡走來,所以能看到一支具體方向 ϵ。將所有相容的來路按條件分布平均,就得到共同的 ODE 方向。
在固定 xt 下,對 ϵ 取條件期望:
E[x^sCT∣xt]=xt−hE[ϵ∣xt]=xt−hvt(xt).
第一個等號把 xt 當成已知,第二個使用本單元的速度定義。右邊是 oracle velocity 的 Euler step,不是精確 ODE 終點。單筆 CT 位置相對這個平均位置的差為
x^sCT−(xt−hvt(xt))=−h(ϵ−vt(xt)).
因此它的條件平均為零,條件 covariance 則為 h2Cov(ϵ∣xt)。間隔縮小時,這種位置散佈的標準差按 h 縮小。
課堂提問Q1
位置的條件平均既然已經等於 oracle Euler 點,是否表示把兩者送進終點網路後,平均 target 也完全相同?
先想一想,再展開看整理後的答案
不一定。對非線性函數,先平均位置再求值,與先求值再平均通常不同。例如一維 F(y)=y2 時,E[F(Y)]=F(EY)+Var(Y)。
CT 的 target 是 fθ−(x^sCT,s),位置外面還包了一層網路。所以剛才的無偏性只能用在位置,還要再檢查 nonlinear target 的差距。
一階差距會消失,二階差距仍會留下
令 m=xt−hvt(xt),δ=x^sCT−m。固定這次 target network 與 s,對位置作 Taylor expansion:
fθ−(m+δ,s)=fθ−(m,s)+Jxfθ−(m,s)δ+二階 remainder.
Jxf 是對位置的 Jacobian,乘上 δ 就是小位移引起的一階輸出變化。取給定 xt 的條件期望,E[δ∣xt]=0,所以一階項消失。若各輸出分量的 Hessian 在比較區域有界、noise 的條件二階矩有限,remainder 的期望由常數乘 E[∥δ∥2∣xt] 控制,因此是 O(h2)。
這裡的 O(h2) 表示:當 h 足夠小,差距不超過某個與 h 無關的常數乘 h2。它沒有固定正負號,也不表示每次 target 都相同。
展開細節書中的 loss 差距,為什麼也是二階?
固定 xt,t,s 與兩側網路,令 H(y)=∥fθ(xt,t)−fθ−(y,s)∥2。直接對整個 H(m+δ) 展開,條件平均後線性項同樣為零;若 H 的 Hessian 與所需矩有界,就得到 E[H(x^sCT)∣xt]−H(m)=O(h2)。這是書 §11.2 的等價結果所用的機制。
這個敘述比較的是固定 target 與平滑 discrepancy 的局部 loss。若另外乘上隨 h 發散的權重、使用非平滑距離,或讓 target 參數隨網格一起變動,必須重新檢查條件。不能由局部 loss 差距直接推論有限訓練一定得到相同模型。
Oracle Euler 點與精確 ψt→s(xt) 還有另一層差距。若沿 trajectory 的 acceleration 為 aτ(xτ),積分兩次可寫成
ψt→s(xt)=xt−hvt(xt)+∫st(τ−s)aτ(xτ)dτ.
最後一項是短區間漏掉的 velocity 變化;若 acceleration 的 norm 不超過 A,其 norm 至多 Ah2/2。非線性 target 的平均差距,與 solver 對精確 trajectory 的誤差,是不同來源。
互動 demo:解析 Gaussian 檢查。 調整起始時間、區間與位置,直接計算本篇的關係;偏差控制是明示的 surrogate,沒有使用預設的品質曲線。
間隔很小,訓練就一定比較好嗎?
較小的 h 有助控制上述局部近似,但相鄰兩側的回答也會更接近。數值精度、梯度尺度、條件 target 的隨機性與 target network 的更新,此時都會影響訓練。網格 curriculum 先使用較粗的相鄰點,再逐漸加密,是一種處理這個問題的策略;沒有推出所有資料都呈現同一條 bias–variance 曲線。
| 相鄰點的來源 | 需要的資訊 | 必須另外檢查的限制 |
|---|
| CD:xt−hvϕ | pretrained teacher | teacher 估計與 solver 誤差 |
| CT:xt−hϵ | 資料與配對 noise | nonlinear target 的近似與隨機梯度 |
兩者都還在學同一個終點函數。CD 的 target 由 teacher 帶路;CT 用條件配對取代不可直接取得的 marginal velocity。這延續 U1.2 的 conditional trick,但因為條件量先經過非線性網路,這次只有在適當的小間隔條件下才近似相同。
消化一下
參考文獻
主要理論參考:The Principles of Diffusion Models,§11.2 的 one-point estimator、Theorem 11.2.1 與附錄 D.5。正文的符號沿用本課程;方法實作細節再對照下列原始論文。
- Song, Dhariwal, Chen & Sutskever, Consistency Models (ICML 2023)。
- Song & Dhariwal, Improved Techniques for Training Consistency Models (ICLR 2024)。
- Karras, Aittala, Aila & Laine, Elucidating the Design Space of Diffusion-Based Generative Models (NeurIPS 2022)。