U6.5 讀到一個一步生成方法,先檢查哪幾件事?
都說一步生成,為什麼不能只看步數?
同樣是一個網路呼叫,U5.0 可以是 denoiser,U5.2 可以是終點 map,U6.2 可以是整段平均速度。呼叫次數相同,輸出的數學角色卻不同。若先把它們全叫作「一步模型」,後面的優缺點很容易對不到真正的問題。
我們可以沿著整個生成流程問三件事:網路在回答什麼?訓練答案從哪裡來?生成時又怎麼組合這些回答? 這三問比方法名稱更適合拿來讀新論文。
先看輸出物件,再看一步怎麼得到
| 學習物件 | 一次輸出代表什麼? | 生成時還要做什麼? |
|---|---|---|
| Instantaneous velocity | 當下變化率 | 使用數值積分 |
| Consistency function | 固定乾淨端的位置 | 一步到終點;多步另設加噪程序 |
| General flow map | 指定時間的 trajectory 位置 | 可以直接合成中途跳躍 |
| Mean velocity | 一段 trajectory 的平均速度 | 用時間差乘回位移 |
| Generator output law | 所有輸出的統計分布 | 不必重現指定 latent coupling |
終點位置與平均速度可以互換表示,oracle 平方誤差只差時間權重;但「表示同一物件」不代表「實作訓練完全一樣」。CM 只是一個固定目的時間的切片;一般 flow map 則多學了目的時間方向的資訊。
再問 target 的資訊從哪裡進來
| 方法 | 主要監督來源 | 要另外計入的訓練成本 |
|---|---|---|
| Direct distillation | Teacher 完整 transition | 完整 rollout 或預生成配對 |
| Progressive distillation | 本輪 teacher 的兩步 | 多輪訓練與 teacher 求值 |
| CD | Teacher 短段與 target 終點函數 | Teacher 與 target evaluation |
| CT/iCT | 資料、共用 noise 與 target 函數 | 相鄰配對、網格與 self-target |
| Continuous-time CM | 局部 velocity 與 stopped tangent | JVP 與穩定化設計 |
| CTM | 短 solver 段與 target map | 外部或自誘導動力學、局部監督 |
| MeanFlow | 條件 velocity 與模型導數 | JVP、self-target、時間對抽樣 |
| Shortcut | 局部 FM 與兩個模型短跳 | 短跳合成與步長條件化 |
| Distribution distillation | Target 與 student 的 score 訊號 | Auxiliary score model 的追蹤 |
「不需要外部 pretrained teacher」沒有消除訓練中的監督需求。CT 使用資料與配對 noise;MeanFlow 的導數來自當下模型;Shortcut 的大步由小步提供;CTM 的 self-induced 版本還需要資料把對角線接到正確 dynamics。
半群 residual 很小,圖片就一定對嗎?
U6.0 的半群是精確 ODE flow 的結構。我們可以比較直接 ,與 的模型落點,得到一個容易量的 residual:
它小,表示這份模型在所抽位置與切法下較一致;並沒有直接比較資料分布,也沒有確認局部 velocity 正確。
課堂提問Q1
一個模型的半群 residual 精確為零,但從 noise 出發生成的仍是 noise。它有可能嗎?
先想一想,再展開看整理後的答案
有。令所有時間 maps 都等於恆等,直接與分段都回傳相同輸入,residual 就是零。它只是在學零速度的 dynamics,若資料不同於 noise,生成 law 仍然錯。
反方向也可能:U6.4 的 可在 Gaussian target 上輸出正確 law,卻不等於指定 flow 的逐點 map。因此要分開量局部速度、map accuracy、合成 residual 與 output distribution;不能拿其中一個數字替所有問題作答。
增加步數,先檢查誤差是怎麼縮小的
學 velocity 的模型,用更多 solver steps 可以在適當光滑條件下減少固定 learned field 的積分誤差;不會消除 field 本身的誤差。Learned flow map 的短跳則要檢查 local map error 如何依時間差縮小,以及各段如何傳遞輸入偏差。
例如每段 reference map 是 -Lipschitz、每段模型差距至多 ,就有 。只有先知道 與 的關係,才能推導整體對步數的依賴。半群描述精確 map 如何合成,沒有替任意網路提供 。
CM 的重加噪程序在精確 marginal 上也合法,但屬於另一個 transition,不能用「有沒有換軌」直接判斷分布對錯。Distribution matching 若只訓單一 generator,也不會憑空多出可任意合成的雙時間 map。
互動 demo:解析 Gaussian 檢查。 調整起始時間、區間與位置,直接計算本篇的關係;偏差控制是明示的 surrogate,沒有使用預設的品質曲線。
最後對齊比較資源
要比較一步品質,至少列出 prior、資料、network、訓練預算與 teacher 資源。要比較 sampling 成本,計算 NFE 或實際時間,而不是只寫 steps;一次 step 可能含多次網路求值。要比較多步改善,固定同一個模型,再記錄每種 schedule 與新增隨機性。
一個新的方法也可以同時使用不同訊號,例如回歸與 adversarial discrepancy。這不必硬塞進「只有回歸」或「只有分布」的分類;先寫出每個 loss 控制的量,再判斷實際實驗能回答什麼。
消化一下
參考文獻
主要理論參考:The Principles of Diffusion Models,§10.1、§11.1、§11.5.3 與 §11.6 的共同 flow-map 觀點。正文的符號沿用本課程;方法實作細節再對照下列原始論文。