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