生成模型已成為人工智能領(lǐng)域的關(guān)鍵突破,賦予機(jī)器創(chuàng)建高度逼真的圖像、音頻和文本的能力。在眾多生成技術(shù)中,擴(kuò)散模型和Flow Matching尤為引人注目。這兩種方法雖然都致力于在噪聲與結(jié)構(gòu)化數(shù)據(jù)之間建立轉(zhuǎn)換,但其基礎(chǔ)原理存在本質(zhì)區(qū)別。本文將系統(tǒng)地比較這兩種先進(jìn)技術(shù),深入探討其數(shù)學(xué)原理、實(shí)際應(yīng)用及理論解釋。
基本原理
在深入數(shù)學(xué)分析前,有必要從直觀層面理解這兩種方法的核心概念:
擴(kuò)散模型系統(tǒng)性地向數(shù)據(jù)添加噪聲,直至將其轉(zhuǎn)化為純粹的隨機(jī)噪聲,然后學(xué)習(xí)此過(guò)程的逆向轉(zhuǎn)換。這一過(guò)程可類比為將照片逐步溶解至完全模糊狀態(tài),隨后從模糊中重建原始影像的過(guò)程。
Flow Matching則構(gòu)建噪聲分布與數(shù)據(jù)分布間的連續(xù)路徑(流)。這一過(guò)程可類比為定義一種平滑的轉(zhuǎn)換計(jì)劃,使隨機(jī)噪聲逐漸形成有結(jié)構(gòu)的數(shù)據(jù),如同觀察一塊黏土從無(wú)序狀態(tài)被塑造成精細(xì)雕像的過(guò)程。
擴(kuò)散模型的數(shù)學(xué)基礎(chǔ)
前向過(guò)程
擴(kuò)散模型定義了一個(gè)前向過(guò)程,該過(guò)程在 個(gè)時(shí)間步長(zhǎng)內(nèi)有序地向數(shù)據(jù) 添加高斯噪聲:
其中
且 表示噪聲調(diào)度參數(shù)。
此過(guò)程可通過(guò)隨機(jī)微分方程(SDE)表示:
其中 代表標(biāo)準(zhǔn)維納過(guò)程(布朗運(yùn)動(dòng)), 為漂移系數(shù), 為擴(kuò)散系數(shù)。
經(jīng)過(guò)充分的擴(kuò)散步驟, 將近似標(biāo)準(zhǔn)正態(tài)分布 ,原始數(shù)據(jù)的結(jié)構(gòu)信息基本完全消散。
反向過(guò)程
擴(kuò)散模型的核心在于學(xué)習(xí)逆轉(zhuǎn)噪聲添加過(guò)程,通過(guò)從隨機(jī)噪聲開始并迭代去噪來(lái)生成新數(shù)據(jù)。
反向過(guò)程定義為:

在實(shí)際應(yīng)用中,諸如DDPM(去噪擴(kuò)散概率模型)等模型針對(duì)每一時(shí)間步預(yù)測(cè)噪聲分量 ,進(jìn)而推導(dǎo)出 。
訓(xùn)練目標(biāo)
擴(kuò)散模型的訓(xùn)練目標(biāo)通?;谪?fù)對(duì)數(shù)似然的變分上界:

實(shí)踐中,這一目標(biāo)函數(shù)常簡(jiǎn)化為經(jīng)重新加權(quán)的均方誤差:

Flow Matching 的數(shù)學(xué)基礎(chǔ)
連續(xù)歸一化流與速度場(chǎng)
Flow Matching建立在連續(xù)歸一化流(CNF)的理論之上,CNF通過(guò)微分方程將一個(gè)概率分布轉(zhuǎn)換為另一個(gè):

其中 表示可學(xué)習(xí)的速度場(chǎng)。
速度場(chǎng)的理解
速度場(chǎng)是一個(gè)為時(shí)空中每個(gè)點(diǎn)分配速度向量的函數(shù),可類比為風(fēng)向圖,指示了粒子在任一位置應(yīng)移動(dòng)的方向與速度。在生成模型語(yǔ)境下:
數(shù)學(xué)定義:速度場(chǎng)

為時(shí)間 的每個(gè)點(diǎn) 分配一個(gè)向量 。
物理理解:可想象為河流中任一點(diǎn)的水流方向與強(qiáng)度,決定了漂浮物體的運(yùn)動(dòng)軌跡。
變換特性:通過(guò)從 到 追蹤速度場(chǎng),可以得到樣本從源分布(通常為噪聲)到目標(biāo)數(shù)據(jù)分布的轉(zhuǎn)換路徑。
速度場(chǎng)具有以下關(guān)鍵特性,使其成為生成建模的有力工具:
- 確定性路徑:從給定起點(diǎn)追蹤速度場(chǎng)會(huì)產(chǎn)生確定性軌跡
- 可逆性:通過(guò)反轉(zhuǎn)速度向量可實(shí)現(xiàn)過(guò)程的逆向運(yùn)行
- 概率質(zhì)量守恒:連續(xù)性方程確保轉(zhuǎn)換過(guò)程中概率質(zhì)量既不創(chuàng)生也不消失
速度場(chǎng)可視化可理解為網(wǎng)格上每點(diǎn)的方向矢量:
在Flow Matching中,通過(guò)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)預(yù)測(cè)給定位置和時(shí)間的速度向量,該網(wǎng)絡(luò)經(jīng)訓(xùn)練以匹配定義分布間所需流的參考向量場(chǎng)。
概率流ODE
概率密度在流下的演化遵循連續(xù)性方程:

這一方程確保了變換過(guò)程中的質(zhì)量守恒。
Flow Matching原理
Flow Matching的關(guān)鍵創(chuàng)新在于直接監(jiān)督速度場(chǎng) ,利用預(yù)定義的分布間路徑。此方法避開了從復(fù)雜的概率流方程推導(dǎo)速度場(chǎng),而是直接約束速度場(chǎng)匹配參考向量場(chǎng) ,后者定義了樣本的移動(dòng)方式:

其中 從路徑分布 采樣,該分布在噪聲分布 與數(shù)據(jù)分布 間插值。
條件Flow Matching
條件Flow Matching (CFM)作為重要擴(kuò)展,構(gòu)建了各數(shù)據(jù)點(diǎn)與噪聲樣本間的路徑:

其中

定義了噪聲 和數(shù)據(jù) 之間的路徑,

控制路徑噪聲水平。
主要差異分析
路徑定義
擴(kuò)散模型通過(guò)添加高斯噪聲定義固定的隨機(jī)路徑。前向過(guò)程由預(yù)設(shè)的噪聲調(diào)度確定,模型學(xué)習(xí)逆轉(zhuǎn)這一特定過(guò)程。
Flow Matching則允許在分布間設(shè)計(jì)靈活路徑。這些路徑可為直線、曲線軌跡,甚至可動(dòng)態(tài)學(xué)習(xí),提供更大的設(shè)計(jì)自由度。
訓(xùn)練動(dòng)態(tài)
擴(kuò)散模型通常需要估計(jì)復(fù)雜的概率密度或其替代量,導(dǎo)致訓(xùn)練過(guò)程更具挑戰(zhàn)性,且對(duì)噪聲調(diào)度的精確設(shè)計(jì)有較高依賴。
Flow Matching直接監(jiān)督速度場(chǎng),形成更簡(jiǎn)潔的均方誤差目標(biāo),訓(xùn)練過(guò)程通常更為穩(wěn)定。
采樣效率
擴(kuò)散模型傳統(tǒng)上需要較多采樣步驟(通常1000步以上),盡管DDIM等技術(shù)已有所改進(jìn)。
Flow Matching通常可利用高階ODE求解器,以較少步驟(10-100步)實(shí)現(xiàn)高質(zhì)量采樣。
理論保證
擴(kuò)散模型與基于分?jǐn)?shù)的生成模型有深厚聯(lián)系,并提供明確的似然界限。
Flow Matching在特定條件下對(duì)精確密度匹配提供保證,為優(yōu)化概率流ODE提供更直接路徑。
數(shù)值示例:轉(zhuǎn)換簡(jiǎn)單分布
考慮將標(biāo)準(zhǔn)正態(tài)分布轉(zhuǎn)換為雙峰高斯混合分布的具體案例。
擴(kuò)散方法
在擴(kuò)散方法中,流程如下:
- 從目標(biāo)分布(高斯混合)出發(fā)
- 按照調(diào)度 逐步添加噪聲
- 訓(xùn)練模型預(yù)測(cè)每步噪聲
- 通過(guò)從純?cè)肼曢_始并迭代去噪進(jìn)行采樣
對(duì)于一維示例,設(shè)定 步和線性噪聲調(diào)度 ,前向過(guò)程為:
反向過(guò)程估計(jì):
Flow Matching方法
Flow Matching方法流程為:
定義分布間路徑,例如線性插值:
推導(dǎo)或定義誘導(dǎo)該路徑的速度場(chǎng)
訓(xùn)練模型預(yù)測(cè)此速度場(chǎng)
通過(guò)求解ODE: 從噪聲采樣到數(shù)據(jù)
對(duì)于簡(jiǎn)單示例,假設(shè)直線路徑,速度場(chǎng)可表示為:
其中 為噪聲樣本, 為數(shù)據(jù)樣本。
實(shí)踐實(shí)現(xiàn)與應(yīng)用
擴(kuò)散模型的實(shí)踐
具有代表性的擴(kuò)散模型實(shí)現(xiàn)包括:
- DDPM (去噪擴(kuò)散概率模型):奠定基礎(chǔ)的先驅(qū)模型
- DDIM (去噪擴(kuò)散隱式模型):通過(guò)確定性過(guò)程加速采樣
- Stable Diffusion:應(yīng)用于潛在空間提升圖像生成效率
- Imagen與DALL-E 2:基于擴(kuò)散原理的文本到圖像生成系統(tǒng)
實(shí)現(xiàn)關(guān)鍵代碼示例:
# filepath: example.py
# Simplified DDPM training loop
def train_step(self, x_0, optimizer):
"""Single training step for diffusion model"""
batch_size = x_0.shape[0]
# Sample random timesteps
t = torch.randint(0, self.n_timesteps, (batch_size,), device=self.device, dtype=torch.long)
# Add noise to data
x_t, noise = self.q_sample(x_0, t)
# Predict noise
predicted_noise = self.model(x_t, t / self.n_timesteps)
# Compute loss
loss = F.mse_loss(noise, predicted_noise)
# Update parameters
optimizer.zero_grad()
loss.backward()
optimizer.step()
return loss.item()
Flow Matching的實(shí)踐
代表性Flow Matching實(shí)現(xiàn)包括:
- 條件Flow Matching (CFM):高效訓(xùn)練生成建模的神經(jīng)ODE
- 一致性模型(Consistency Models):融合Flow Matching與擴(kuò)散原理
- SiT (Score in Time):將擴(kuò)散模型重構(gòu)為插值匹配框架
實(shí)現(xiàn)關(guān)鍵代碼示例:
# filepath: example.py
# Simplified Flow Matching training loop
def train_step(self, x_0, optimizer):
"""Single training step for flow matching"""
batch_size = x_0.shape[0]
# Sample random timesteps
t = torch.rand(batch_size, device=self.device)
# Sample noise points
z = torch.randn_like(x_0)
# Get path points and target velocities
x_t, target_v = self.sample_path_point(x_0, z, t.unsqueeze(-1))
# Predict velocity vectors
predicted_v = self.model(x_t, t)
# Compute loss
loss = F.mse_loss(predicted_v, target_v)
# Update parameters
optimizer.zero_grad()
loss.backward()
optimizer.step()
return loss.item()
概念類比
擴(kuò)散模型:侵蝕與重建過(guò)程
擴(kuò)散模型可類比為海灘上沙堡的侵蝕與重建。前向過(guò)程如同潮水逐漸沖刷沙堡,直至形成平坦沙面;反向過(guò)程則是學(xué)習(xí)如何通過(guò)理解沙粒運(yùn)動(dòng)規(guī)律,從平坦沙面重建精細(xì)結(jié)構(gòu)。
Flow Matching:矢量場(chǎng)導(dǎo)航
Flow Matching類似于空間導(dǎo)航系統(tǒng),在任一位置提供指向目標(biāo)的方向矢量。無(wú)需遵循預(yù)設(shè)路線,學(xué)習(xí)的矢量場(chǎng)能從任意起點(diǎn)引導(dǎo)系統(tǒng)抵達(dá)目標(biāo)分布。
方法融合與發(fā)展
近期研究顯示擴(kuò)散模型與Flow Matching存在深層聯(lián)系:
- 概率流ODE:擴(kuò)散過(guò)程可轉(zhuǎn)換為類似Flow Matching的確定性O(shè)DE
- 基于分?jǐn)?shù)的方法:兩種方法可視為對(duì)數(shù)密度梯度(分?jǐn)?shù)函數(shù))的不同參數(shù)化
- 插值匹配:統(tǒng)一框架下整合多種生成方法
計(jì)算效率比較
擴(kuò)散模型在采樣過(guò)程中通常需要更多的函數(shù)評(píng)估,導(dǎo)致計(jì)算成本相對(duì)較高。然而,這類模型可以使用相對(duì)簡(jiǎn)化的架構(gòu)和損失函數(shù)進(jìn)行訓(xùn)練,在實(shí)現(xiàn)復(fù)雜度方面具有一定優(yōu)勢(shì)。
Flow Matching則通過(guò)采用復(fù)雜的ODE求解器實(shí)現(xiàn)更高的采樣效率,但精確建模速度場(chǎng)可能需要更為復(fù)雜的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)。兩種方法的計(jì)算效率取舍主要體現(xiàn)在采樣速度與模型復(fù)雜度之間的平衡。
樣本質(zhì)量分析
兩種方法均能達(dá)到先進(jìn)的樣本生成質(zhì)量,選擇應(yīng)基于具體應(yīng)用需求進(jìn)行評(píng)估。擴(kuò)散模型在處理高度結(jié)構(gòu)化數(shù)據(jù)(如高分辨率圖像和復(fù)雜音頻)方面表現(xiàn)出色;而Flow Matching則在處理相對(duì)簡(jiǎn)單的分布或?qū)Σ蓸铀俣扔袊?yán)格要求的場(chǎng)景中展現(xiàn)出明顯優(yōu)勢(shì)。實(shí)際應(yīng)用中,需權(quán)衡模型復(fù)雜度、訓(xùn)練穩(wěn)定性、采樣效率及質(zhì)量要求等多方面因素。
總結(jié)
擴(kuò)散模型與Flow Matching代表了生成建模領(lǐng)域的兩類重要技術(shù)范式,各自基于獨(dú)特的數(shù)學(xué)原理與實(shí)現(xiàn)策略。擴(kuò)散模型通過(guò)定義固定的隨機(jī)過(guò)程并學(xué)習(xí)其逆轉(zhuǎn),而Flow Matching則直接學(xué)習(xí)能夠沿靈活路徑轉(zhuǎn)換分布的速度場(chǎng)。從某種意義上說(shuō),F(xiàn)low Matching保留了擴(kuò)散模型的核心優(yōu)勢(shì),同時(shí)通過(guò)消除前向噪聲過(guò)程的限制實(shí)現(xiàn)了技術(shù)簡(jiǎn)化。
深入理解這兩種方法間的差異與聯(lián)系,不僅有助于更全面把握生成建模的技術(shù)全貌,也為這一快速演進(jìn)領(lǐng)域的發(fā)展提供了理論基礎(chǔ)和研究方向。

參考文獻(xiàn)
- Ho, J., Jain, A., & Abbeel, P. (2020). "Denoising diffusion probabilistic models."
- Song, Y., Sohl-Dickstein, J., Kingma, D. P., Kumar, A., Ermon, S., & Poole, B. (2021). "Score-based generative modeling through stochastic differential equations."
- Lipman, Y., Cohen-Or, D., & Chen, R. (2022). "Flow matching for generative modeling."
- Tong, A., Huang, J., Wolf, G., van dn Driessche, D., & Balasubramanian, K. (2023). "Conditional flow matching: Simulation-free dynamic optimal transport."
- Song, Y., Durkan, C., Murray, I., & Ermon, S. (2021). "Maximum likelihood training of score-based diffusion models."
https://avoid.overfit.cn/post/0498f7cf65f64afd8dc540d900a99773
作者:Harsh Maheshwari
熱門跟貼