生成模型希望可以生成符合真實(shí)分布(或給定數(shù)據(jù)集)的數(shù)據(jù)。我們常見(jiàn)的幾種生成模型有 GANs,F(xiàn)low-based Models,VAEs,Energy-Based Models 以及我們今天希望討論的擴(kuò)散模型 Diffusion Models。其中擴(kuò)散模型和變分自編碼器 VAEs,和基于能量的模型 EBMs 有一些聯(lián)系和區(qū)別,筆者會(huì)在接下來(lái)的章節(jié)闡述。
▲ 常見(jiàn)的幾種生成模型
1、ELBO & VAE
在介紹擴(kuò)散模型前,我們先來(lái)回顧一下變分自編碼器 VAE。我們知道 VAE 最大的特點(diǎn)是引入了一個(gè)潛在向量的分布來(lái)輔助建模真實(shí)的數(shù)據(jù)分布。
那么為什么我們要引入潛在向量?有兩個(gè)直觀的原因,一個(gè)是直接建模高維表征十分困難,常常需要引入很強(qiáng)的先驗(yàn)假設(shè)并且有維度詛咒的問(wèn)題存在。另外一個(gè)是直接學(xué)習(xí)低維的潛在向量,一方面起到了維度壓縮的作用,一方面也希望能夠在低維空間上探索具有語(yǔ)義化的結(jié)構(gòu)信息(例如圖像領(lǐng)域里的 GAN 往往可以通過(guò)操控具體的某個(gè)維度影響輸出圖像的某個(gè)具體特征)。
引入了潛在向量后,我們可以將我們的目標(biāo)分布的對(duì)數(shù)似然 logP(x),也稱(chēng)為“證據(jù)evidence”寫(xiě)成下列形式:
▲ ELBO的推理過(guò)程
其中,我們重點(diǎn)關(guān)注式 15。等式的左邊是生成模型想要接近的真實(shí)數(shù)據(jù)分布(evidence),等式右邊由兩項(xiàng)組成,其中第二項(xiàng)的 KL 散度因?yàn)楹愦笥诹悖圆坏仁胶愠闪ⅰH绻诘仁接疫厹p去該 KL 散度,則我們得到了真實(shí)數(shù)據(jù)分布的下界,即證據(jù)下界 ELBO。對(duì) ELBO 進(jìn)行進(jìn)一步的展開(kāi),我們就可以得到 VAE 的優(yōu)化目標(biāo)。
▲ ELBO等式的展開(kāi)
對(duì)該證據(jù)下界的變形的形式,我們可以直觀地這么理解:證據(jù)下界等價(jià)于這么一個(gè)過(guò)程,我們用編碼器將輸入 x 編碼為一個(gè)后驗(yàn)的潛在向量分布 q(z|x)。我們希望這個(gè)向量分布盡可能地和真實(shí)的潛在向量分布 p(z) 相似,所以用 KL 散度約束,這也可以避免學(xué)習(xí)到的后驗(yàn)分布 q(z|x) 坍塌成一個(gè)狄拉克 delta 函數(shù)(式 19 的右側(cè))。而得到的潛在向量我們用一個(gè)解碼器重構(gòu)出原數(shù)據(jù),對(duì)應(yīng)的是式 19 的左邊 P(x|z)。
VAE 為什么叫變分自編碼器。變分的部分來(lái)自于尋找最優(yōu)的潛在向量分布 q(z|x) 的這個(gè)過(guò)程。自編碼器的部分是上面提到的對(duì)輸入數(shù)據(jù)的編碼,再解碼為原數(shù)據(jù)的行為。
那么提煉一下為什么 VAE 可以比較好地貼合原數(shù)據(jù)的分布?因?yàn)楦鶕?jù)上述的公式推導(dǎo)我們發(fā)現(xiàn):原數(shù)據(jù)分布的對(duì)數(shù)似然(稱(chēng)為證據(jù) evidence)可以寫(xiě)成證據(jù)下界加上我們希望近似的后驗(yàn)潛在向量分布和真實(shí)的潛在向量分布間的 KL 散度(即式 15)。如果把該式寫(xiě)為 A=B+C 的形式。
因?yàn)?evidence(即 A)是個(gè)常數(shù)(與我們要學(xué)習(xí)的參數(shù)無(wú)關(guān)),所以最大化 B,也就是我們的證據(jù)下界,等價(jià)于最小化 C,也即是我們希望擬合的分布和真實(shí)分布間的差別。而因?yàn)樽C據(jù)下界,我們可以重新寫(xiě)成式 19 那樣一個(gè)自編碼器的形式,我們也就得到了自編碼器的訓(xùn)練目標(biāo)。優(yōu)化該目標(biāo),等價(jià)于近似真實(shí)數(shù)據(jù)分布,也等價(jià)于用變分手法來(lái)優(yōu)化后驗(yàn)潛在向量分布 q(z|x) 的過(guò)程。
但 VAE 自身依然有很多問(wèn)題。一個(gè)最明顯的就是我們?nèi)绾芜x定后驗(yàn)分布 。絕大多數(shù)的 VAE 實(shí)現(xiàn)里,這個(gè)后驗(yàn)分布被選定為了一個(gè)多維高斯分布。但這個(gè)選擇更多的是為了計(jì)算和優(yōu)化的方便而選擇。這樣的簡(jiǎn)單形式極大地限制了模型逼近真實(shí)后驗(yàn)分布的能力。VAE 的原作者 kingma 曾經(jīng)有篇非常經(jīng)典的工作就是通過(guò)引入 normalization flow [1] 在改進(jìn)后驗(yàn)分布的表達(dá)能力。而擴(kuò)散模型同樣可以看做是對(duì)后驗(yàn)分布 的改進(jìn)。
2、Hierarchical VAE
下圖展示了一個(gè)變分自編碼器里,潛在向量和輸入間的閉環(huán)關(guān)系。即從輸入中提取低維的潛在向量后,我們可以通過(guò)這個(gè)潛在向量重構(gòu)出輸入。
▲ VAE里潛在向量與輸入的關(guān)系
很明顯,我們認(rèn)為這個(gè)低維的潛在向量里一定是高效地編碼了原數(shù)據(jù)分布的一些重要特性,才使得我們的解碼器可以成功重構(gòu)出原數(shù)據(jù)分布里的各式數(shù)據(jù)。那么如果我們遞歸式地對(duì)這個(gè)潛在向量再次計(jì)算“潛在向量的潛在向量”,我們就得到了一個(gè)多層的 HVAE,其中每一層的潛在向量條件于所有前序的潛在向量。
但是在這篇文章里,我們主要關(guān)注具有馬爾可夫性質(zhì)的層級(jí)變分自編碼器 MHVAE,即每一層的潛在向量?jī)H條件于前一層的潛在向量。
▲ MHVAE里的潛在向量只條件于上一層
對(duì)于該 MHVAE,我們可以通過(guò)馬爾可夫假設(shè)得到以下二式:
▲ 23和24式是用鏈?zhǔn)椒▌t對(duì)依賴(lài)圖里的關(guān)系的拆解
對(duì)于該 MHVAE,我們可以用以下步驟推導(dǎo)其證據(jù)下界:
▲ MHVAE的變分下界推導(dǎo)
3、Variation Diffusion Model
我們之所以在談?wù)摂U(kuò)散模型之前,要花如此大的篇幅介紹 VAE,并引出 MHVAE 的證據(jù)下界推導(dǎo)是因?yàn)槲覀兛梢苑浅W匀坏貙U(kuò)散模型視為一種特殊的 MHVAE,該 MHVAE 滿足以下三點(diǎn)限制(注意以下三點(diǎn)限制也是整個(gè)擴(kuò)散模型推斷的基礎(chǔ)):
潛在向量 Z 的維度和輸入 X 的維度保持一致。
每一個(gè)時(shí)間步的潛在向量都被編碼為一個(gè)僅依賴(lài)于上一個(gè)時(shí)間步的潛在向量的高斯分布。
每一個(gè)時(shí)間步的潛在向量的高斯分布的參數(shù),隨時(shí)間步變化,且滿足最終時(shí)間步的高斯分布滿足標(biāo)準(zhǔn)高斯分布的限制。
因?yàn)榈谝稽c(diǎn)維度一致的原因,在不影響理解的基礎(chǔ)上,我們將 MHVAE 里的 Zt 表示為 Xt(其中 x0 為原始輸入),則我們可以將 MHVAE 的層級(jí)潛在向量依賴(lài)圖,重新畫(huà)為以下形式(即將擴(kuò)散模型的中間擴(kuò)散過(guò)程當(dāng)做潛在向量的層級(jí)建模過(guò)程):
▲ 擴(kuò)散過(guò)程的直觀解釋?zhuān)涸跀?shù)據(jù)x0上不斷加高斯噪聲直至退化為純?cè)肼晥D像Xt
直至這里,我們終于見(jiàn)到了我們熟悉的擴(kuò)散模型的形式。
而在將上面的公式 25-28 里的 Zt 與 Xt 替換后,我們可以得到 VDM 里證據(jù)下界的推導(dǎo)公式里的前四行,即公式 34-37。并且在此基礎(chǔ)上,我們可以繼續(xù)往下推導(dǎo)。
37 至 38 行的變換是鏈?zhǔn)椒▌t的等價(jià)替換(或上述公式 23 和 24 的變換),38 至 39 行是連乘過(guò)程的重組,39 至 40 行是對(duì)齊連乘符號(hào)的區(qū)間,40 至 41 行應(yīng)用了 Log 乘法的性質(zhì),41 至 42繼續(xù)運(yùn)用該性質(zhì)進(jìn)一步拆分,42 至 43 行是因?yàn)楹偷钠谕扔谄谕暮停?3 至 44 是因?yàn)槠谕繕?biāo)與部分時(shí)間步的概率無(wú)關(guān)可以直接省去,44 至 45 步是應(yīng)用了KL 散度的定義進(jìn)行了重組。
▲ VDM的證據(jù)下界推導(dǎo)
至此,我們又一次將原數(shù)據(jù)分布的對(duì)數(shù)似然,轉(zhuǎn)化為了證據(jù)下界(公式 37),并將其轉(zhuǎn)化為了幾項(xiàng)非常直觀的損失函數(shù)的加和形式(公式 45),他們分別為:
重構(gòu)項(xiàng),即從潛在向量 到原數(shù)據(jù) 的變化。在 VAE 里該重構(gòu)項(xiàng)寫(xiě)為 ,而在這里我們寫(xiě)做 。
先驗(yàn)匹配項(xiàng)。回憶我們上述提到的 MHVAE 里最終時(shí)間步的高斯分布應(yīng)建立為標(biāo)準(zhǔn)高斯分布。
一致項(xiàng)。該項(xiàng)損失是為了使得前向加噪過(guò)程和后向去噪的過(guò)程中,Xt 的分布保持一致。直觀上講,對(duì)一個(gè)更混亂圖像的去噪應(yīng)一致于對(duì)一個(gè)更清晰的圖像的加噪。而因?yàn)橐恢马?xiàng)的損失是定義于所有時(shí)間步上的,這也是三項(xiàng)損失里最耗時(shí)計(jì)算的一項(xiàng)。
雖然以上的公式推導(dǎo)給了我們一個(gè)非常直觀的證據(jù)下界,并且由于每一項(xiàng)都是以期望來(lái)計(jì)算,所以天然適用蒙特卡洛方法來(lái)近似,但如果優(yōu)化該證據(jù)下界依然存在幾個(gè)問(wèn)題:
我們的一致項(xiàng)損失是一項(xiàng)建立在兩個(gè)隨機(jī)變量 上的期望。他們的蒙特卡洛估計(jì)的方差大概率比建立在單個(gè)獨(dú)立變量上的蒙特卡洛估計(jì)的方差大。
我們的一致項(xiàng)是定義于所有時(shí)間步上的 KL 散度的期望和。對(duì)于 T 取值較高的情況(通常擴(kuò)散模型 T 取 2000 左右),該期望的方差也會(huì)很大。
所以我們需要重新推導(dǎo)一個(gè)證據(jù)下界。而這個(gè)推導(dǎo)的關(guān)鍵將著眼于以下這個(gè)觀察:我們可以將擴(kuò)散過(guò)程的正向加噪過(guò)程 重寫(xiě)為 。之所以這樣重寫(xiě)的原因是基于馬爾可夫假設(shè),這兩個(gè)式子完全等價(jià)。于是對(duì)這個(gè)式子使用貝葉斯法則,我們可以得到式 46。
▲ 對(duì)前向加噪過(guò)程使用馬爾可夫假設(shè)和貝葉斯法則后的公式
基于公式 46,我們可以重寫(xiě)上面的證據(jù)下界(式 37)為以下形式:其中式 47,48 和式 37,38 一致。式 49 開(kāi)始,分母的連乘拆解由從 T 開(kāi)始改為從 1 開(kāi)始。式 50 基于上文提及的馬爾可夫假設(shè)對(duì)分母添加了 的依賴(lài)。式 51 用 log 的性質(zhì)拆分了對(duì)數(shù)的目標(biāo)。
式 52 代入了式 46 做了替換。式 53 將劃掉的分母部分連乘單獨(dú)提取出來(lái)后發(fā)現(xiàn)各項(xiàng)可約剩下式 54 部分的 。式 54 用 log 的性質(zhì)消去了 得到了式 55。式 56 用 log 的性質(zhì)拆分重組了公式,式 57 如同前述式 43-44 的變換,省去了無(wú)關(guān)的時(shí)間步。式 58 則用了 KL 散度的性質(zhì)。
▲ 應(yīng)用了馬爾可夫假設(shè)的擴(kuò)散模型證據(jù)下界推導(dǎo)1
▲ 應(yīng)用了馬爾可夫假設(shè)的擴(kuò)散模型證據(jù)下界推導(dǎo)2
至此,我們應(yīng)用了馬爾可夫假設(shè)得到了一個(gè)更優(yōu)的證據(jù)下界推導(dǎo)。該證據(jù)下界同樣包含幾項(xiàng)直觀的損失函數(shù):
重構(gòu)項(xiàng)。該重構(gòu)項(xiàng)與上面提及的重構(gòu)項(xiàng)一致。
先驗(yàn)匹配項(xiàng)。與上面提及的形式略有差別,但同樣是基于最終時(shí)間步應(yīng)為標(biāo)準(zhǔn)高斯的先驗(yàn)假設(shè)。
去噪匹配項(xiàng)。與上面提及的一致項(xiàng)的最大區(qū)別在于不再是對(duì)兩個(gè)隨機(jī)變量的期望。并且直觀上理解 代表的是后向的去噪過(guò)程,而 代表的是已知原始圖像和目標(biāo)噪聲圖像的前向加噪過(guò)程。該加噪過(guò)程作為目標(biāo)信號(hào),來(lái)監(jiān)督后向的去噪過(guò)程。該項(xiàng)解決了期望建立于兩個(gè)隨機(jī)變量上的問(wèn)題。
注意,以上的推導(dǎo)完全基于馬爾可夫的性質(zhì)所以適用于所有 MHVAE,所以當(dāng) T=1 的時(shí)候,以上的證據(jù)下界和 VAE 所推導(dǎo)出的證據(jù)下界完全一致!并且本文之所以稱(chēng)為大一統(tǒng)視角,是因?yàn)閷?duì)于該證據(jù)下界里的去噪匹配項(xiàng),不同的論文有不同的優(yōu)化方式。但歸根結(jié)底,他們的本質(zhì)互相等價(jià),且皆由該式展開(kāi)推導(dǎo)得到。
下面我們會(huì)從擴(kuò)散模型的角度做公式推導(dǎo),來(lái)展開(kāi)計(jì)算去噪匹配項(xiàng)。(注意第一版的推導(dǎo)里的一致項(xiàng),也完全可以通過(guò)下一節(jié)的方式得到 q 和 p 的表達(dá)式,再通過(guò) KL 來(lái)計(jì)算解析式)
4、Diffusion Model recap
在擴(kuò)散模型里,有幾個(gè)重要的假設(shè)。其中一個(gè)就是每一步擴(kuò)散過(guò)程的變換,都是對(duì)前一步結(jié)果的高斯變換(上一節(jié) MHVAE 的限制條件 2):
▲ 與 MHVAE 不同,編碼器側(cè)的潛在向量分布并不經(jīng)過(guò)學(xué)習(xí)得到,而是固定為線性高斯模型
這一點(diǎn)和 VAE 有很大不同。VAE 里編碼器側(cè)的潛在向量的分布是通過(guò)模型訓(xùn)練得到的。而擴(kuò)散模型里,前向加噪過(guò)程里的每一步都是基于上一步結(jié)果的高斯變換。其中 一般當(dāng)作超參設(shè)置得到。這點(diǎn)對(duì)于我們計(jì)算擴(kuò)散模型的證據(jù)下界有很大幫助。因?yàn)槲覀兛梢曰谳斎?確切地知道前向過(guò)程里的某一步的具體狀態(tài),從而監(jiān)督我們的預(yù)測(cè)。
基于式 31,我們可以遞歸式地對(duì) 不斷加噪變換,得到最終 的表達(dá)式:
▲ 可以寫(xiě)為關(guān)于 的一個(gè)高斯分布的采樣結(jié)果
所以對(duì)于式 58 里噪音匹配項(xiàng)里的監(jiān)督信號(hào),我們可以重寫(xiě)成以下形式,其中根據(jù)式 70,我們可以得到 和 的表達(dá)式,而 因?yàn)槭乔跋驍U(kuò)散過(guò)程,可以應(yīng)用馬爾可夫性質(zhì)看做 使用式 31 得到具體表達(dá)式。
▲ 式58里的監(jiān)督信號(hào)可以通過(guò) 計(jì)算具體的值
代入每一項(xiàng) q 所代表的高斯函數(shù)表達(dá)式后,我們最后可以得到一個(gè)新的高斯分布表達(dá)式,其中每一項(xiàng)都是具體可求的:
▲ 的解析形式
參考已經(jīng)證明了前向加噪過(guò)程可以寫(xiě)為一個(gè)高斯分布了。在擴(kuò)散模型的初始論文 [2] 里提到,對(duì)于一個(gè)連續(xù)的高斯擴(kuò)散過(guò)程,其逆過(guò)程與前向過(guò)程的方程形式(functional form)一致。所以我們將對(duì)去噪匹配項(xiàng)里的 也采用高斯分布的形式(更加具體的一些推導(dǎo)放在了末尾的補(bǔ)充里)。注意式 58 里,對(duì)兩個(gè)高斯分布求 KL 散度,其解析解的形式如下:
▲ 兩個(gè)高斯分布的KL散度解析解
我們現(xiàn)在已知其中一個(gè)高斯分布(左側(cè))的參數(shù),現(xiàn)在如果我們令右側(cè)的高斯分布和左側(cè)高斯分布的方差保持一致。那么優(yōu)化該 KL 散度的解析式將簡(jiǎn)化為以下形式:
▲ 式58的噪音匹配項(xiàng)簡(jiǎn)化為最小化前后向均值的預(yù)測(cè)誤差
如此一來(lái)式 58 的噪音匹配項(xiàng)就被簡(jiǎn)化為最小化前后向均值的預(yù)測(cè)誤差(式 92)。讀者請(qǐng)注意,以下的大一統(tǒng)的三個(gè)角度來(lái)看待 Diffusion model,實(shí)質(zhì)上都是對(duì)式 92 里 的不同變形所推論出來(lái)的。其中 是關(guān)于 的函數(shù),而 是關(guān)于 和t的函數(shù)。其中通過(guò)式 84,我們有 的準(zhǔn)確計(jì)算結(jié)果,而因?yàn)?是關(guān)于 的函數(shù)。
我們可以將其寫(xiě)為類(lèi)似式 84 的形式(注意,有關(guān)為什么可以忽略方差并且讓均值選取這個(gè)形式放在了最末尾的補(bǔ)充討論里。但關(guān)于這個(gè)形式的選擇的深層原因?qū)嵸|(zhì)上開(kāi)辟了一個(gè)全新的領(lǐng)域來(lái)研究,并且關(guān)于該領(lǐng)域的研究直接導(dǎo)向了擴(kuò)散模型之后的一系列加速采樣技術(shù)的出現(xiàn))。
▲ 將后向預(yù)測(cè)的均值寫(xiě)為類(lèi)似前向加噪的形式
比較式 84 與 94 可知, 是我們通過(guò)噪音數(shù)據(jù) 來(lái)預(yù)測(cè)原始數(shù)據(jù) 的神經(jīng)網(wǎng)絡(luò)。那么我們可以將式 58 里證據(jù)下界的噪音匹配項(xiàng),最終寫(xiě)為
▲ 噪聲匹配項(xiàng)的最終形式
那么,我們最后得到擴(kuò)散模型的優(yōu)化,最終表現(xiàn)為訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),以任意時(shí)間步的噪音圖像為輸入,來(lái)預(yù)測(cè)最初的原始圖像!此時(shí)優(yōu)化目標(biāo)轉(zhuǎn)化為了最小化預(yù)測(cè)誤差。同時(shí)式 58 上的對(duì)所有時(shí)間步的噪音匹配項(xiàng)求和的優(yōu)化,可以近似為對(duì)每一時(shí)間步上的預(yù)測(cè)誤差的期望的最小值,而該優(yōu)化目標(biāo)可以通過(guò)隨機(jī)采樣近似:
▲ 該優(yōu)化目標(biāo)可以通過(guò)隨機(jī)采樣實(shí)現(xiàn)
5、Three Equivalent Perspective
為什么 Calvin Luo 的這篇論文叫做大一統(tǒng)視角來(lái)看待擴(kuò)散模型?以上我們花了不菲的篇幅論證了擴(kuò)散模型的優(yōu)化目標(biāo)可以最終轉(zhuǎn)化為訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)在任意時(shí)間步從 預(yù)測(cè)原始輸入 。以下我們將論述如何通過(guò)對(duì) 不同的推導(dǎo)得到類(lèi)似的角度看待擴(kuò)散模型。
首先,我們已經(jīng)知道給定每個(gè)時(shí)間步的噪聲系數(shù) 之后,我們可以由初始輸入 遞歸得到 。同理,給定 我們也可以求得 。那么對(duì)式 69 重置后,我們可以得到式 115。
▲ 將式69里的 和 關(guān)系重置后可得式115
重新將式 115 代入式 84 里,我們所得的關(guān)于時(shí)間步 t 的真實(shí)均值表達(dá)式 后,我們可以得到以下推導(dǎo):
▲ 在推導(dǎo)真實(shí)均值時(shí)替換
注意在上一次推導(dǎo)的過(guò)程中, 里的 在計(jì)算 kl 散度的解析式時(shí)被抵消掉了,而 我們采取的是用神經(jīng)網(wǎng)絡(luò)直接擬合的策略。而在這一次的推導(dǎo)過(guò)程中, 被替換成了關(guān)于 的表達(dá)式(關(guān)于 和 )后,我們可以得到 的新的表達(dá)式,依舊關(guān)于 ,只是不再與 相關(guān),而是與 相關(guān)(式 124)。
其中,和式 94 一樣,我們忽略方差(將其設(shè)為與前向一致)并將希望擬合的 寫(xiě)成與真實(shí)均值 一樣的形式,只是將 替換為神經(jīng)網(wǎng)絡(luò)的擬合項(xiàng)后我們可以得到式 125。
▲ 與上次推導(dǎo)時(shí)替換 為神經(jīng)網(wǎng)絡(luò)所擬合項(xiàng)一樣,這次換為擬合初始噪聲項(xiàng)
將我們新得到的兩個(gè)均值表達(dá)式重新代入 KL 散度的表達(dá)式里, 再次被抵消掉(因?yàn)?和 選取的形式一致)最終只剩下 和 的差值。注意式 130 和式 99 的相似性!
▲ 最終對(duì)證據(jù)下界里的去噪匹配項(xiàng)的優(yōu)化可以寫(xiě)成關(guān)于初始噪聲和其擬合項(xiàng)的差的最小化
至此,我們得到了對(duì)擴(kuò)散模型的第二種直觀理解。對(duì)于一個(gè)變分?jǐn)U散模型 VDM,我們優(yōu)化該模型的證據(jù)下界既等價(jià)于優(yōu)化其在所有時(shí)間步上對(duì)初始圖像的預(yù)測(cè)誤差的期望,也等價(jià)于優(yōu)化在所有時(shí)間步上對(duì)噪聲的預(yù)測(cè)誤差的期望!事實(shí)上 DDPM 采取的做法就是式 130 的做法(注意 DDPM 里的表達(dá)式實(shí)際上用的是 ,關(guān)于這點(diǎn)在文末也會(huì)討論)。
下面筆者將概括第三種看待 VDM 的推導(dǎo)方式。這種方式主要來(lái)自于 SongYang 博士的系列論文,非常直觀。并且該系列論文將擴(kuò)散模型這種離散的多步去噪過(guò)程統(tǒng)一成了一個(gè)連續(xù)的隨機(jī)微分方程(SDE)的特殊形式。SongYang 博士因此獲得了 ICLR 2021 的最佳論文獎(jiǎng)!
后續(xù)來(lái)自清華大學(xué)的基于將該 SDE 轉(zhuǎn)化為常微分方程 ODE 后的采樣提速論文,也獲得了 ICLR 2022 的最佳論文獎(jiǎng)!關(guān)于該論文的一些細(xì)節(jié)和直觀理解,Song Yang 博士在他自己的博客里給出了非常精彩和直觀的講解。有興趣的讀者可以點(diǎn)開(kāi)本文初始的第二個(gè)鏈接查看。以下只對(duì)大一統(tǒng)視角下的第三種視角做簡(jiǎn)短的概括。
第三種推導(dǎo)方式主要基于 Tweedie‘s formula。該公式主要闡述了對(duì)于一個(gè)指數(shù)家族的分布的真實(shí)均值,在給定了采樣樣本后,可以通過(guò)采樣樣本的最大似然概率(即經(jīng)驗(yàn)均值)加上一個(gè)關(guān)于分?jǐn)?shù)(score)預(yù)估的校正項(xiàng)來(lái)預(yù)估。注意 score 在這里的定義是真實(shí)數(shù)據(jù)分布的對(duì)數(shù)似然關(guān)于輸入 的梯度。即
▲ score的定義
根據(jù) Tweedie’s formula,對(duì)于一個(gè)高斯變量 z~N(mu_z, sigma_z) 來(lái)說(shuō),該高斯變量的真實(shí)均值的預(yù)估是:
▲ Tweedie’s formula對(duì)高斯變量的應(yīng)用
我們知道在訓(xùn)練時(shí),模型的輸入 關(guān)于 的表達(dá)式如下
▲ 上文里的式70
我們也知道根據(jù) Tweedie‘s formula 的高斯變量的真實(shí)均值預(yù)估我們可以得到下式
▲ 將式70的方差代入Tweedie’s formula
那么聯(lián)立兩式的關(guān)于均值的表達(dá)式后,我們可以得到 關(guān)于 score 的表達(dá)式 133
▲ 將 寫(xiě)為關(guān)于score的表達(dá)式
如上一種推導(dǎo)方式所做的一樣,再一次重新將 的表達(dá)式代入式 84 對(duì)真實(shí)均值 的表達(dá)式里:(注意式 135 到 136 的變形主要在分子里最右邊的 到 ,約去了根號(hào)下 )
▲ 將 的關(guān)于score表達(dá)式代入式84
同樣,將 采取和 一樣的形式,并用神經(jīng)網(wǎng)絡(luò) 來(lái)近似 score 后,我們得到了新的 的表達(dá)式 143。
▲ 關(guān)于score的 的表達(dá)式
再再再同樣,和上種推導(dǎo)里的做法一樣,我們?cè)賹⑿碌?代入證據(jù)下界里 KL 散度的損失項(xiàng)我們可以得到一個(gè)最終的優(yōu)化目標(biāo)
▲ 將新的 的表達(dá)式代入證據(jù)下界的優(yōu)化目標(biāo)里
事實(shí)上,比較式 148 和式 130 的形式,可以說(shuō)是非常的接近了。那么我們的 score function delta_p(xt) 和初始噪聲 是否有關(guān)聯(lián)呢?聯(lián)立關(guān)于 的兩個(gè)表達(dá)式 133 和 115 我們可以得到。
▲ score function和初始噪聲間的關(guān)系
讀者如果將式 151 代入 148 會(huì)發(fā)現(xiàn)和式 130 等價(jià)!直觀上來(lái)講,score function 描述的是如何在數(shù)據(jù)空間里最大化似然概率的更新向量。而又因?yàn)槌跏荚肼暿窃谠斎氲幕A(chǔ)上加入的,那么往噪聲的反方向(也是最佳方向)更新實(shí)質(zhì)上等價(jià)于去噪的過(guò)程。而數(shù)學(xué)上講,對(duì) score function 的建模也等價(jià)于對(duì)初始噪聲乘上負(fù)系數(shù)的建模!
至此我們終于將擴(kuò)散模型的三個(gè)形式的所有推導(dǎo)整理完畢!即對(duì)變分?jǐn)U散模型 VDM 的訓(xùn)練等價(jià)于訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)原輸入 ,也等價(jià)于預(yù)測(cè)噪聲 ,也等價(jià)于預(yù)測(cè)初始輸入在特定時(shí)間步的 score delta_logp(xt)。
讀到這里,相比讀者也已經(jīng)發(fā)現(xiàn),不同的推導(dǎo)所得出的不同結(jié)果,都來(lái)自于對(duì)證據(jù)下界里去噪匹配項(xiàng)的不同推導(dǎo)過(guò)程。而不同的變形,基本上都是利用了 MHVAE 里最開(kāi)始提到的三點(diǎn)基本假設(shè)所得。
6、Drawbacks to Consider
盡管擴(kuò)散模型在最近兩年成功出圈,引爆了業(yè)界,學(xué)術(shù)界甚至普通人對(duì)文本生成圖像的 AI 模型的關(guān)注,但擴(kuò)散模型這個(gè)體系本身依舊存在著一些缺陷:
擴(kuò)散模型本身盡管理論框架已經(jīng)比較完善,公式推導(dǎo)也十分優(yōu)美。但仍然非常不直觀。最起碼從一個(gè)完全噪聲的輸入不斷優(yōu)化的這個(gè)過(guò)程和人類(lèi)的思維過(guò)程相去甚遠(yuǎn)。
擴(kuò)散模型和 GAN 或者 VAE 相比,所學(xué)的潛在向量不具備任何語(yǔ)義和結(jié)構(gòu)的可解釋性。上文提到了擴(kuò)散模型可以看做是特殊的 MHVAE,但里面每一層的潛在向量間都是線性高斯的形式,變化有限。
而擴(kuò)散模型的潛在向量要求維度與輸入一致這一點(diǎn),則更加死地限制住了潛在向量的表征能力。
擴(kuò)散模型的多步迭代導(dǎo)致了擴(kuò)散模型的生成往往耗時(shí)良久。
不過(guò)學(xué)術(shù)界對(duì)以上的一些難題其實(shí)也提出了不少解決方案。比如擴(kuò)散模型的可解釋性問(wèn)題。筆者最近就發(fā)現(xiàn)了一些工作將 score-matching 直接應(yīng)用在了普通 VAE 的潛在向量的采樣上。這是一個(gè)非常自然的創(chuàng)新點(diǎn),就和數(shù)年前的 flow-based-vae 一樣。而耗時(shí)良久的問(wèn)題,今年 ICLR 的最佳論文也將采樣這個(gè)問(wèn)題加速和壓縮到了幾十步內(nèi)就可以生成非常高質(zhì)量的結(jié)果。
但是對(duì)于擴(kuò)散模型在文本生成領(lǐng)域的應(yīng)用最近似乎還不多,除了 prefix-tuning 的作者 xiang-lisa-li 的一篇論文 [3]
之外筆者暫未關(guān)注到任何工作。而具體來(lái)講,如果將擴(kuò)散模型直接用在文本生成上,仍有諸多不便。比如輸入的尺寸在整個(gè)擴(kuò)散過(guò)程必須保持一致就決定了使用者必須事先決定好想生成的文本的長(zhǎng)度。而且做有引導(dǎo)的條件生成還好,要用擴(kuò)散模型訓(xùn)練出一個(gè)開(kāi)放域的文本生成模型恐怕難度不低。
本篇筆記著重的是在探討大一統(tǒng)角度下的擴(kuò)散模型推斷。但具體對(duì) score matching 如何訓(xùn)練,如何引導(dǎo)擴(kuò)散模型生成我們想要的條件分布還沒(méi)有寫(xiě)出來(lái)。筆者打算在下一篇探討最近一些將擴(kuò)散模型應(yīng)用在受控文本生成領(lǐng)域的方法調(diào)研里詳細(xì)記錄和比較一下
7、補(bǔ)充
關(guān)于為什么擴(kuò)散核是高斯變換的擴(kuò)散過(guò)程的逆過(guò)程也是高斯變換的問(wèn)題,來(lái)自清華大神的一篇知乎回答里 [4] 給出了比較直觀的解釋。其中第二行是將 和 近似。第三行是對(duì) 使用一階泰勒展開(kāi)消去了 。第四行是直接代入了 的表達(dá)式。于是我們得到了一個(gè)高斯分布的表達(dá)式。
▲ 擴(kuò)散的逆過(guò)程也是高斯分布
在式 94 和式 125,我們都將對(duì)真實(shí)高斯分布 q 的均值 的近似 建模成了與我們所推導(dǎo)出的 一致的形式,并且將方差設(shè)置為了與 q 的方差一致的形式。
直觀上來(lái)講,這樣建模的好處很多,一方面是根據(jù) KL 散度對(duì)兩個(gè)高斯分布的解析式來(lái)說(shuō),這樣我們可以約掉和抵消掉絕大部分的項(xiàng),簡(jiǎn)化了建模。另一方面真實(shí)分布和近似分布都依賴(lài)于 。在訓(xùn)練時(shí)我們的輸入就是 xt,采取和真實(shí)分布形式一樣的表達(dá)式?jīng)]有泄漏任何信息。并且在工程上 DDPM 也驗(yàn)證了類(lèi)似的簡(jiǎn)化是事實(shí)上可行的。但實(shí)際上可以這樣做的原因背后是從 2021 年以來(lái)的一系列論文里復(fù)雜的數(shù)理證明所在解釋的目標(biāo)。同樣引用清華大佬 [4] 的回答:
▲ DDPM里簡(jiǎn)化去噪的高斯分布的做法其實(shí)蘊(yùn)含著深刻的道理
在 DDPM 里,其最終的優(yōu)化目標(biāo)是 而不是 。即預(yù)測(cè)的誤差到底是初始誤差還是某個(gè)時(shí)間步上的初始誤差。誰(shuí)對(duì)誰(shuí)錯(cuò)?實(shí)際上這個(gè)誤解來(lái)源于我們對(duì) 關(guān)于 的表達(dá)式的求解中的誤解。
從式 63 開(kāi)始的連續(xù)幾步推導(dǎo),都應(yīng)用到了一個(gè)高斯性質(zhì),即兩個(gè)獨(dú)立高斯分布的和的均值與方差等于原分布的均值和與方差和。而實(shí)質(zhì)上我們?cè)趹?yīng)用重參數(shù)化技巧求 的過(guò)程中,是遞歸式的不斷引入了新的 來(lái)替換遞歸中的 里的 。那么到最后,我們所得到的 無(wú)非是一個(gè)囊括了所有擴(kuò)散過(guò)程中的 。這個(gè)噪聲即可以說(shuō)是 t,也可以說(shuō)是 0,甚至最準(zhǔn)確來(lái)說(shuō)應(yīng)該不等于任何一個(gè)時(shí)間步,就叫做噪聲就好!
▲ DDPM的優(yōu)化目標(biāo)
關(guān)于對(duì)證據(jù)下界的不同簡(jiǎn)化形式。其中我們提到第二種對(duì)噪聲的近似是 DDPM 所采用的建模方式。但是對(duì)初始輸入的近似其實(shí)也有論文采用。也就是上文提及的將擴(kuò)散模型應(yīng)用在可控文本生成的論文里 [3] 所采用的形式。該論文每輪直接預(yù)測(cè)初始 Word-embedding。而第三種 score-matching 的角度可以參照 SongYang 博士的系列論文 [5] 來(lái)看。里面的優(yōu)化函數(shù)的形式用的是第三種。
審核編輯:郭婷
-
解碼器
+關(guān)注
關(guān)注
9文章
1143瀏覽量
40721 -
編碼器
+關(guān)注
關(guān)注
45文章
3639瀏覽量
134435
原文標(biāo)題:從大一統(tǒng)視角理解擴(kuò)散模型(Diffusion Models)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論