來源:3D視覺工坊
1. 引言
擴(kuò)散模型的迅速崛起是過去幾年機(jī)器學(xué)習(xí)領(lǐng)域最大的發(fā)展之一。在這本簡單易懂的指南中,學(xué)習(xí)你需要知道的關(guān)于擴(kuò)散模型的一切。
擴(kuò)散模型是生成模型,在過去的幾年中已經(jīng)獲得了顯著的流行,并且有很好的理由。20世紀(jì)20年代發(fā)表的幾篇開創(chuàng)性論文單獨(dú)的向世界展示了擴(kuò)散模型的能力,比如擊敗GANs關(guān)于圖像合成。
鑒于最近擴(kuò)散模型的成功浪潮,許多機(jī)器學(xué)習(xí)實(shí)踐者肯定對它們的內(nèi)部工作方式感興趣。在本文中,我們將研究擴(kuò)散模型的理論基礎(chǔ),關(guān)于擴(kuò)散模型的更直觀的解釋,請隨意查看我們的文章。
2. 擴(kuò)散模型簡介
擴(kuò)散模型是生成模型,意味著它們被用來生成與它們被訓(xùn)練的數(shù)據(jù)相似的數(shù)據(jù)?;旧?,擴(kuò)散模型的工作原理是,通過連續(xù)添加高斯噪聲,銷毀訓(xùn)練數(shù)據(jù)。然后學(xué)習(xí)去噪的過程,來恢復(fù)數(shù)據(jù)。經(jīng)過訓(xùn)練后,我們可以通過所學(xué)習(xí)的去噪過程,使用擴(kuò)散模型來生成數(shù)據(jù)。
更具體地說,擴(kuò)散模型是一種隱變量模型,它使用固定的馬爾可夫鏈映射到隱空間。該鏈逐漸向數(shù)據(jù)中添加噪聲,以獲得近似的后驗(yàn)概率q(x1:T|x0),其中x1、….、x是與x0具有相同維數(shù)的潛變量。在下圖中,我們看到這樣的馬爾可夫鏈表現(xiàn)為圖像數(shù)據(jù)。
	
最終,圖像會(huì)漸近地轉(zhuǎn)化為純高斯噪聲。訓(xùn)練擴(kuò)散模型的目標(biāo)是學(xué)習(xí)反向過程--即訓(xùn)練p(xt-1|xt)。通過沿著這條鏈反向遍歷,我們可以生成新的數(shù)據(jù)。
	
3. 擴(kuò)散模型的好處
如上所述,近年來對擴(kuò)散模型的研究呈爆炸式增長。受非平衡熱力學(xué)的啟發(fā),擴(kuò)散模型目前產(chǎn)生最先進(jìn)的圖像質(zhì)量,其示例如下所示:
除了尖端的圖像質(zhì)量,擴(kuò)散模型還有許多其他好處,包括不需要對抗性訓(xùn)練。對抗性訓(xùn)練的困難是有據(jù)可查的;而且,如果存在非對抗性的替代方案,表現(xiàn)和訓(xùn)練效率相當(dāng),通常最好利用它們。關(guān)于培訓(xùn)效率的話題,擴(kuò)散模型也有額外的好處可擴(kuò)展性和并行性。
雖然擴(kuò)散模型似乎是憑空產(chǎn)生結(jié)果,但有許多仔細(xì)而有趣的數(shù)學(xué)選擇和細(xì)節(jié)為這些結(jié)果提供了基礎(chǔ),最佳實(shí)踐仍在文獻(xiàn)中不斷發(fā)展?,F(xiàn)在讓我們更詳細(xì)地看看支撐擴(kuò)散模型的數(shù)學(xué)理論。
4. 擴(kuò)散模型-深入
如上所述,擴(kuò)散模型包括正向過程(或者擴(kuò)散過程),其中一個(gè)數(shù)據(jù)(通常是一個(gè)圖像)是漸進(jìn)的噪聲,和翻轉(zhuǎn)過程(或者反向擴(kuò)散過程),其中噪聲從目標(biāo)分布轉(zhuǎn)換回樣本。
當(dāng)噪聲水平足夠低時(shí),正向過程中的采樣鏈轉(zhuǎn)換可以設(shè)置為條件高斯型。將這一事實(shí)與馬爾可夫假設(shè)相結(jié)合,導(dǎo)致正向過程的簡單參數(shù)化:
	
其中β是方差表,(學(xué)習(xí)或固定),如果行為良好,確保xT是近似的各向同性高斯為足夠大的T。給定馬爾可夫假設(shè),潛在變量的聯(lián)合分布是高斯條件鏈轉(zhuǎn)移的產(chǎn)物:
	
如前所述,擴(kuò)散模型的“魔法”在于逆向過程。在訓(xùn)練過程中,模型學(xué)習(xí)逆向擴(kuò)散過程以生成新數(shù)據(jù)。從純高斯開始,噪聲p(xT):=N(xT, 0, I),模型學(xué)習(xí)聯(lián)合分布p(x0:T)為
	
其中學(xué)習(xí)高斯躍遷的時(shí)間相關(guān)參數(shù)。特別要注意的是,馬爾可夫公式斷言給定的反向擴(kuò)散轉(zhuǎn)移分布僅取決于前一時(shí)間步(或后一時(shí)間步,取決于你如何看待它):
	
	
5. 訓(xùn)練
擴(kuò)散模型通過以下方式訓(xùn)練找到使訓(xùn)練數(shù)據(jù)的可能性最大化的反向馬爾可夫轉(zhuǎn)移。實(shí)際上,訓(xùn)練等價(jià)地包括最小化負(fù)對數(shù)似然的變分上限。
	
我們試圖根據(jù) Kullback-Leibler(KL)散度重寫 Lvlbin。KL散度是一個(gè)不對稱統(tǒng)計(jì)距離度量一個(gè)概率分布P與參考分布0的差異。我們感興趣的是制定KL散度的Lvlbin 項(xiàng),因?yàn)槲覀兊鸟R爾可夫鏈中的轉(zhuǎn)移分布是正態(tài)分布,正態(tài)分布之間的KL 散度具有封閉形式。
KL散度是什么?連續(xù)分布KL發(fā)散的數(shù)學(xué)形式為
	
雙線表示該功能是不關(guān)于它的參數(shù)是對稱的。
下面你可以看到不同分布的KL散度P(藍(lán)色)來自參考分布Q(紅色)。綠色曲線表示上述KL散度定義中積分內(nèi)的函數(shù),曲線下的總面積表示KL散度的值P從Q在任何給定的時(shí)刻,也是用數(shù)字顯示的一個(gè)值。
	
如前所述,根據(jù)KL的差異幾乎完全重寫Lvlb是可能的:
	
在 Lt-1中,將前向過程的后驗(yàn)概率x0條件化,得到一個(gè)易于處理的公式,使得所有 KL散度都是高斯之間的比較。這意味著可以使用封閉形式的表達(dá)式而不是蒙特卡羅估計(jì)來精確計(jì)算散度
6. 模型選擇
隨著我們的目標(biāo)函數(shù)的數(shù)學(xué)基礎(chǔ)的建立,我們現(xiàn)在需要就如何實(shí)現(xiàn)我們的擴(kuò)散模型作出幾個(gè)選擇。對于前向過程,唯一需要的選項(xiàng)是定義方差時(shí)間表,其值通常在前向過程中增加。
對于反向過程,我們應(yīng)選擇高斯分布參數(shù)化/模型架構(gòu)。請注意Diffusion模型的高度靈活性--我們架構(gòu)的唯一要求是其輸入和輸出具有相同的維數(shù)。
我們將在下面更詳細(xì)地探討這些選擇的細(xì)節(jié)。
前向流程與LT
如上所述,關(guān)于前向過程,我們必須定義方差進(jìn)度表。特別是,我們將它們設(shè)置為時(shí)間相關(guān)的常數(shù),忽略了它們可以被學(xué)習(xí)的事實(shí)。無論選擇什么特定的值,方差表固定的事實(shí)導(dǎo)致LT成為我們可學(xué)習(xí)參數(shù)集的一個(gè)常數(shù)使我們可以在訓(xùn)練時(shí)忽略它。
	
逆向過程和L 1:T -1
現(xiàn)在我們討論定義反向過程所需要的選擇,從上面我們定義的反向馬爾可夫轉(zhuǎn)換為高斯:
	
我們簡單地設(shè)置:
	
也就是說,我們假設(shè)多元正態(tài)分布是獨(dú)立正態(tài)分布的乘積,這些獨(dú)立正態(tài)分布具有相同的方差,方差值可以隨時(shí)間變化。我們將這些方差設(shè)定為與我們的正向過程方差表相等。
	
其中差值中的第一個(gè)項(xiàng)是xt和x0的線性組合,該組合取決于方差。時(shí)間表決定這個(gè)函數(shù)的確切形式與我們的目的無關(guān)。最直接的參數(shù)化是預(yù)測擴(kuò)散后均值。重要的是,預(yù)測任何給定時(shí)間步數(shù)的噪聲成分會(huì)產(chǎn)生更好的結(jié)果。
	
這導(dǎo)致了下面的替代損失函數(shù),能帶來更穩(wěn)定的訓(xùn)練和更好的結(jié)果:
	
還要注意擴(kuò)散模型的這種公式化與基于朗之萬動(dòng)力學(xué)的分?jǐn)?shù)匹配生成模型的聯(lián)系。事實(shí)上,似乎擴(kuò)散模型和基于分?jǐn)?shù)的模型可能是同一枚硬幣的兩面,類似于基于波的量子力學(xué)和基于矩陣的量子力學(xué)的獨(dú)立和并行發(fā)展,揭示了同一現(xiàn)象的兩個(gè)等效公式。
7. 網(wǎng)絡(luò)體系結(jié)構(gòu)
雖然我們簡化的損失函數(shù)試圖訓(xùn)練一個(gè)模型。我們還沒有定義這個(gè)模型的架構(gòu)。請注意僅僅對模型的要求是它的輸入和輸出維數(shù)相同。鑒于這種限制,圖像擴(kuò)散模型通常用類似U-Net的架構(gòu)來實(shí)現(xiàn)就不足為奇了。
	
8. 反向過程解碼器和L0
沿著相反過程的路徑由連續(xù)條件高斯分布下的許多變換組成。在反向過程的最后,回想一下我們試圖生成一個(gè)圖像,由整數(shù)像素值組成。因此,我們必須設(shè)計(jì)一種方法來獲得離散(對數(shù))可能性對于所有像素中的每個(gè)可能的像素值。
實(shí)現(xiàn)這一點(diǎn)的方法是將反向擴(kuò)散鏈中的最后一個(gè)轉(zhuǎn)換設(shè)置為獨(dú)立離散解碼器。為了確定給定圖像的可能性,我們首先在數(shù)據(jù)維度之間強(qiáng)加獨(dú)立性:
	
其中,D是數(shù)據(jù)的維數(shù),上標(biāo)i表示提取一個(gè)坐標(biāo)。現(xiàn)在的目標(biāo)是確定在給定像素的分布下,每個(gè)整數(shù)值對給定像素的概率。在時(shí)間t=1時(shí),微帶噪聲圖像中對應(yīng)像素的可能值:
	
其中,t=1的像素分布由以下多元高斯分布得出,其對角線協(xié)方差矩陣允許我們將分布分解為多元高斯分布的乘積,對每個(gè)數(shù)據(jù)維度:
	
我們假設(shè)圖像由 0、1、…255(與標(biāo)準(zhǔn) RGB圖像相同)中的整數(shù)組成,這些整數(shù)已被線性縮放為 【-1,1】。然后,我們將實(shí)線分解為小的“桶”,其中,對于給定的縮放像素值x,該范圍內(nèi)的桶為【x-1/255,x+1/256】。給定x1中相應(yīng)像素的一元高斯分布像素值x的概率是圍繞x中心桶內(nèi)的一元高斯分布的面積。推薦課程:機(jī)械臂抓取從入門到實(shí)戰(zhàn)課程(理論+源碼)。
您可以在下面看到每個(gè)桶的區(qū)域以及它們的平均-0高斯概率,在這種情況下,平均像素值為255/2(一半亮度)。紅色曲線表示t=1圖像中特定像素的分布,而區(qū)域給出t=0圖像中相應(yīng)像素值的概率。
	
給定每個(gè)像素的t=0像素值,p(x0|x1)的值就是它們的乘積。這個(gè)過程簡潔地用下面的方程來描述:
	
給出p(xo|x1)的這個(gè)方程式,我們可以計(jì)算Lvb的最后一個(gè)項(xiàng),這個(gè)項(xiàng)不是用KL散度來表示的:
	
9. 最終目標(biāo)
正如在上一節(jié)中所提到的,預(yù)測圖像在給定時(shí)間步數(shù)下的噪聲成分會(huì)產(chǎn)生最佳結(jié)果。最終,他們使用以下目標(biāo):
	
因此,我們的擴(kuò)散模型的訓(xùn)練和采樣算法可以簡潔地體現(xiàn)在下圖中:
	
10. 擴(kuò)散模型總結(jié)
我們詳細(xì)探討了擴(kuò)散模型的理論,很容易陷入數(shù)學(xué)細(xì)節(jié),因此我們在下面指出了這一節(jié)中最重要的幾點(diǎn),以便從鳥瞰的角度保持我們的方向:
1.我們的擴(kuò)散模型參數(shù)化為馬爾可夫鏈,這意味著我們的潛變量x1,…,xT僅依賴于之前(或后續(xù))時(shí)間步。
2.在馬爾可夫鏈的過渡分布是高斯,其中的正向過程需要方差調(diào)度,和反向過程的參數(shù)被學(xué)習(xí)。
3.擴(kuò)散過程確保xT是漸近分布的各向同性高斯。
4.在我們的情況下,方差時(shí)間表是固定的,但也可以學(xué)習(xí)。對于固定的時(shí)間表遵循幾何級數(shù)可能比線性級數(shù)提供更好的結(jié)果。在這兩種情況下,方差通常隨著時(shí)間的推移而增加。
5.擴(kuò)散模型非常靈活,允許使用輸入和輸出維數(shù)相同的任何體系結(jié)構(gòu),許多實(shí)現(xiàn)使用類似于U-Net的體系結(jié)構(gòu)。
6.訓(xùn)練目標(biāo)是使訓(xùn)練數(shù)據(jù)的可能性最大化。這表現(xiàn)在調(diào)整模型參數(shù)以最小化負(fù)對數(shù)似然的變分上界。
7.由于我們的馬爾可夫假設(shè),目標(biāo)函數(shù)中幾乎所有的項(xiàng)都可以轉(zhuǎn)換為KL散度。這些值變得可信的計(jì)算,因?yàn)槲覀兪褂酶咚?,因此省略了?zhí)行蒙特卡羅近似的需要。
8.最終,使用一個(gè)簡化的訓(xùn)練目標(biāo)來訓(xùn)練一個(gè)預(yù)測給定潛變量的噪聲分量的函數(shù)會(huì)產(chǎn)生最佳和最穩(wěn)定的結(jié)果。
9.作為反向擴(kuò)散過程的最后一步,使用離散解碼器來獲取像素值之間的似然率。
- 
                                噪聲
                                +關(guān)注
關(guān)注
13文章
1151瀏覽量
48851 - 
                                機(jī)器學(xué)習(xí)
                                +關(guān)注
關(guān)注
66文章
8534瀏覽量
136081 - 
                                擴(kuò)散模型
                                +關(guān)注
關(guān)注
0文章
5瀏覽量
5662 
原文標(biāo)題:大白話告訴你擴(kuò)散模型是什么,有什么用?
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
從擴(kuò)散角度看電磁場
【理論】電磁兼容理論基礎(chǔ)(55頁P(yáng)PT)
Java NIO編程理論基礎(chǔ)之Java IO及l(fā)inux網(wǎng)絡(luò)IO模型發(fā)展
CT的理論基礎(chǔ)及理論發(fā)展
簡稱 PI(power integrity)電源完整性理論基礎(chǔ)
    
          
        
        
擴(kuò)散模型的理論基礎(chǔ)
                
 
           
            
            
                
            
評論