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

評論