流匹配 是什麼?
Flow Matching:流匹配 的完整解釋
一種生成模型訓練方法,通過學習光滑的向量場使數據從噪音流向目標分佈,相比擴散模型具有更快的推理速度。
核心概念
流匹配(Flow Matching)基於最優傳輸理論,尋求一個光滑的向量場,使得沿著該向量場運動的粒子可以將噪音分佈轉換為目標數據分佈。
流匹配的核心數學框架涉及常微分方程(ODE)。設 x(t) 是時間 t 的軌跡,目標是找到一個向量場 v(x(t), t) 使得: dx/dt = v(x(t), t)
給定初始分佈 x(0) ~ π(通常是標準高斯)和目標分佈 x(1) ~ p_data,流匹配的目標是學習向量場 v_θ(x, t) 使得從 x(0) 開始沿著 ODE 運動 T=1 個單位時間,最終達到目標分佈。
與擴散模型相比,流匹配有幾個關鍵區別:
軌跡的靈活性:流匹配可以使用任意連接噪音和數據的軌跡,不限於擴散過程的特定軌跡。
單步生成:通過設計合適的向量場,流匹配可以實現單步或非常少步數的生成,相比擴散模型的 1000 步有巨大優勢。
連續時間框架:流匹配在連續時間上運作,而擴散模型在離散時間步上運作。
運作原理
流匹配的訓練涉及一個稱為條件流匹配(Conditional Flow Matching, CFM)的目標函數。給定數據 x_1,模型需要學習一個向量場,使得從某個先驗 x_0 開始,沿著向量場可以到達 x_1。
CFM 的損失函數為: L_CFM = E_{t,x_0,x_1}[||v_θ(x_t, t) - u_t(x_t)||²] 其中 u_t(x_t) 是真實向量場(從 x_0 到 x_1 的最優傳輸向量),x_t = (1-t)x_0 + tx_1 是直線插值(對應於最優傳輸)。
一個關鍵的洞察是,對於高斯初始分佈和直線軌跡,真實向量場有閉式解: u_t(x_t) = x_1 - x_0
這使得訓練非常簡潔:給定一對 (x_0, x_1)(初始高斯樣本和數據樣本),向量場應該預測 x_1 - x_0。這個目標比擴散模型的噪音預測或評分匹配更直接和直觀。
在推理時,採樣過程為:
- 從先驗 x_0 ~ N(0, I) 採樣
- 解 ODE:dx/dt = v_θ(x, t)
- 返回 x(1)
ODE 可以使用標準的數值積分方法(如 RK45)求解。與擴散模型不同,流匹配可以使用大步長的積分器,甚至單步積分(Euler 方法配合大步長),仍然能得到高質量的樣本。
實際應用
流匹配在圖像生成中取得了令人印象深刻的結果。Rectified Flow 是流匹配的一個具體實例,通過多次迭代改進軌跡的直線性,使得向量場更加平滑,推理更加高效。
在單步圖像生成中,流匹配使得單個前向傳播就能生成高質量圖像成為可能,這對實時應用至關重要。
在文本到圖像生成中,流匹配的高效性使得交互式應用(如即時生成和編輯)成為可能。
在視頻生成中,流匹配的高效性特別寶貴,因為視頻包含大量時間維度的數據,傳統方法的推理成本會非常高。
在音頻生成中,流匹配也顯示了低延遲、高效的生成能力。
在 3D 形狀生成中,流匹配用於高效地從噪音點雲生成目標 3D 形狀。
常見誤區
一個常見的誤區是認為流匹配完全替代了擴散模型。實際上,流匹配和擴散模型是互補的,各有優勢。擴散模型在理論上更成熟,應用範圍更廣。流匹配在推理效率上有優勢,特別是在單步或少步生成的設定下。
另一個誤區是認為流匹配只適用於簡單的軌跡。實際上,更複雜的軌跡設計(如非線性軌跡)可能進一步提高性能,儘管增加了複雜度。
還有人誤以為流匹配的單步生成質量必然低於多步生成。在實踐中,通過仔細設計向量場和選擇適當的軌跡,單步生成可以達到與多步生成相近的質量,甚至在某些情況下更好。
與相關技術的比較
流匹配與擴散模型都是基於軌跡的生成方法,但在多個方面有所不同。擴散模型使用預定義的噪音調度,而流匹配可以學習和優化軌跡。擴散模型通常需要多步推理,而流匹配可以支援單步或少步生成。在理論上,流匹配基於最優傳輸的更深入理解。
與流模型相比,流匹配是一種新的框架,而流模型(Normalizing Flows)是一個成熟的領域。流模型通過可逆變換建模分佈,而流匹配使用 ODE 軌跡。兩者都可以進行精確的密度評估,但流匹配在高維問題上可能更高效。
與自回歸模型相比,流匹配是並行生成的(所有維度同時生成),而自回歸模型逐維生成。流匹配通常更高效,但可能在某些條件生成任務中靈活性較低。
與一致性模型相比,流匹配和一致性模型都旨在加速生成。一致性模型學習單步(或少步)映射,而流匹配學習 ODE 軌跡。流匹配在理論上更基礎,一致性模型可以看作是流匹配的一個應用。