JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

流模型與連續時間傳輸:從 Jacobian 到流匹配

生成就是傳輸:把一個簡單密度搬到資料上。沿著可逆流、神經 ODE,一路追到流匹配——一個免模擬的目標,把擴散收編為眾多路徑中的一條。

離散流:精確概似,彆扭的限制

回想指南 1:正規化流堆疊可逆層,並用變數變換公式讀出精確概似。實務工程全在那個 Jacobian:耦合層(coupling layer)把輸入切半,以其中一半為條件變換另一半,留下一個三角形 Jacobian,其對數行列式只是一個簡單的求和。你得到精確密度與精確取樣——但雙射、保維度的限制讓流模型很吃參數,歷史上在原始影像品質上總是落後一步。

連續正規化流:讓深度趨於無限

連續正規化流(continuous normalizing flows, CNFs)用一個神經 ODE 取代離散層的堆疊:一個速度場 *vθ(x, t)*,對時間積分後把基底密度傳輸到資料。瞬時變數變換公式把對數行列式變成速度場散度(divergence)對時間的積分——不需要任何三角形架構的體操,任何網路都能當速度場。這是彈性最大的傳輸。

\frac{dx}{dt}=v_\theta(x,t),\qquad \frac{d\,\log p_t(x)}{dt}=-\operatorname{tr}\!\left(\frac{\partial v_\theta}{\partial x}\right)

連續歸一化流將速度場作為神經常微分方程積分;對數密度按速度場雅可比跡(散度)的相反數演化。

痛點在訓練。原始 CNF 透過模擬 ODE 前向並反向傳播穿過求解器來最大化概似——昂貴,而且那個散度積分還需要隨機跡估計。CNF 是被自身訓練成本扼住的優雅理論,多年來一直上不了排行榜。突破,是乾脆完全不再模擬。

流匹配:直接回歸速度,不再模擬

流匹配(flow matching)問了一個看似簡單的問題:如果我固定一條從雜訊內插到資料的目標機率路徑,是什麼速度場生成它——而我能不能直接回歸到那個速度上?答案是可以。挑一條逐樣本的條件路徑(例如從一個雜訊點到一個資料點的直線),算出它封閉形式的速度,再用普通的均方誤差訓練 去匹配它。迴圈裡沒有 ODE 求解、沒有散度估計、沒有對抗者。

\mathcal{L}_{\mathrm{CFM}}(\theta)=\mathbb{E}_{t,\,q(x_1),\,p_t(x\mid x_1)}\left\|\,v_\theta(x,t)-u_t(x\mid x_1)\,\right\|^2

條件流匹配目標:將網路速度回歸到已知的逐樣本目標速度——無需模擬常微分方程。

# conditional flow matching (straight-line path)
x0 = randn_like(x1)               # noise
x1 = data_sample()
t  = rand()                       # time in [0,1]
xt = (1 - t) * x0 + t * x1        # point on the path
u  = x1 - x0                      # target velocity (constant on a line)
loss = mse(v_net(xt, t), u)
流匹配只是讓網路回歸到一個已知的逐樣本速度——比起以概似為基礎的 CNF 訓練,簡單得驚人。

整流流:把路徑拉直

彎曲的傳輸路徑迫使 ODE 求解器走許多小步;筆直的路徑原則上一步就能跨過。整流流(rectified flow)訓練一個軌跡盡量筆直的流:把每個雜訊樣本與一個資料樣本配對,回歸到那條直線的常數速度——再選擇性地重流(reflow):用當前模型重新生成配對並重訓,可證明能把路徑拉得更直。更直的路徑意味著取樣時遠更少的函數評估次數。

x_t=(1-t)\,x_0+t\,x_1,\qquad \min_\theta\ \mathbb{E}_{t,x_0,x_1}\left\|\,(x_1-x_0)-v_\theta(x_t,t)\,\right\|^2

整流流將速度回歸到雜訊與資料之間的直線位移,使軌跡趨於筆直,逼近單步傳輸。

這就是為什麼好幾個頂尖的影像生成器採用整流流/流匹配訓練:品質與擴散相同,但其幾何刻意為了便宜的少步取樣而設計。這也為最後一篇指南鋪好了核心問題——我們究竟能少到幾步?