首頁 >科技週邊 >人工智慧 >最近火災的Diffusion Model,首篇擴散生成模型綜述!

最近火災的Diffusion Model,首篇擴散生成模型綜述!

PHPz
PHPz轉載
2023-04-09 20:31:011499瀏覽

最近火災的Diffusion Model,首篇擴散生成模型綜述!

這篇綜述(Diffusion Models: A Comprehensive Survey of Methods and Applications)來自加州大學&Google Research的Ming-Hsuan Yang、北京大學崔斌實驗室以及CMU、UCLA 、蒙特利爾Mila研究院等眾研究團隊,首次對現有的擴散生成模型(diffusion model)進行了全面的總結分析,從diffusion model演算法細化分類、和其他五大生成模型的關聯以及在七大領域中的應用等面向展開,最後提出了diffusion model的現有limitation和未來的發展方向。

文章連結:https://arxiv.org/abs/2209.00796本綜述diffusion models論文分類彙總github連結:https://github.com/YangLing0818/Diffusion -Models-Papers-Survey-Taxonomy

1 介紹

擴散模型(diffusion models)是深度生成模型中新的SOTA。擴散模型在圖片生成任務中超越了原始SOTA:GAN,並且在許多應用領域都有出色的表現,如計算機視覺,NLP、波形信號處理、多模態建模、分子圖建模、時間序列建模、對抗性淨化等。此外,擴散模型與其他研究領域有著密切的聯繫,如穩健學習、表示學習、強化學習。

然而,原始的擴散模型也有缺點,它的取樣速度慢,通常需要數千個評估步驟才能抽取一個樣本;它的最大似然估計無法和基於似然的模型相比;它泛化到各種資料類型的能力較差。如今許多研究已經從實際應用的角度解決上述限製做出了許多努力,或從理論角度對模型能力進行了分析。

然而,現在缺乏對擴散模型從演算法到應用的最新進展的系統性回顧。為了反映這一快速發展領域的進展,我們對擴散模型進行了首個全面綜述。我們設想我們的工作將闡明擴散模型的設計考慮和先進方法,展示其在不同領域的應用,並指出未來的研究方向。此綜述的摘要如下圖所示:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

儘管diffusion model在各類任務中都有著優秀的表現,它仍還有自己的缺點,並有許多研究對diffusion model進行了改善。

為了系統性地闡明diffusion model的研究進展,我們總結了原始擴散模型的三個主要缺點,取樣速度慢,最大化似然差、資料泛化能力弱,並提出將的diffusion models改進研究分為對應的三類:採樣速度提升、最大似然增強和資料泛化增強。

我們首先說明改善的動機,再根據方法的特性將每個改進方向的研究進一步細化分類,從而清楚的展現方法之間的聯繫與區別。在此我們僅選取部分重要方法為例, 我們的工作中對每類方法都做了詳細的介紹,內容如圖所示:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

在分析完三類擴散模型後,我們將介紹其他的五種生成模型GAN,VAE,Autoregressive model, Normalizing flow, Energy-based model。

考慮到擴散模型的優良性質,研究者們已經根據其特性將diffusion model與其他生成模型結合,所以為了進一步展現diffusion model 的特點和改進工作,我們詳細地介紹了diffusion model和其他生成模型的結合的工作並闡明了在原始生成模型上的改進之處。

Diffusion model在許多領域都有著優異的表現,並且考慮到不同領域的應用中diffusion model產生了不同的變形,我們系統地介紹了diffusion model的應用研究,其中包含以下領域:電腦視覺,NLP、波形訊號處理、多模態建模、分子圖建模、時間序列建模、對抗性淨化。對於每個任務,我們定義了該任務並介紹利用擴散模型處理任務的工作,我們將本項工作的主要貢獻總結如下:

#
  • 新的分類方法:我們對擴散模型和其應用提出了一種新的、系統的分類法。具體的我們將模型分為三類:取樣速度增強、最大似然估計增強、資料泛化增強。進一步地,我們將擴散模型的應用分為七類:電腦視覺,NLP、波形訊號處理、多模態建模、分子圖建模、時間序列建模、對抗性淨化。
  • 全面的回顧:我們首次全面地概述了現代擴散模型及其應用。我們展示了每種擴散模型的主要改進,和原始模型進行了必要的比較,並總結了相應的論文。對於擴散模型的每種類型的應用,我們展示了擴散模型要解決的主要問題,並說明它們如何解決這些問題。
  • 未來研究方向:我們對未來研究提出了開放型問題,並對擴散模型在演算法和應用方面的未來發展提供了一些建議。

擴散模型基礎

#生成式建模的一個核心問題是模型的彈性與可計算性之間的權衡。擴散模型的基本概念是正向擴散過程來系統地擾動資料中的分佈,然後透過學習反向擴散過程來恢復資料的分佈,這樣就了產生一個高度靈活且易於計算的生成模型。

(1)Denoising Diffusion Probabilistic Models(DDPM)

一個DDPM由兩個參數化馬可夫鏈組成,並使用變異推斷以在有限時間後產生與原始資料分佈一致的樣本。前向鏈的作用是擾動數據,它根據預先設計的噪聲進度向數據逐漸加入高斯噪聲,直到數據的分佈趨於先驗分佈,即標準高斯分佈。反向鏈從給定的先驗開始並使用參數化的高斯轉換核,學習逐步恢復原始資料分佈。用表示原始資料及其分佈,則前向鏈的分佈是可由下式表達:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

這表示前向鍊是馬可夫過程,是加入t步雜訊後的樣本,是事先給定的控制雜訊進度的參數。當 趨於1時,可以近似地認為服從標準高斯分佈。當很小時,逆向過程的轉移核可以近似認為也是高斯的:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

我們可以將變分下界作為損失函數來學習:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

(2)Score-Based Generative Models(SGM)

上述DDPM可以視為SGM的離散形式。 SGM建構一個隨機微分方程式(SDE)來平滑的擾亂資料分佈,將原始資料分佈轉換到已知的先驗分佈:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

##和一個對應的逆向SDE,來將先驗分佈變換回原始資料分佈:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

#因此,要逆轉擴散過程並產生數據,我們需要的唯一資訊就是在每個時間點的分數函數。利用score-matching的技巧我們可以透過以下損失函數來學習分數函數:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

對兩種方法的進一步介紹和兩者關係的介紹請參見我們的文章。原始擴散模型的三個主要缺點,取樣速度慢,最大化似然差、資料泛化能力弱。最近許多研究都在解決這些缺點,因此我們將改進的擴散模型分為三類:採樣速度提升、最大似然增強和資料泛化增強。在接下來的三、四、五節我們將對這三類模型進行詳細的介紹。

取樣加速方法

在應用時,為了讓新樣本的品質達到最佳,擴散模型往往需要成千上萬萬步計算來取得一個新樣本。這限制了diffusion model的實際應用價值,因為在實際應用時,我們往往需要產生大量的新樣本,來為下一步處理提供材料。

研究者們在提高diffusion model取樣速度上進行了大量的研究。我們對這些研究進行了詳細的闡述。我們將其細化分類為三種方法:Discretization Optimization,Non-Markovian Process,Partial Sampling。

(1)Discretization Optimization方法最佳化求解diffusion SDE的方法。因為現實中求解複雜SDE只能使用離散解來逼近真正的解,所以該類別方法試圖優化SDE的離散化方法,在確保樣本品質的同時減少離散步數。 SGM 提出了一個通用的方法來求解逆向過程,即對前向和後向過程採取相同的離散方法。如果給定了前向SDE的離散方式:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

#那麼我們就可以以相同的方式離散化逆向SDE:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

這種方法比樸素DDPM效果略好一點。進一步,SGM在SDE求解器中加入了一個矯正器,讓每個步驟產生的樣本都有正確的分佈。在求解的每一步,求解器給出一個樣本後,矯正器都使用馬可夫鏈蒙特卡羅方法來矯正剛產生的樣本的分佈。實驗顯示向求解器中加入矯正器比直接增加求解器的步數效率更高。

(2)Non-Markovian Process方法突破了原有Markovian Process的限制,其逆過程的每一步可以依賴更多以往的樣本來進行預測新樣本,所以在步長較大時也能做出較好的預測,加速採樣過程。其中主要的工作DDIM,不再假設前向過程是馬可夫過程,而是服從如下分佈:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

#DDIM的取樣過程可以視為離散化的神經常微分方程,其取樣過程更有效率,並且支持樣本的內插。進一步的研究發現DDIM可以視為流形上擴散模型PNDM的特殊情況。

(3)Partial Sampling方法透過在generation process中忽略一部分的時間節點,而只使用剩下的時間節點來產生樣本,直接減少了取樣時間。例如,Progressive Distillation從訓練好的擴散模型中蒸餾出效率更高的擴散模型。對於訓練好的一個擴散模型,Progressive Distillation會從新訓練一個擴散模型,使新的擴散模型的一步對應於訓練好的擴散模型的兩步,這樣新模型就可以省去舊模型一半的採樣過程。具體演算法如下:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

不斷循環這個蒸餾過程就能讓取樣步驟指數級下降。

最大似然估計加強

擴散模型在最大似然估計的表現差於基於似然函數的生成模型,但最大化似然估計在許多應用場景都有重要意義,例如圖片壓縮, 半監督學習, 對抗性淨化。由於對數似然難以直接計算,研究主要集中在最佳化和分析變分下界(VLB)。我們對提高擴散模型最大似然估計的模型進行了詳細的闡述。我們將其細化分類為三類方法:Objectives Designing,Noise Schedule Optimization,Learnable Reverse Variance。

(1)Objectives Designing方法利用擴散 SDE推倒出生成資料的對數似然與分數函數相符的損失函數的關係。這樣透過適當設計損失函數,就可以最大化 VLB 和對數似然。 Song et al. 證明了可以設計損失函數的權重函數,使得plug-in reverse SDE 生成樣本的似然函數值小於等於損失函數值,即損失函數是似然函數的上界。分數函數擬合的損失函數如下:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

我們只需將權重函數設為擴散係數g(t)即可讓損失函數成為似然函數的VLB,即:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

#(2)Noise Schedule Optimization透過設計或學習前向過程的噪音進度來增大VLB。 VDM證明了當離散步數接近無窮時,損失函數完全由信噪比函數SNR(t)的端點決定:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

##那麼在離散步數接近無窮時,可以透過學習信噪比函數SNR(t)的端點最優化VLB,而透過學習信噪比函數中間部分的函數值來實現模型其他方面的改進。 3.Learnable Reverse Variance方法學習反向過程的方差,從而較少擬合誤差,可以有效最大化VLB。 Analytic-DPM證明,在DDPM和DDIM中存在反向過程中的最優期望和變異數:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

##使用上述公式和訓練好的分數函數,在給定前向過程的條件下,最優的VLB可以近似達到。

資料泛化增強

擴散模型假設資料存在於歐幾裡得空間,即具有平面幾何形狀的流形,並且添加高斯噪聲將不可避免地將數據轉換為連續狀態空間,所以擴散模型最初只能處理圖片等連續性數據,直接應用離散數據或其他數據類型的效果較差。這限制了擴散模型的應用場景。

數個研究工作將擴散模型推廣到適用於其他資料類型的模型,我們對這些方法進行了詳細地闡釋。我們將其細化分類為兩類方法:Feature Space Unification,Data-Dependent Transition Kernels。

(1)Feature Space Unification方法將資料轉換到統一形式的latent space,然後再latent space上進行擴散。 LSGM提出將資料經由VAE框架先轉換到連續的latent space 上後再在其上進行擴散。這個方法的困難在於如何同時訓練VAE和擴散模型。 LSGM顯示由於潛在先驗是intractable的,因此分數匹配損失不再適用。 LSGM直接使用VAE中傳統的損失函數ELBO作為損失函數,並導出了ELBO和分數匹配的關係:

最近火災的Diffusion Model,首篇擴散生成模型綜述!##該式在忽略常數的意義下成立。透過參數化擴散過程中樣本的分數函數,LSGM可以高效率的學習和最佳化ELBO。

(2)Data-Dependent Transition Kernels方法根據資料類型的特性設計diffusion process 中的transition kernels,使擴散模型可以直接套用於特定的資料類型。 D3PM為離散型資料設計了transition kernel,可以設為lazy random-walk,absorbing state等。 GEODIFF為3D分子圖資料設計了平移-旋轉不變的圖神經網絡,並且證明了具有不變性的初始分佈和transition kernel可以導出具有不變性的邊緣分佈。假設是一個平移-旋轉變換,如:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

#那麼產生的樣本分佈也有平移-旋轉不變性:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

和其他生成模型的連結

在下面的每個小節中,我們先介紹其他五類重要的生成模型,並分析它們的優點和限制。然後我們介紹了擴散模型是如何與它們聯繫起來的,並說明透過結合擴散模型來改進這些生成模型。 VAE,GAN,Autoregressive model, Normalizing flow, Energy-based model和擴散模型的聯繫如下圖所示:

最近火災的Diffusion Model,首篇擴散生成模型綜述!


  • ##DDPM可以視為層次馬可夫VAE(hierarchical Markovian VAE)。但DDPM和一般的VAE也有差別。 DDPM作為VAE,它的encoder和decoder都服從高斯分佈、有馬爾科夫行;其隱變量的維數和資料維數相同;decoder的所有層都共用一個神經網路。
DDPM可以幫助GAN解決訓練不穩定的問題。因為資料是在高維空間中的低維流形中,所以GAN產生資料的分佈和真實資料的分佈重合度低,導致訓練不穩定。擴散模型提供了一個系統地增加噪音的過程,透過擴散模型為生成的資料和真實資料添加噪音,然後將加入噪音的資料送入判別器,這樣可以有效率地解決GAN無法訓練、訓練不穩定的問題。

Normalizing flow透過雙射函數將資料轉換到先驗分佈,這樣的作法限制了Normalizing flow的表達能力,導致應用效果較差。類比擴散模型在encoder中加入噪聲,可以增加Normalizing flow的表達能力,而從另一個視角來看,這樣的做法是將擴散模型推廣到前向過程也可學習的模型。

Autoregressive model在需要保證資料有一定的結構,這導致設計和參數化自迴歸模型非常困難。擴散模型的訓練啟發了自回歸模型的訓練,透過特定的訓練方式避免了設計的困難。

最近火災的Diffusion Model,首篇擴散生成模型綜述!

Energy-based model直接對原始資料的分佈建模,但直接建模導致學習和取樣都比較困難。透過使用擴散恢復似然,模型可以先對樣本加入微小的噪聲,再從有略微噪聲的樣本分佈來推斷原始樣本的分佈,使的學習和採樣過程更簡單和穩定。

最近火災的Diffusion Model,首篇擴散生成模型綜述!

擴散模型的應用

在本節中,我們分別介紹了擴散模型在電腦視覺、自然語言處理、波形訊號處理、多模態學習、分子圖生成、時間序列以及對抗學習等七大應用方向中的應用,並對每類應用中的方法進行了細分並解析。例如在電腦視覺中可以用diffusion model進行影像補全修復(RePaint):

##################在多模態任務中可以用diffusion model進行文字到圖像的生成(GLIDE):######################也可以在分子圖生成中用diffusion model進行藥物分子和蛋白質分子的生成(GeoDiff ):#######

最近火災的Diffusion Model,首篇擴散生成模型綜述!

應用分類總表見表:

最近火災的Diffusion Model,首篇擴散生成模型綜述!

未來研究方向

  • 應用假設再檢驗。我們需要檢視我們在應用中普遍接受的假設。例如,實務上普遍認為擴散模型的前向過程會將資料轉換為標準高斯分佈,但事實並非如此,更多的前向擴散步驟會使最終的樣本分佈與標準高斯分佈更接近,與取樣過程一致;但更多的前向擴散步驟也會使估計分數函數更加困難。理論的條件很難獲得,因此在實務中操作中會導致理論和實務的不匹配。我們應該意識到這種情況並設計適當的擴散模型。
  • 從離散時間到連續時間。由於擴散模型的靈活性,許多經驗方法可以透過進一步分析來加強。透過將離散時間的模型轉換到對應的連續時間模型,然後再設計更多、更好的離散方法,這樣的研究想法有前景。
  • 新的生成過程。擴散模型透過兩種主要方法產生樣本:一是離散化反向擴散 SDE,然後透過離散的反向 SDE 產生樣本;另一個是使用逆過程中馬可夫性質逐步去雜訊樣本。然而,對於某些任務,在實務上很難應用這些方法來產生樣本。因此,需要進一步研究新的生成過程和觀點。
  • 泛化到更複雜的場景和更多的研究領域。雖然目前diffusion model已經應用到多個場景中,但是大多數局限於單輸入單輸出的場景,將來可以考慮將其應用到更複雜的場景,例如text-to-audiovisual speech synthesis。也可以考慮和更多的研究領域結合。
#

以上是最近火災的Diffusion Model,首篇擴散生成模型綜述!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除