擴(kuò)散模型爆火,這是首篇綜述與Github論文分類匯總
本綜述(Diffusion Models: A Comprehensive Survey of Methods and Applications)來自加州大學(xué) & Google Research 的 Ming-Hsuan Yang、北京大學(xué)崔斌實(shí)驗(yàn)室以及 CMU、UCLA、蒙特利爾 Mila 研究院等眾研究團(tuán)隊(duì),首次對現(xiàn)有的擴(kuò)散生成模型(diffusion model)進(jìn)行了全面的總結(jié)分析,從 diffusion model 算法細(xì)化分類、和其他五大生成模型的關(guān)聯(lián)以及在七大領(lǐng)域中的應(yīng)用等方面展開,最后提出了 diffusion model 的現(xiàn)有 limitation 和未來的發(fā)展方向。
文章鏈接:https://arxiv.org/abs/2209.00796論文分類匯總 github 鏈接:https://github.com/YangLing0818/Diffusion-Models-Papers-Survey-Taxonomy
介紹
擴(kuò)散模型(diffusion models)是深度生成模型中新的 SOTA。擴(kuò)散模型在圖片生成任務(wù)中超越了原 SOTA:GAN,并且在諸多應(yīng)用領(lǐng)域都有出色的表現(xiàn),如計算機(jī)視覺,NLP、波形信號處理、多模態(tài)建模、分子圖建模、時間序列建模、對抗性凈化等。此外,擴(kuò)散模型與其他研究領(lǐng)域有著密切的聯(lián)系,如穩(wěn)健學(xué)習(xí)、表示學(xué)習(xí)、強(qiáng)化學(xué)習(xí)。然而,原始的擴(kuò)散模型也有缺點(diǎn),它的采樣速度慢,通常需要數(shù)千個評估步驟才能抽取一個樣本;它的最大似然估計無法和基于似然的模型相比;它泛化到各種數(shù)據(jù)類型的能力較差。如今很多研究已經(jīng)從實(shí)際應(yīng)用的角度解決上述限制做出了許多努力,或從理論角度對模型能力進(jìn)行了分析。
然而,現(xiàn)在缺乏對擴(kuò)散模型從算法到應(yīng)用的最新進(jìn)展的系統(tǒng)回顧。為了反映這一快速發(fā)展領(lǐng)域的進(jìn)展,我們對擴(kuò)散模型進(jìn)行了首個全面綜述。我們設(shè)想我們的工作將闡明擴(kuò)散模型的設(shè)計考慮和先進(jìn)方法,展示其在不同領(lǐng)域的應(yīng)用,并指出未來的研究方向。此綜述的概要如下圖所示:
?
盡管 diffusion model 在各類任務(wù)中都有著優(yōu)秀的表現(xiàn),它仍還有自己的缺點(diǎn),并有諸多研究對 diffusion model 進(jìn)行了改善。為了系統(tǒng)地闡明 diffusion model 的研究進(jìn)展,我們總結(jié)了原始擴(kuò)散模型的三個主要缺點(diǎn),采樣速度慢,最大化似然差、數(shù)據(jù)泛化能力弱,并提出將的 diffusion models 改進(jìn)研究分為對應(yīng)的三類:采樣速度提升、最大似然增強(qiáng)和數(shù)據(jù)泛化增強(qiáng)。我們首先說明改善的動機(jī),再根據(jù)方法的特性將每個改進(jìn)方向的研究進(jìn)一步細(xì)化分類,從而清楚的展現(xiàn)方法之間的聯(lián)系與區(qū)別。在此我們僅選取部分重要方法為例, 我們的工作中對每類方法都做了詳細(xì)的介紹,內(nèi)容如圖所示:
在分析完三類擴(kuò)散模型后,我們將介紹其他的五種生成模型 GAN,VAE,Autoregressive model, Normalizing flow, Energy-based model。考慮到擴(kuò)散模型的優(yōu)良性質(zhì),研究者們已經(jīng)根據(jù)其特性將 diffusion model 與其他生成模型結(jié)合,所以為了進(jìn)一步展現(xiàn) diffusion model 的特點(diǎn)和改進(jìn)工作,我們詳細(xì)地介紹了 diffusion model 和其他生成模型的結(jié)合的工作并闡明了在原始生成模型上的改進(jìn)之處。Diffusion model 在諸多領(lǐng)域都有著優(yōu)異的表現(xiàn),并且考慮到不同領(lǐng)域的應(yīng)用中 diffusion model 產(chǎn)生了不同的變形,我們系統(tǒng)地介紹了 diffusion model 的應(yīng)用研究,其中包含如下領(lǐng)域:計算機(jī)視覺,NLP、波形信號處理、多模態(tài)建模、分子圖建模、時間序列建模、對抗性凈化。
對于每個任務(wù),我們定義了該任務(wù)并介紹利用擴(kuò)散模型處理任務(wù)的工作,我們將本項(xiàng)工作的主要貢獻(xiàn)總結(jié)如下:
- 新的分類方法:我們對擴(kuò)散模型和其應(yīng)用提出了一種新的、系統(tǒng)的分類法。具體的我們將模型分為三類:采樣速度增強(qiáng)、最大似然估計增強(qiáng)、數(shù)據(jù)泛化增強(qiáng)。進(jìn)一步地,我們將擴(kuò)散模型的應(yīng)用分為七類:計算機(jī)視覺,NLP、波形信號處理、多模態(tài)建模、分子圖建模、時間序列建模、對抗性凈化。
- 全面的回顧:我們首次全面地概述了現(xiàn)代擴(kuò)散模型及其應(yīng)用。我們展示了每種擴(kuò)散模型的主要改進(jìn),和原始模型進(jìn)行了必要的比較,并總結(jié)了相應(yīng)的論文。對于擴(kuò)散模型的每種類型的應(yīng)用,我們展示了擴(kuò)散模型要解決的主要問題,并說明它們?nèi)绾谓鉀Q這些問題。
- 未來研究方向:我們對未來研究提出了開放型問題,并對擴(kuò)散模型在算法和應(yīng)用方面的未來發(fā)展提供了一些建議。
擴(kuò)散模型基礎(chǔ)
生成式建模的一個核心問題是模型的靈活性和可計算性之間的權(quán)衡。擴(kuò)散模型的基本思想是正向擴(kuò)散過程來系統(tǒng)地擾動數(shù)據(jù)中的分布,然后通過學(xué)習(xí)反向擴(kuò)散過程恢復(fù)數(shù)據(jù)的分布,這樣就了產(chǎn)生一個高度靈活且易于計算的生成模型。
A.Denoising Diffusion Probabilistic Models(DDPM)
一個 DDPM 由兩個參數(shù)化馬爾可夫鏈組成,并使用變分推斷以在有限時間后生成與原始數(shù)據(jù)分布一致的樣本。前向鏈的作用是擾動數(shù)據(jù),它根據(jù)預(yù)先設(shè)計的噪聲進(jìn)度向數(shù)據(jù)逐漸加入高斯噪聲,直到數(shù)據(jù)的分布趨于先驗(yàn)分布,即標(biāo)準(zhǔn)高斯分布。反向鏈從給定的先驗(yàn)開始并使用參數(shù)化的高斯轉(zhuǎn)換核,學(xué)習(xí)逐步恢復(fù)原數(shù)據(jù)分布。用表示原始數(shù)據(jù)及其分布, 則前向鏈的分布是可由下式表達(dá):
這說明前向鏈?zhǔn)邱R爾可夫過程,x_t 是加入 t 步噪音后的樣本,β_t 是事先給定的控制噪聲進(jìn)度的參數(shù)。當(dāng)趨于 1 時,x_T 可以近似認(rèn)為服從標(biāo)準(zhǔn)高斯分布。當(dāng)β_t 很小時,逆向過程的轉(zhuǎn)移核可以近似認(rèn)為也是高斯的:
我們可以將變分下界作為損失函數(shù)進(jìn)行學(xué)習(xí):
B.Score-Based Generative Models(SGM)
上述 DDPM 可以視作 SGM 的離散形式。SGM 構(gòu)造一個隨機(jī)微分方程(SDE)來平滑的擾亂數(shù)據(jù)分布,將原始數(shù)據(jù)分布轉(zhuǎn)化到已知的先驗(yàn)分布:
和一個相應(yīng)的逆向 SDE,來將先驗(yàn)分布變換回原始數(shù)據(jù)分布:
因此,要逆轉(zhuǎn)擴(kuò)散過程并生成數(shù)據(jù),我們需要的唯一信息就是在每個時間點(diǎn)的分?jǐn)?shù)函數(shù)。利用 score-matching 的技巧我們可以通過如下?lián)p失函數(shù)來學(xué)習(xí)分?jǐn)?shù)函數(shù):
對兩種方法的進(jìn)一步介紹和兩者關(guān)系的介紹請參見我們的文章。
原始擴(kuò)散模型的三個主要缺點(diǎn),采樣速度慢,最大化似然差、數(shù)據(jù)泛化能力弱。最近許多研究都在解決這些缺點(diǎn),因此我們將改進(jìn)的擴(kuò)散模型分為三類:采樣速度提升、最大似然增強(qiáng)和數(shù)據(jù)泛化增強(qiáng)。在接下來的三、四、五節(jié)我們將對這三類模型進(jìn)行詳細(xì)的介紹。
采樣加速方法
在應(yīng)用時,為了讓新樣本的質(zhì)量達(dá)到最佳,擴(kuò)散模型往往需要進(jìn)行成千上萬步計算來獲取一個新樣本。這限制了 diffusion model 的實(shí)際應(yīng)用價值,因?yàn)樵趯?shí)際應(yīng)用時,我們往往需要產(chǎn)生大量的新樣本,來為下一步處理提供材料。研究者們在提高 diffusion model 采樣速度上進(jìn)行了大量的研究。我們對這些研究進(jìn)行了詳細(xì)的闡述。我們將其細(xì)化分類為三種方法:Discretization Optimization,Non-Markovian Process,Partial Sampling。
A.Discretization Optimization 方法優(yōu)化求解 diffusion SDE 的方法。因?yàn)楝F(xiàn)實(shí)中求解復(fù)雜 SDE 只能使用離散解來逼近真正的解,所以該類方法試圖優(yōu)化 SDE 的離散化方法,在保證樣本質(zhì)量的同時減少離散步數(shù)。SGM 提出了一個通用的方法來求解逆向過程,即對前向和后向過程采取相同的離散方法。如果給定了前向 SDE 的離散方式:
那么我們就可以以相同的方式離散化逆向 SDE:
這種方法比樸素 DDPM 效果略好一點(diǎn)。進(jìn)一步,SGM 向 SDE 求解器中加入了一個矯正器,從而讓每一步生成的樣本都有正確的分布。在求解的每一步,求解器給出一個樣本后,矯正器都使用馬爾可夫鏈蒙特卡羅方法來矯正剛生成的樣本的分布。實(shí)驗(yàn)表明向求解器中加入矯正器比直接增加求解器的步數(shù)效率更高。
B.Non-Markovian Process 方法突破了原有 Markovian Process 的限制,其逆過程的每一步可以依賴更多以往的樣本來進(jìn)行預(yù)測新樣本,所以在步長較大時也能做出較好的預(yù)測,從而加速采樣過程。其中主要的工作 DDIM,不再假設(shè)前向過程是馬爾可夫過程,而是服從如下分布:
DDIM 的采樣過程可以視為離散化的神經(jīng)常微分方程,其采樣過程更高效,并且支持樣本的內(nèi)插。進(jìn)一步的研究發(fā)現(xiàn) DDIM 可以視作流形上擴(kuò)散模型 PNDM 的特例。
C.Partial Sampling 方法通過在 generation process 中忽略一部分的時間節(jié)點(diǎn),而只使用剩下的時間節(jié)點(diǎn)來生成樣本,直接減少了采樣時間。例如,Progressive Distillation 從訓(xùn)練好的擴(kuò)散模型中蒸餾出效率更高的擴(kuò)散模型。對于訓(xùn)練好的一個擴(kuò)散模型,Progressive Distillation 會從新訓(xùn)練一個擴(kuò)散模型,使新的擴(kuò)散模型的一步對應(yīng)于訓(xùn)練好的擴(kuò)散模型的兩步,這樣新模型就可以省去老模型一半的采樣過程。具體算法如下:
不斷循環(huán)這個蒸餾過程就能讓采樣步驟指數(shù)級下降。
最大似然估計加強(qiáng)
擴(kuò)散模型在最大似然估計的表現(xiàn)差于基于似然函數(shù)的生成模型,但最大化似然估計在諸多應(yīng)用場景都有重要意義,比如圖片壓縮, 半監(jiān)督學(xué)習(xí), 對抗性凈化。由于對數(shù)似然難以直接計算,研究主要集中在優(yōu)化和分析變分下界(VLB)。我們對提高擴(kuò)散模型最大似然估計的模型進(jìn)行了詳細(xì)的闡述。我們將其細(xì)化分類為三類方法:Objectives Designing,Noise Schedule Optimization,Learnable Reverse Variance。
A.Objectives Designing 方法利用擴(kuò)散 SDE 推倒出生成數(shù)據(jù)的對數(shù)似然與分?jǐn)?shù)函數(shù)匹配的損失函數(shù)的關(guān)系。這樣通過適當(dāng)設(shè)計損失函數(shù),就可以最大化 VLB 和對數(shù)似然。Song et al. 證明了可以設(shè)計損失函數(shù)的權(quán)重函數(shù),使得 plug-in reverse SDE 生成樣本的似然函數(shù)值小于等于損失函數(shù)值,即損失函數(shù)是似然函數(shù)的上界。分?jǐn)?shù)函數(shù)擬合的損失函數(shù)如下:
我們只需將權(quán)重函數(shù)λ(t)設(shè)為擴(kuò)散系數(shù) g(t)即可讓損失函數(shù)成為似然函數(shù)的 VLB,即:
?B.Noise Schedule Optimization 通過設(shè)計或?qū)W習(xí)前向過程的噪聲進(jìn)度來增大 VLB。VDM 證明了當(dāng)離散步數(shù)接近無窮時,損失函數(shù)完全由信噪比函數(shù) SNR(t)的端點(diǎn)決定:
那么在離散步數(shù)接近無窮時,可以通過學(xué)習(xí)信噪比函數(shù) SNR(t)的端點(diǎn)最優(yōu)化 VLB,而通過學(xué)習(xí)信噪比函數(shù)中間部分的函數(shù)值來實(shí)現(xiàn)模型其他方面的改進(jìn)。
C.Learnable Reverse Variance 方法學(xué)習(xí)反向過程的方差,從而較少擬合誤差,可以有效地最大化 VLB。Analytic-DPM 證明,在 DDPM 和 DDIM 中存在反向過程中的最優(yōu)期望和方差:
使用上述公式和訓(xùn)練好的分?jǐn)?shù)函數(shù),在給定前向過程的條件下,最優(yōu)的 VLB 可以近似達(dá)到。
數(shù)據(jù)泛化增強(qiáng)
擴(kuò)散模型假設(shè)數(shù)據(jù)存在于歐幾里得空間,即具有平面幾何形狀的流形,并添加高斯噪聲將不可避免地將數(shù)據(jù)轉(zhuǎn)換為連續(xù)狀態(tài)空間,所以擴(kuò)散模型最初只能處理圖片等連續(xù)性數(shù)據(jù),直接應(yīng)用離散數(shù)據(jù)或其他數(shù)據(jù)類型的效果較差。這限制了擴(kuò)散模型的應(yīng)用場景。數(shù)個研究工作將擴(kuò)散模型推廣到適用于其他數(shù)據(jù)類型的模型,我們對這些方法進(jìn)行了詳細(xì)地闡釋。我們將其細(xì)化分類為兩類方法:Feature Space Unification,Data-Dependent Transition Kernels。
A.Feature Space Unification 方法將數(shù)據(jù)轉(zhuǎn)化到統(tǒng)一形式的 latent space,然后再 latent space 上進(jìn)行擴(kuò)散。LSGM 提出將數(shù)據(jù)通過 VAE 框架先轉(zhuǎn)換到連續(xù)的 latent space 上后再在其上進(jìn)行擴(kuò)散。這個方法的難點(diǎn)在于如何同時訓(xùn)練 VAE 和擴(kuò)散模型。LSGM 表明由于潛在先驗(yàn)是 intractable 的,分?jǐn)?shù)匹配損失不再適用。LSGM 直接使用 VAE 中傳統(tǒng)的損失函數(shù) ELBO 作為損失函數(shù),并導(dǎo)出了 ELBO 和分?jǐn)?shù)匹配的關(guān)系:
該式在忽略常數(shù)的意義下成立。通過參數(shù)化擴(kuò)散過程中樣本的分?jǐn)?shù)函數(shù),LSGM 可以高效的學(xué)習(xí)和優(yōu)化 ELBO。
B.Data-Dependent Transition Kernels 方法根據(jù)數(shù)據(jù)類型的特點(diǎn)設(shè)計 diffusion process 中的 transition kernels,使擴(kuò)散模型可以直接應(yīng)用于特定的數(shù)據(jù)類型。D3PM 為離散型數(shù)據(jù)設(shè)計了 transition kernel,可以設(shè)為 lazy random-walk,absorbing state 等。GEODIFF 為 3D 分子圖數(shù)據(jù)設(shè)計了平移 - 旋轉(zhuǎn)不變的圖神經(jīng)網(wǎng)絡(luò),并且證明了具有不變性的初分布和 transition kernel 可以導(dǎo)出具有不變性的邊緣分布。假設(shè) T 是一個平移 - 旋轉(zhuǎn)變換,如:
那么生成的樣本分布也有平移 - 旋轉(zhuǎn)不變性:
和其他生成模型的聯(lián)系在下面的每個小節(jié)中,我們首先介紹其他五類重要的生成模型,并分析它們的優(yōu)勢和局限性。然后我們介紹了擴(kuò)散模型是如何與它們聯(lián)系起來的,并說明通過結(jié)合擴(kuò)散模型來改進(jìn)這些生成模型。VAE,GAN,Autoregressive model, Normalizing flow, Energy-based model 和擴(kuò)散模型的聯(lián)系如下圖所示:
?
- DDPM 可以視作層次馬爾可夫 VAE(hierarchical Markovian VAE)。但 DDPM 和一般的 VAE 也有區(qū)別。DDPM 作為 VAE,它的 encoder 和 decoder 都服從高斯分布、有馬爾科夫行;其隱變量的維數(shù)和數(shù)據(jù)維數(shù)相同;decoder 的所有層都共用一個神經(jīng)網(wǎng)絡(luò)。
- DDPM 可以幫助 GAN 解決訓(xùn)練不穩(wěn)定的問題。因?yàn)閿?shù)據(jù)是在高維空間中的低維流形中,所以 GAN 生成數(shù)據(jù)的分布和真實(shí)數(shù)據(jù)的分布重合度低,導(dǎo)致訓(xùn)練不穩(wěn)定。擴(kuò)散模型提供了一個系統(tǒng)地增加噪音的過程,通過擴(kuò)散模型向生成的數(shù)據(jù)和真實(shí)數(shù)據(jù)添加噪音,然后將加入噪音的數(shù)據(jù)送入判別器,這樣可以高效地解決 GAN 無法訓(xùn)練、訓(xùn)練不穩(wěn)定的問題。
- Normalizing flow 通過雙射函數(shù)將數(shù)據(jù)轉(zhuǎn)換到先驗(yàn)分布,這樣的作法限制了 Normalizing flow 的表達(dá)能力,導(dǎo)致應(yīng)用效果較差。類比擴(kuò)散模型向 encoder 中加入噪聲,可以增加 Normalizing flow 的表達(dá)能力,而從另一個視角看,這樣的做法是將擴(kuò)散模型推廣到前向過程也可學(xué)習(xí)的模型。
- Autoregressive model 在需要保證數(shù)據(jù)有一定的結(jié)構(gòu),這導(dǎo)致設(shè)計和參數(shù)化自回歸模型非常困難。擴(kuò)散模型的訓(xùn)練啟發(fā)了自回歸模型的訓(xùn)練,通過特定的訓(xùn)練方式避免了設(shè)計的困難。
- Energy-based model 直接對原始數(shù)據(jù)的分布建模,但直接建模導(dǎo)致學(xué)習(xí)和采樣都比較困難。通過使用擴(kuò)散恢復(fù)似然,模型可以先對樣本加入微小的噪聲,再從有略微噪聲的樣本分布來推斷原始樣本的分布,使的學(xué)習(xí)和采樣過程更簡單和穩(wěn)定。
擴(kuò)散模型的應(yīng)用
在本節(jié)中,我們分別介紹了擴(kuò)散模型在計算機(jī)視覺、自然語言處理、波形信號處理、多模態(tài)學(xué)習(xí)、分子圖生成、時間序列以及對抗學(xué)習(xí)等七大應(yīng)用方向中的應(yīng)用,并對每類應(yīng)用中的方法進(jìn)行了細(xì)分并解析。例如在計算機(jī)視覺中可以用 diffusion model 進(jìn)行圖像補(bǔ)全修復(fù)(RePaint):
在多模態(tài)任務(wù)中可以用 diffusion model 進(jìn)行文本到圖像的生成(GLIDE):
還可以在分子圖生成中用 diffusion model 進(jìn)行藥物分子和蛋白質(zhì)分子的生成(GeoDiff):
應(yīng)用分類匯總見表:
?未來研究方向
- 應(yīng)用假設(shè)再檢驗(yàn)。我們需要檢查我們在應(yīng)用中普遍接受的假設(shè)。例如,實(shí)踐中普遍認(rèn)為擴(kuò)散模型的前向過程會將數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)高斯分布,但事實(shí)并非如此,更多的前向擴(kuò)散步驟會使最終的樣本分布與標(biāo)準(zhǔn)高斯分布更接近,與采樣過程一致;但更多的前向擴(kuò)散步驟也會使估計分?jǐn)?shù)函數(shù)更加困難。理論的條件很難獲得,因此在實(shí)踐中操作中會導(dǎo)致理論和實(shí)踐的不匹配。我們應(yīng)該意識到這種情況并設(shè)計適當(dāng)?shù)臄U(kuò)散模型。
- 從離散時間到連續(xù)時間。由于擴(kuò)散模型的靈活性,許多經(jīng)驗(yàn)方法可以通過進(jìn)一步分析得到加強(qiáng)。通過將離散時間的模型轉(zhuǎn)化到對應(yīng)的連續(xù)時間模型,然后再設(shè)計更多、更好的離散方法,這樣的研究思路有前景。
- 新的生成過程。擴(kuò)散模型通過兩種主要方法生成樣本:一是離散化反向擴(kuò)散 SDE,然后通過離散的反向 SDE 生成樣本;另一個是使用逆過程中馬爾可夫性質(zhì)對樣本逐步去噪。然而,對于一些任務(wù),在實(shí)踐中很難應(yīng)用這些方法來生成樣本。因此,需要進(jìn)一步研究新的生成過程和視角。
- 泛化到更復(fù)雜的場景和更多的研究領(lǐng)域。雖然目前 diffusion model 已經(jīng)應(yīng)用到多個場景中,但是大多數(shù)局限于單輸入單輸出的場景,將來可以考慮將其應(yīng)用到更復(fù)雜的場景,比如 text-to-audiovisual speech synthesis。也可以考慮和更多的研究領(lǐng)域相結(jié)合。