搜尋課程與筆記

搜尋筆記

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

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

    U6.5 7 分鐘閱讀 2026年10月

    U6.5 讀到一個一步生成方法,先檢查哪幾件事?

    都說一步生成,為什麼不能只看步數?

    同樣是一個網路呼叫,U5.0 可以是 denoiser,U5.2 可以是終點 map,U6.2 可以是整段平均速度。呼叫次數相同,輸出的數學角色卻不同。若先把它們全叫作「一步模型」,後面的優缺點很容易對不到真正的問題。

    我們可以沿著整個生成流程問三件事:網路在回答什麼?訓練答案從哪裡來?生成時又怎麼組合這些回答? 這三問比方法名稱更適合拿來讀新論文。

    先看輸出物件,再看一步怎麼得到

    學習物件一次輸出代表什麼?生成時還要做什麼?
    Instantaneous velocity vtv_t當下變化率使用數值積分
    Consistency function ff固定乾淨端的位置一步到終點;多步另設加噪程序
    General flow map ψt→s\psi_{t\to s}指定時間的 trajectory 位置可以直接合成中途跳躍
    Mean velocity uu一段 trajectory 的平均速度用時間差乘回位移
    Generator output law所有輸出的統計分布不必重現指定 latent coupling

    終點位置與平均速度可以互換表示,oracle 平方誤差只差時間權重;但「表示同一物件」不代表「實作訓練完全一樣」。CM 只是一個固定目的時間的切片;一般 flow map 則多學了目的時間方向的資訊。

    再問 target 的資訊從哪裡進來

    方法主要監督來源要另外計入的訓練成本
    Direct distillationTeacher 完整 transition完整 rollout 或預生成配對
    Progressive distillation本輪 teacher 的兩步多輪訓練與 teacher 求值
    CDTeacher 短段與 target 終點函數Teacher 與 target evaluation
    CT/iCT資料、共用 noise 與 target 函數相鄰配對、網格與 self-target
    Continuous-time CM局部 velocity 與 stopped tangentJVP 與穩定化設計
    CTM短 solver 段與 target map外部或自誘導動力學、局部監督
    MeanFlow條件 velocity 與模型導數JVP、self-target、時間對抽樣
    Shortcut局部 FM 與兩個模型短跳短跳合成與步長條件化
    Distribution distillationTarget 與 student 的 score 訊號Auxiliary score model 的追蹤

    「不需要外部 pretrained teacher」沒有消除訓練中的監督需求。CT 使用資料與配對 noise;MeanFlow 的導數來自當下模型;Shortcut 的大步由小步提供;CTM 的 self-induced 版本還需要資料把對角線接到正確 dynamics。

    半群 residual 很小,圖片就一定對嗎?

    U6.0 的半群是精確 ODE flow 的結構。我們可以比較直接 0→10\to1,與 0→s→10\to s\to1 的模型落點,得到一個容易量的 residual:

    ∥Gθ(x,0→1)−Gθ(Gθ(x,0→s),s→1)∥.\left\|G_\theta(x,0\to1) -G_\theta(G_\theta(x,0\to s),s\to1)\right\|.

    它小,表示這份模型在所抽位置與切法下較一致;並沒有直接比較資料分布,也沒有確認局部 velocity 正確。

    課堂提問Q1

    一個模型的半群 residual 精確為零,但從 noise 出發生成的仍是 noise。它有可能嗎?

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

    有。令所有時間 maps 都等於恆等,直接與分段都回傳相同輸入,residual 就是零。它只是在學零速度的 dynamics,若資料不同於 noise,生成 law 仍然錯。

    反方向也可能:U6.4 的 G(z)=−zG(z)=-z 可在 Gaussian target 上輸出正確 law,卻不等於指定 flow 的逐點 map。因此要分開量局部速度、map accuracy、合成 residual 與 output distribution;不能拿其中一個數字替所有問題作答。

    增加步數,先檢查誤差是怎麼縮小的

    學 velocity 的模型,用更多 solver steps 可以在適當光滑條件下減少固定 learned field 的積分誤差;不會消除 field 本身的誤差。Learned flow map 的短跳則要檢查 local map error 如何依時間差縮小,以及各段如何傳遞輸入偏差。

    例如每段 reference map 是 KK-Lipschitz、每段模型差距至多 δ(h)\delta(h),就有 ek+1≤Kek+δ(h)e_{k+1}\le Ke_k+\delta(h)。只有先知道 KK 與 δ(h)\delta(h) 的關係,才能推導整體對步數的依賴。半群描述精確 map 如何合成,沒有替任意網路提供 δ(h)=O(h2)\delta(h)=O(h^2)。

    CM 的重加噪程序在精確 marginal 上也合法,但屬於另一個 transition,不能用「有沒有換軌」直接判斷分布對錯。Distribution matching 若只訓單一 generator,也不會憑空多出可任意合成的雙時間 map。

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

    最後對齊比較資源

    要比較一步品質,至少列出 prior、資料、network、訓練預算與 teacher 資源。要比較 sampling 成本,計算 NFE 或實際時間,而不是只寫 steps;一次 step 可能含多次網路求值。要比較多步改善,固定同一個模型,再記錄每種 schedule 與新增隨機性。

    一個新的方法也可以同時使用不同訊號,例如回歸與 adversarial discrepancy。這不必硬塞進「只有回歸」或「只有分布」的分類;先寫出每個 loss 控制的量,再判斷實際實驗能回答什麼。

    消化一下

    想一想

    Oracle errors 只差已知時間權重,能推出什麼?

    想一想

    半群 residual 為零,還需要檢查什麼?

    想一想

    更多 solver steps 首先改善哪一項?

    參考文獻

    主要理論參考:The Principles of Diffusion Models,§10.1、§11.1、§11.5.3 與 §11.6 的共同 flow-map 觀點。正文的符號沿用本課程;方法實作細節再對照下列原始論文。

    1. Boffi, Albergo & Vanden-Eijnden, Flow Map Matching (2024)。
    2. Geng, Deng, Bai, Kolter & He, Mean Flows for One-step Generative Modeling (2025)。
    3. Yin et al., Improved Distribution Matching Distillation for Fast Image Synthesis (NeurIPS 2024)。