
(
機器學習演算法與自然語言處理
)社群是國內外知名自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
轉載自 | RUC AI Box
作者|楊錦霞
機構|中國人民大學
研究方向|多模態學習
引言:擴散模型是一類生成模型,透過迭代去噪過程將高斯噪聲轉換為已知資料分佈的樣本,生成的圖片具有較好的多樣性和寫實性。文字生成影像是多模態的任務之一,目前該任務的很多工作也是基於擴散模型進行構建的,如GLIDE、DALL·E2、Imagen等,生成的圖片讓人驚歎。本文從介紹擴散模型的理論部分開始,主要介紹DDPM一文中涉及到的數學公式,然後介紹擴散模型中常用到的指導技巧,最後會介紹文字生成影像的一些應用。
1
『擴散模型』

上圖展示了擴散模型的兩個過程。其中,從右到左(從 到 )表示正向過程或擴散過程,從左到右(從 到 )表示的是逆向過程。擴散過程逐步向原始影像新增高斯噪聲,是一個固定的馬爾科夫鏈過程,最後影像也被漸進變換為一個高斯噪聲。而逆向過程則透過去噪一步步恢復原始影像,從而實現影像的生成。下面形式化介紹擴散過程、逆擴散過程和目標函式,主要參考DDPM[1]論文和What are Diffusion Models?[2]部落格內容。
1.1 擴散過程
設原始影像 ,擴散過程進行 步,每一步都向資料中新增方差為 每一步都向資料中新增方差為 ,最終 。所以,由馬爾科夫鏈的無記憶性,可對擴散過程進行如下定義:

所以,擴散過程的均值和方差是已知的,其均值為 ,方差為 。
擴散過程有一個顯著特性,我們可以對任意 進行取樣。為了證明該性質需要使用引數重整化技巧:假設要從高斯分佈 中取樣 時,可以先從 取樣出 ,然後計算 ,這樣可以解決梯度無法回傳問題。
所以首先將 進行重引數化:設 , 故:
設 , :
其中 ,第三行到第四行進行了兩個正態分佈的相加。所以,重整化後 ,即 1.2 逆擴散過程
逆擴散過程是從給定的高斯噪聲中恢復原始資料,也是一個馬爾可夫鏈過程,但每個時刻 的均值和方差需要我們去學習,所以,我們可以構建生成模型 :
1.3 目標函式
擴散模型使用負對數似然最小化的思想,採用近似的技術等價地要求負對數似然最小化。同時,由於KL散度具有非負性,因而將 和 的KL散度新增至負對數似然函式中,形成新的上界。
對於全部的訓練資料,新增上式兩邊同乘 ,即:
對上式進行化簡:
上式中第四行到第五行,利用了馬爾可夫鏈的無記憶性和貝葉斯公式:
第六行到第七行是第二個求和符號展開並化簡的結果。
上述過程在DDPM論文中的附錄部分也有展示。
觀察 可知, 項的兩個分佈均已知,同時DDPM文中將 項設定為一個特殊的高斯分佈。故最後的目標只和 有關。
同時,雖然 無法直接給出,但當我們加入 作為條件時,設
類似上面的處理,根據貝葉斯公式和馬爾可夫性質,可知
然後由公式(1)(4)可知:
由於高斯分佈的機率密度函式是:
將上面兩個式子進行一一對應,可以得到均值:
所以,由高斯分佈的KL散度計算式可知, 可化為:
因此,我們可以直觀地看到其目標含義是模型預測的均值 要儘可能和 接近。然後,由公式 可知,輸入 不含引數,則在給定 時,若 能夠預測出 ,則也能夠計算出均值,所以同樣進行引數重整化,可得:
所以:
DDPM論文中最終的簡化目標為:
所以可以看出,從預測均值變為了直接預測噪聲,加快了推理速度。
2
『Guided Diffusion』
DDPM論文提出之後,擴散模型就可以生成質量比較高的圖片,具有較強的多樣性,但是在具體的指標數值上沒有超過GAN。同時,在協助使用者進行藝術創作和設計時,對生成的影像進行細粒度控制也是一個重要的考慮因素。所以之後嘗試將一些具體的指導融入擴散模型中去。
2.1 Classifier Guidance
用於影像生成的GAN的相關工作大量使用了類標籤,而我們也希望生成的圖片更加寫實,所以有必要探索在類標籤上調整擴散模型。具體來說,Diffusion Models Beat GANs[3]一文中使用了額外的分類器 ,在前面我們描述的無條件的逆向過程的基礎上,將類別作為條件進行生成,具體公式如下:

上式的含義是加入類別作為條件進行生成,可以看作無條件的生成和分類兩者的結合。具體而言,用分類模型對生成的圖片進行分類,得到預測與目標類別的交叉熵,從而使用梯度幫助模型的取樣和生成。
實際中,分類器 是在噪聲資料 上訓練的。
取樣過程的演算法如下:

可以看到該過程中同時學習均值和方差,然後加入分類器的梯度引導取樣過程。
2.2 Semantic Diffusion Guidance (SDG)
看到分類器指導的影像生成的有效性後,自然而然可以想到:是否可以將影像類別資訊換為其他不同型別的指導呢?比如使用CLIP模型作為影像和文字之間的橋樑,實現文字指導的影像生成。
Semantic Diffusion Guidance(SDG)[4]是一個統一的文字引導和影像引導框架,透過使用引導函式來注入語義輸入,以指導無條件擴散模型的取樣過程,這使得擴散模型中的生成更加可控,併為語言和影像引導提供了統一的公式。


從取樣過程可以看出,不同的引導其實就是 中 的不同,可以是文字、影像,也可以是兩者的結合。
2.3 Classifier-Free Guidance
以上方法都是使用了額外的模型,成本比較高,而且須在噪聲資料上進行訓練,無法使用預訓練好的分類器。Classifier-Free Guidance[5]一文提出在沒有分類器的情況下,純生成模型可以進行引導:共同訓練有條件和無條件擴散模型,並發現將兩者進行組合,可以得到樣本質量和多樣性之間的權衡。
原來分類器指導的式子如下, 表示條件, 和 含義類似:

Classifier-Free Guidance方法將模型的輸入分為兩種,一種是無條件的 ,另一種是有條件的 ,使用一個神經網路來引數化兩個模型,對於無條件模型,我們可以在預測分數時簡單地為類識別符號 設為零,即 。我們聯合訓練無條件和條件模型,只需將 隨機設定為無條件類識別符號即可。然後,使用以下有條件和無條件分數估計的線性組合進行抽樣:
3. 應用

3
『應用』
3.1 GLIDE
OpenAI的GLIDE[6]將擴散模型和Classifier-Free Guidance進行結合去生成影像。同時文中比較了兩種不同的引導策略:CLIP Guidance和Classifier-Free Guidance,然後發現Classifier-Free Guidance在照片寫實等方面更受人類評估者的青睞,並且通常會產生很逼真的樣本,並能實現影像編輯。其中,Classifier-Free Guidance中的條件是文字。
3
『應用』

下表是GLIDE在MS-COCO上的實驗結果。

除了零樣本生成之外,GLIDE還具有編輯功能,允許迭代地改進模型樣本。
3.2 DALL·E 2
DALL·E2[7]利用CLIP來生成影像,提出了一個兩階段模型:一個先驗prior網路用於生成一個給定文字下的 CLIP 影像嵌入,一個解碼器decoder在給定影像編碼的情況下生成影像。DALL·E2對解碼器使用擴散模型,並對先驗網路使用自迴歸模型和擴散模型進行實驗,發現後者在計算上更高效,併產生更高質量的樣本。
具體來說:
-
prior :在給定文字條件下生成CLIP影像的編碼,並且文中探索了兩種實現方式:自迴歸和擴散,均使用classifier-free guidance,並且發現擴散模型的效果更好: 注意此處目標和前面有所不同,prior直接去預測影像特徵,而不是預測噪聲
-
decoder :在影像編碼(和可選的文字標題)條件下生成影像;使用擴散模型並利用classifier-free guidance和CLIP guidance在給定CLIP影像編碼的情況下生成影像。為了生成高解析度影像,訓練了兩個擴散上取樣模型,分別用於將影像從64*64上取樣到256*256、進一步上取樣到1024*1024。 -
將這兩個部分疊加起來會得到一個生成模型 可以在給定標題 下生成 影像 : 。第一個等號是由於 和 是一對一的關係。 -
所以DALL·E2可以先用prior取樣出 ,然後用decoder得到 ;
DALL·E2能夠生成高解析度、風格多樣的圖片,並且能夠給定一張圖,生成許多風格類似的圖片;可以進行兩張圖片的插值,實現風格的融合等,在具體數值上也超越了GLIDE。

3.3 Imagen
下圖是谷歌提出的Imagen[8]的模型架構:

Imagen由一個文字編碼器和一連串條件擴散模型組成。
-
預訓練文字編碼器:語言模型是在文字語料庫上訓練的,該語料庫比配對的影像-文字資料要大得多,因此可以接觸到非常豐富和廣泛的文字分佈。文中使用Frozen Text Encoder進行文字的編碼 -
擴散模型和classifier-free guidance:使用前面提到的classifier-free guidance,將文字編碼作為條件,進行影像的生成。同樣,後面也有兩個擴散模型進行解析度的提升,最終可以生成1024*1024解析度的影像。文字到影像擴散模型使用改進的U-Net 架構,生成64*64 影像,後面兩個擴散模型使用本文提出Efficient U-Net,可以更節省記憶體和時間。
我們使用FID分數在COCO驗證集上評估Imagen,下表展示了結果。Imagen在COCO上實現了最好的zero-shot效果,其FID為7.27,優於前面的一系列工作。


參考
-
1. Denoising Diffusion Probabilistic Models -
2. https://lilianweng.github.io/posts/2021-07-11-diffusion-models/ -
3. Diffusion Models Beat GANs on Image Synthesis -
4. More Control for Free! Image Synthesis with Semantic Diffusion Guidance -
5. Classifier-Free Diffusion Guidance -
6. GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models -
7. Hierarchical Text-Conditional Image Generation with CLIP Latents -
8. Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding
技術交流群邀請函

△長按新增小助手
掃描二維碼新增小助手微信
關於我們
