搜尋課程與筆記

搜尋筆記

輸入主題、關鍵字或單元編號,例如 Flow Matching、U4。

    按 Esc 關閉 · ⌘ / Ctrl K 開啟搜尋

    U5.3 8 分鐘閱讀 2026年10月

    U5.3 沒有 teacher,怎麼找到同一條路上的相鄰點?

    本篇重用5 篇

    相鄰的兩點,要怎麼拿到?

    U5.2 的目標需要一個比較乾淨的相鄰位置。沿用 xt=x0+tϵx_t=x_0+t\epsilon,從 tt 回到 s=t−hs=t-h,其中 h>0h>0。真正需要的是 ψt→s(xt)\psi_{t\to s}(x_t),但它沒有現成公式。

    若手上有 score teacher sϕ(x,t)s_\phi(x,t),就先把它換成 velocity vϕ(x,t)=−tsϕ(x,t)v_\phi(x,t)=-t s_\phi(x,t),再走一小步:

    x^sCD=xt−hvϕ(xt,t)=xt+htsϕ(xt,t).\hat x_s^{\mathrm{CD}}=x_t-hv_\phi(x_t,t) =x_t+hts_\phi(x_t,t).

    它用起點的方向近似整個短區間。對 teacher 的這個位置,再用停止梯度的終點網路作 target,就是 consistency distillation(CD)。Teacher 誤差與一步 solver 誤差都會進入 target。

    我們其實還知道創造這個輸入的那份 noise

    沒有 teacher 時,xtx_t 不是憑空出現的。我們剛才抽了資料 x0x_0 與 noise ϵ\epsilon,所以還能用同一組配對合成

    x^sCT=x0+sϵ=xt−hϵ.\hat x_s^{\mathrm{CT}}=x_0+s\epsilon =x_t-h\epsilon.

    這個版本不需要 score evaluation,稱為 consistency training(CT)。兩份輸入分別是 xt=x0+tϵx_t=x_0+t\epsilon 與 x^sCT\hat x_s^{\mathrm{CT}},兩者共用同一份 noise;重新抽一份 noise 是不同方法。

    但少算一次網路不能當作數學理由。Reference 直線使用這筆資料自己的 ϵ\epsilon,PF-ODE 使用 vt(xt)=E[ϵ∣xt]v_t(x_t)=\mathbb E[\epsilon\mid x_t];兩個方向通常不同。那我們究竟能保住哪一個量?

    固定眼前的 noisy input,再把可能來路平均

    想像好幾條 reference 路線經過同一個街口。我們只知道眼前位置 xtx_t,但訓練資料知道這次是哪個人、從哪裡走來,所以能看到一支具體方向 ϵ\epsilon。將所有相容的來路按條件分布平均,就得到共同的 ODE 方向。

    在固定 xtx_t 下,對 ϵ\epsilon 取條件期望:

    E[x^sCT∣xt]=xt−hE[ϵ∣xt]=xt−hvt(xt).\mathbb E[\hat x_s^{\mathrm{CT}}\mid x_t] =x_t-h\mathbb E[\epsilon\mid x_t] =x_t-hv_t(x_t).

    第一個等號把 xtx_t 當成已知,第二個使用本單元的速度定義。右邊是 oracle velocity 的 Euler step,不是精確 ODE 終點。單筆 CT 位置相對這個平均位置的差為

    x^sCT−(xt−hvt(xt))=−h(ϵ−vt(xt)).\hat x_s^{\mathrm{CT}}-(x_t-hv_t(x_t)) =-h(\epsilon-v_t(x_t)).

    因此它的條件平均為零,條件 covariance 則為 h2Cov⁡(ϵ∣xt)h^2\operatorname{Cov}(\epsilon\mid x_t)。間隔縮小時,這種位置散佈的標準差按 hh 縮小。

    課堂提問Q1

    位置的條件平均既然已經等於 oracle Euler 點,是否表示把兩者送進終點網路後,平均 target 也完全相同?

    先想一想,再展開看整理後的答案

    不一定。對非線性函數,先平均位置再求值,與先求值再平均通常不同。例如一維 F(y)=y2F(y)=y^2 時,E[F(Y)]=F(EY)+Var⁡(Y)\mathbb E[F(Y)]=F(\mathbb E Y)+\operatorname{Var}(Y)。

    CT 的 target 是 fθ−(x^sCT,s)f_{\theta^-}(\hat x_s^{\mathrm{CT}},s),位置外面還包了一層網路。所以剛才的無偏性只能用在位置,還要再檢查 nonlinear target 的差距。

    一階差距會消失,二階差距仍會留下

    令 m=xt−hvt(xt)m=x_t-hv_t(x_t),δ=x^sCT−m\delta=\hat x_s^{\mathrm{CT}}-m。固定這次 target network 與 ss,對位置作 Taylor expansion:

    fθ−(m+δ,s)=fθ−(m,s)+Jxfθ−(m,s)δ+二階 remainder.\begin{aligned} f_{\theta^-}(m+\delta,s) ={}&f_{\theta^-}(m,s)\\ &+J_xf_{\theta^-}(m,s)\delta\\ &+\text{二階 remainder}. \end{aligned}

    JxfJ_xf 是對位置的 Jacobian,乘上 δ\delta 就是小位移引起的一階輸出變化。取給定 xtx_t 的條件期望,E[δ∣xt]=0\mathbb E[\delta\mid x_t]=0,所以一階項消失。若各輸出分量的 Hessian 在比較區域有界、noise 的條件二階矩有限,remainder 的期望由常數乘 E[∥δ∥2∣xt]\mathbb E[\|\delta\|^2\mid x_t] 控制,因此是 O(h2)O(h^2)。

    這裡的 O(h2)O(h^2) 表示:當 hh 足夠小,差距不超過某個與 hh 無關的常數乘 h2h^2。它沒有固定正負號,也不表示每次 target 都相同。

    展開細節書中的 loss 差距,為什麼也是二階?

    固定 xt,t,sx_t,t,s 與兩側網路,令 H(y)=∥fθ(xt,t)−fθ−(y,s)∥2H(y)=\|f_\theta(x_t,t)-f_{\theta^-}(y,s)\|^2。直接對整個 H(m+δ)H(m+\delta) 展開,條件平均後線性項同樣為零;若 HH 的 Hessian 與所需矩有界,就得到 E[H(x^sCT)∣xt]−H(m)=O(h2)\mathbb E[H(\hat x_s^{\mathrm{CT}})\mid x_t]-H(m)=O(h^2)。這是書 §11.2 的等價結果所用的機制。

    這個敘述比較的是固定 target 與平滑 discrepancy 的局部 loss。若另外乘上隨 hh 發散的權重、使用非平滑距離,或讓 target 參數隨網格一起變動,必須重新檢查條件。不能由局部 loss 差距直接推論有限訓練一定得到相同模型。

    Oracle Euler 點與精確 ψt→s(xt)\psi_{t\to s}(x_t) 還有另一層差距。若沿 trajectory 的 acceleration 為 aτ(xτ)a_\tau(x_\tau),積分兩次可寫成

    ψt→s(xt)=xt−hvt(xt)+∫st(τ−s)aτ(xτ) dτ.\psi_{t\to s}(x_t) =x_t-hv_t(x_t)+\int_s^t(\tau-s)a_\tau(x_\tau)\,\mathrm d\tau.

    最後一項是短區間漏掉的 velocity 變化;若 acceleration 的 norm 不超過 AA,其 norm 至多 Ah2/2Ah^2/2。非線性 target 的平均差距,與 solver 對精確 trajectory 的誤差,是不同來源。

    互動 demo:解析 Gaussian 檢查。 調整起始時間、區間與位置,直接計算本篇的關係;偏差控制是明示的 surrogate,沒有使用預設的品質曲線。

    間隔很小,訓練就一定比較好嗎?

    較小的 hh 有助控制上述局部近似,但相鄰兩側的回答也會更接近。數值精度、梯度尺度、條件 target 的隨機性與 target network 的更新,此時都會影響訓練。網格 curriculum 先使用較粗的相鄰點,再逐漸加密,是一種處理這個問題的策略;沒有推出所有資料都呈現同一條 bias–variance 曲線。

    相鄰點的來源需要的資訊必須另外檢查的限制
    CD:xt−hvϕx_t-hv_\phipretrained teacherteacher 估計與 solver 誤差
    CT:xt−hϵx_t-h\epsilon資料與配對 noisenonlinear target 的近似與隨機梯度

    兩者都還在學同一個終點函數。CD 的 target 由 teacher 帶路;CT 用條件配對取代不可直接取得的 marginal velocity。這延續 U1.2 的 conditional trick,但因為條件量先經過非線性網路,這次只有在適當的小間隔條件下才近似相同。

    消化一下

    想一想

    CT 相鄰位置給定 xtx_t 的條件平均是什麼?

    想一想

    為什麼 nonlinear target 的一階平均誤差會消失?

    想一想

    由局部 loss 相差 O(h2)O(h^2),可以直接得到哪個結論?

    參考文獻

    主要理論參考:The Principles of Diffusion Models,§11.2 的 one-point estimator、Theorem 11.2.1 與附錄 D.5。正文的符號沿用本課程;方法實作細節再對照下列原始論文。

    1. Song, Dhariwal, Chen & Sutskever, Consistency Models (ICML 2023)。
    2. Song & Dhariwal, Improved Techniques for Training Consistency Models (ICLR 2024)。
    3. Karras, Aittala, Aila & Laine, Elucidating the Design Space of Diffusion-Based Generative Models (NeurIPS 2022)。