Denoising Diffusion GAN:Tackling the Generative Learning Trilemma with Denoising Diffusion GANs
Tackling the Generative Learning Trilemma with Denoising Diffusion GANs
用Diffusion GANs解決生成學(xué)習(xí)的三難困境
paper:https://arxiv.org/abs/2112.07804
code:https://github.com/NVlabs/denoising-diffusion-gan
Introduction
本文提出了一種結(jié)合Diffusion和GAN的生成模型, 在CIFAR-10數(shù)據(jù)集上能夠比DDPM快2000倍, 同時(shí)與傳統(tǒng)的GAN相比, 又可以生成質(zhì)量相近有具有多樣性的結(jié)果. 作者指出DiffusionGAN是第一個(gè)可以把Diffusion采樣步驟降低到可以被應(yīng)用到實(shí)際當(dāng)中的模型.
本文提出了一種比較貼切的說(shuō)法叫做:生成學(xué)習(xí)的三元悖論(The Generative Learning Trilemma). 現(xiàn)有的各種各樣的生成模型都需要滿足三個(gè)方面的需求:
sampling;
如圖所示, 可以直觀的看出, 現(xiàn)有的四大類的生成模型:
Background
Diffusion模型, 包括DDPM模型, 都包含了前向過(guò)程和反向過(guò)程. 而且前向過(guò)程和反向過(guò)程中間數(shù)據(jù)的分布都被建模為了高斯分布.
前向過(guò)程:
反向過(guò)程:
那么, Diffusion模型優(yōu)化的目標(biāo)本質(zhì)上是將前向的真實(shí)的加噪過(guò)程的數(shù)據(jù)分布(true denoising distribution)與反向過(guò)程參數(shù)化之后去噪過(guò)程的數(shù)據(jù)分布(parameterized denoising distribution)對(duì)齊:
注意到這里的形式與之前在介紹DDPM的筆記里邊的兩種形式都不太一樣, 主要區(qū)別在于q的分布的表示形式.
由于 q(xt∣xt?1)=q(xt?1∣xt)q(xt)q(xt?1)\mathrm{q}\left(\mathrm{x}_{\mathrm{t}} \mid \mathrm{x}_{\mathrm{t}-1}\right)=\frac{q\left(x_{t}-1 \mid x_{t}\right) q\left(x_{t}\right)}{q\left(x_{t}-1\right)}q(xt?∣xt?1?)=q(xt??1)q(xt??1∣xt?)q(xt?)? ) , 這兩種形式是等價(jià)的, 而相比之下, 本文這種表示形式更能體現(xiàn)Diffusion模型的本質(zhì). 也就是反向的去噪過(guò)程是在模擬前向過(guò)程所對(duì)應(yīng)的真實(shí)的去噪過(guò)程.
Diffusion模型基于兩個(gè)重要的假設(shè):
Denoising Diffusion GANs
3.1 去噪過(guò)程的分布
首先來(lái)看什么時(shí)候真實(shí)的去噪過(guò)程的分布 q(xt?1∣xt)\mathrm{q}\left(\mathrm{x}_{\mathrm{t}-1} \mid \mathrm{x}_{\mathrm{t}}\right)q(xt?1?∣xt?) 是高斯分布. 根據(jù)貝葉斯法則, q(xt?1∣xt)∝q(xt∣xt?1)q(xt?1)q\left(x_{t-1} \mid x_{t}\right) \propto q\left(x_{t} \mid x_{t-1}\right) q\left(x_{t-1}\right)q(xt?1?∣xt?)∝q(xt?∣xt?1?)q(xt?1?)其中前向過(guò)程的分布 q(xt∣xt?1)q\left(x_{t} \mid x_{t-1}\right)q(xt?∣xt?1?) 服從高斯分布. 那么可以證明在如下兩種情形下, 真實(shí)的去噪過(guò)程的分布服從高斯分布的形式:
但是, 當(dāng)這兩個(gè)條件都不滿足的情況下, 會(huì)是什么樣呢? 作者指出當(dāng)兩個(gè)條件都不滿足時(shí), 真實(shí)的去噪過(guò)程的分布會(huì)更加復(fù)雜和多模態(tài). 并用一維數(shù)據(jù)的分布舉了個(gè)例子:
3.2 Diffusion GANs
為了能在數(shù)據(jù)的邊緣分布不是高斯分布的情況下, 也能減少采樣的步數(shù), 這種情況下既然真實(shí)的去噪過(guò)程的分布 q(xt?1∣xt)q(x_{t-1} | x_t)q(xt?1?∣xt?)不再服從高斯分布的形式, 那么將反向過(guò)程的分布 pθ(xt?1∣xt)p_{\theta}(x_{t-1} | x_t)pθ?(xt?1?∣xt?) 也不再建模為高斯分布的形式, 而是通過(guò)Conditional GAN來(lái)使得兩個(gè)分布對(duì)齊, 而不是顯式地去學(xué)習(xí)高斯分布的均值和方差. 這也就是本文的基本思路.
相應(yīng)的, 優(yōu)化的目標(biāo)也就變成了:
那么GAN包括兩個(gè)部分, 生成器generator G 和判別器 discriminator D . 那么對(duì)于生成器就是 xt?1=G(xt,z,t)x_{t-1} = G(x_t, z, t)xt?1?=G(xt?,z,t) 其中引入的噪聲 z 是為了模型的結(jié)果能有良好的多樣性.
相應(yīng)的, GAN的Discriminator也應(yīng)該與步驟 t 有關(guān), 其輸入除了數(shù)據(jù) xtx_txt? 外, 還要包括 t .
但是判別器還需要真實(shí)的去噪分布的數(shù)據(jù), 這個(gè)數(shù)據(jù)怎么得到? 作者在這里進(jìn)行了簡(jiǎn)單的轉(zhuǎn)換.
簡(jiǎn)單的來(lái)表述就是, DDPM為代表的Diffusion模型, 反向過(guò)程是在其去噪的分布是高斯分布的前提下,利用 xtx_txt? 來(lái)得到 t ? 1 的均值和方差, 再來(lái)計(jì)算得到 xt?1x_{t-1}xt?1? , 而本文的DiffusionGAN則不再有去噪的分布是高斯分布的假設(shè), 利用 xtx_txt? 直接通過(guò)生成器 G(xt,z,t)G(x_t, z, t)G(xt?,z,t) 得到 xt?1x_{t-1}xt?1?
3.3 一些討論
一個(gè)自然而然的問(wèn)題就是, 為什么不用一步的GAN而要這樣用多步的GAN呢? 這樣做相比一步直接得到結(jié)果的GAN有什么好處呢? 作者給出了如下解釋(歸結(jié)起來(lái)就是一句話, 多步的GAN比一步的GAN訓(xùn)練更穩(wěn)定, 而且模態(tài)覆蓋更充分, 結(jié)果多樣性更好.):
逆過(guò)程不是Gaussian
當(dāng) βt\beta_tβt? 足夠小的時(shí)候,逆過(guò)程q(xt?1∣xt)q\left(x_{t-1} \mid x_{t}\right)q(xt?1?∣xt?)和已知前向過(guò)程和函數(shù)形式是一樣的,當(dāng)逆過(guò)程表示為貝葉斯規(guī)則q(xt?1∣xt)=q(xt∣xt?1)q(xt?1)q(xt)q\left(x_{t-1} \mid x_{t}\right)=\frac{q\left(x_{t} \mid x_{t-1}\right) q\left(x_{t-1}\right)}{q\left(x_{t}\right)}q(xt?1?∣xt?)=q(xt?)q(xt?∣xt?1?)q(xt?1?)?時(shí)q(xt?1)q(xt)≈1\frac{q\left(x_{t-1}\right)}{q\left(x_{t}\right)} \approx 1q(xt?)q(xt?1?)?≈1,因此q(xt∣xt?1)q\left(x_{t} \mid x_{t-1}\right)q(xt?∣xt?1?)支配了表達(dá),由于q(xt∣xt?1)q\left(x_{t} \mid x_{t-1}\right)q(xt?∣xt?1?)是高斯過(guò)程,反向也可以被認(rèn)為是高斯過(guò)程。
問(wèn)題是這個(gè)假設(shè)只有βt\beta_tβt?在很小的時(shí)候成立,擴(kuò)散模型的創(chuàng)建過(guò)程非常緩慢。因?yàn)橹辉?span id="ozvdkddzhkzd" class="katex--inline">βt\beta_tβt?很小的時(shí)候才成立,并且必須將T設(shè)置得很大才能這樣做。 如果我們?cè)黾?span id="ozvdkddzhkzd" class="katex--inline">βt\beta_tβt?并減少T,則反向不再是高斯的,那么KLD就變得難以計(jì)算。
(編者注:這個(gè)βt\beta_tβt?最小假設(shè)在論文https://arxiv.org/abs/2006.11239當(dāng)中有詳細(xì)的討論)
更復(fù)雜的逆過(guò)程
Eq[DKL(q(xT∣x0)∥p(xT))?LT+∑t>1DKL(q(xt?1∣xt,x0)∥pθ(xt?1∣xt))?Lt?1?log?pθ(x0∣x1)?L0]\mathbb{E}_{q}[\underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{T} \mid \mathbf{x}_{0}\right) \| p\left(\mathbf{x}_{T}\right)\right)}_{L_{T}}+\sum_{t>1} \underbrace{D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)}_{L_{t-1}} \underbrace{-\log p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{1}\right)}_{L_{0}}]Eq?[LT?DKL?(q(xT?∣x0?)∥p(xT?))??+∑t>1?Lt?1?DKL?(q(xt?1?∣xt?,x0?)∥pθ?(xt?1?∣xt?))??L0??logpθ?(x0?∣x1?)??]
現(xiàn)有 DDPM 的目標(biāo)如上所述。 其實(shí)單看這個(gè)表達(dá)式q(xt?1∣xt,x0)q\left(x_{t-1} \mid x_{t}, x_{0}\right)q(xt?1?∣xt?,x0?)無(wú)βt\beta_tβt?,因此是無(wú)條件高斯的。pθ(xt?1∣xt)p_{\theta}\left(x_{t-1} \mid x_{t}\right)pθ?(xt?1?∣xt?)似乎沒(méi)有任何理由使設(shè)計(jì)更加復(fù)雜。 上面的表達(dá)式也可以寫成形式:
L=?∑t≥1Eq(xt)[DKL(q(xt?1∣xt)∥pθ(xt?1∣xt))]+C\mathcal{L}=-\sum_{t \geq 1} \mathbb{E}_{q\left(\mathbf{x}_{t}\right)}\left[D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)\right]+CL=?∑t≥1?Eq(xt?)?[DKL?(q(xt?1?∣xt?)∥pθ?(xt?1?∣xt?))]+C
這里q(xt?1∣xt)q\left(x_{t-1} \mid x_{t}\right)q(xt?1?∣xt?)由于難以處理,這種形式并未用于實(shí)際學(xué)習(xí)。看著這個(gè)表達(dá)式pθ(xt?1∣xt)和q(xt?1∣xt)p_{\theta}\left(x_{t-1} \mid x_{t}\right)和q\left(x_{t-1} \mid x_{t}\right)pθ?(xt?1?∣xt?)和q(xt?1?∣xt?)比較復(fù)雜,因此使用這種方式表示:
min?θ∑t≥1Eq(t)[Dadv(q(xt?1∣xt)∥pθ(xt?1∣xt))]\min _{\theta} \sum_{t \geq 1} \mathbb{E}_{q(t)}\left[D_{\mathrm{adv}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)\right]minθ?∑t≥1?Eq(t)?[Dadv?(q(xt?1?∣xt?)∥pθ?(xt?1?∣xt?))]
方程 L=?∑t≥1Eq(xt)[DKL(q(xt?1∣xt)∥pθ(xt?1∣xt))]+C\mathcal{L}=-\sum_{t \geq 1} \mathbb{E}_{q\left(\mathbf{x}_{t}\right)}\left[D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right) \| p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)\right)\right]+CL=?∑t≥1?Eq(xt?)?[DKL?(q(xt?1?∣xt?)∥pθ?(xt?1?∣xt?))]+C 當(dāng)中由于 KLD是比較棘手的,因此必須使用不同的散度。 由于GAN可以理解為散度最小化,所以如上用DadvD_{adv}Dadv?代替KLD,DadvD_{adv}Dadv?可以是JSD、Wasserstein距離等,具體取決于損失函數(shù)。而判別器的損失如下:
min??∑t≥1Eq(xt)[Eq(xt?1∣xt)[?log?(D?(xt?1,xt,t)]+Epθ(xt?1∣xt)[?log?(1?D?(xt?1,xt,t))]]\min _{\phi} \sum_{t \geq 1} \mathbb{E}_{q\left(\mathbf{x}_{t}\right)}\left[\mathbb{E}_{q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}\left[-\log \left(D_{\phi}\left(\mathbf{x}_{t-1}, \mathbf{x}_{t}, t\right)\right]+\mathbb{E}_{p_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}\left[-\log \left(1-D_{\phi}\left(\mathbf{x}_{t-1}, \mathbf{x}_{t}, t\right)\right)\right]\right]\right.min??∑t≥1?Eq(xt?)?[Eq(xt?1?∣xt?)?[?log(D??(xt?1?,xt?,t)]+Epθ?(xt?1?∣xt?)?[?log(1?D??(xt?1?,xt?,t))]]
然而q(xt?1∣xt)q\left(x_{t-1} \mid x_{t}\right)q(xt?1?∣xt?)棘手的問(wèn)題仍然存在,因此無(wú)法計(jì)算第一個(gè)期望,因此解決如下:
Eq(xt)q(xt?1∣xt)[?log?(D?(xt?1,xt,t))]=Eq(x0)q(xt?1∣x0)q(xt∣xt?1)[?log?(D?(xt?1,xt,t))]\mathbb{E}_{q\left(\mathbf{x}_{t}\right) q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right)}\left[-\log \left(D_{\phi}\left(\mathbf{x}_{t-1}, \mathbf{x}_{t}, t\right)\right)\right]=\mathbb{E}_{q\left(\mathbf{x}_{0}\right) q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{0}\right) q\left(\mathbf{x}_{t} \mid \mathbf{x}_{t-1}\right)}\left[-\log \left(D_{\phi}\left(\mathbf{x}_{t-1}, \mathbf{x}_{t}, t\right)\right)\right]Eq(xt?)q(xt?1?∣xt?)?[?log(D??(xt?1?,xt?,t))]=Eq(x0?)q(xt?1?∣x0?)q(xt?∣xt?1?)?[?log(D??(xt?1?,xt?,t))]
q(x0)q(xt?1∣x0)q(xt∣xt?1)=q(x0,xt?1,xt)q\left(x_{0}\right) q\left(x_{t-1} \mid x_{0}\right) q\left(x_{t} \mid x_{t-1}\right)=q\left(x_{0}, x_{t-1}, x_{t}\right)q(x0?)q(xt?1?∣x0?)q(xt?∣xt?1?)=q(x0?,xt?1?,xt?),和Eq(xt?1,xt)[?log(D?(xt?1,xt,t))]=Eq(x0,xt?1,xt)[?log(D?(xt?1,xt,t))]E_{q(x_{t-1},x_t)}[-log(D_\phi(x_{t-1},x_t,t))]=E_{q(x_0,x_{t-1},x_t)}[-log(D_\phi(x_{t-1},x_t,t))]Eq(xt?1?,xt?)?[?log(D??(xt?1?,xt?,t))]=Eq(x0?,xt?1?,xt?)?[?log(D??(xt?1?,xt?,t))]共同和使用。
參數(shù)化pθp_\thetapθ?
逆過(guò)程可以預(yù)測(cè)的是x0x_0x0?、μ~t\tilde\mu_tμ~?t?或者?\epsilon?。與之前預(yù)測(cè)?\epsilon?的模型不同,生成器預(yù)測(cè)x0x_0x0?,因?yàn)?/p>
對(duì)所有時(shí)間步均等地預(yù)測(cè)x0x_0x0?取決于t,這是因?yàn)樗阮A(yù)測(cè)μ~t\tilde\mu_tμ~?t?直接。
它在實(shí)驗(yàn)上顯示出更好的性能。
μ~t(xt,x0):=αˉt?1βt1?αˉtx0+αt(1?αˉt?1)1?αˉtxtand?β~t:=1?αˉt?11?αˉtβt\tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right):=\frac{\sqrt{\bar{\alpha}_{t-1}} \beta_{t}}{1-\bar{\alpha}_{t}} \mathbf{x}_{0}+\frac{\sqrt{\alpha_{t}}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_{t}} \mathbf{x}_{t} \quad \text { and } \quad \tilde{\beta}_{t}:=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \beta_{t}μ~?t?(xt?,x0?):=1?αˉt?αˉt?1??βt??x0?+1?αˉt?αt??(1?αˉt?1?)?xt??and?β~?t?:=1?αˉt?1?αˉt?1??βt?
預(yù)測(cè)x0′x'_0x0′?后,xt?1′x'_{t-1}xt?1′?是從q(xt?1∣xt,x0′)q(x_{t-1}|x_t,x'_0)q(xt?1?∣xt?,x0′?)中采樣得到的,均值和標(biāo)準(zhǔn)與上面相同。 用獲得的(xt′,xt?1′)(x'_t,x'_{t-1})(xt′?,xt?1′?)對(duì)構(gòu)造一個(gè)假樣本。 真實(shí)樣本是(xt,xt?1)(x_t, x_{t-1})(xt?,xt?1?),判別器學(xué)會(huì)區(qū)分兩者。 其實(shí)這樣看,q(xt?1∣xt,x0′)q(x_{t-1}|x_t,x'_0)q(xt?1?∣xt?,x0′?)也是高斯的,所以不知道為什么逆過(guò)程的分布更復(fù)雜,看起來(lái)和以前一樣。
在這里通過(guò)將潛在變量 z添加到預(yù)測(cè)x0′x'_0x0′?的生成器中來(lái)與現(xiàn)有的 DDPM 有所不同,例如x0′=G(xt,t,z)x'_0=G(x_t,t,z)x0′?=G(xt?,t,z)。
pθ(xt?1∣xt):=∫pθ(x0∣xt)q(xt?1∣xt,x0)dx0=∫p(z)q(xt?1∣xt,x0=Gθ(xt,z,t))dzp_{\theta}\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}\right):=\int p_{\theta}\left(\mathbf{x}_{0} \mid \mathbf{x}_{t}\right) q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}\right) d \mathbf{x}_{0}=\int p(\mathbf{z}) q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_{t}, \mathbf{x}_{0}=G_{\theta}\left(\mathbf{x}_{t}, \mathbf{z}, t\right)\right) d \mathbf{z}pθ?(xt?1?∣xt?):=∫pθ?(x0?∣xt?)q(xt?1?∣xt?,x0?)dx0?=∫p(z)q(xt?1?∣xt?,x0?=Gθ?(xt?,z,t))dz
以前,由于pθ(x0∣xtp_\theta(x_0|x_tpθ?(x0?∣xt?)是一個(gè) δ\deltaδ 函數(shù),所以逆過(guò)程pθ(xt?1∣xt)p_\theta(x_{t-1}|x_t)pθ?(xt?1?∣xt?)是高斯函數(shù),而在本工作中,pθ(x0∣xt)=∫G(xt,t,z)p(z)dzp_{\theta}\left(x_{0} \mid x_{t}\right)=\int G\left(x_{t}, t, z\right) p(z) d zpθ?(x0?∣xt?)=∫G(xt?,t,z)p(z)dz變成了連續(xù)高斯混合。
結(jié)論
起初,我認(rèn)為 FID 比擴(kuò)散模型差,它是一個(gè)比 GAN 慢的模棱兩可的模型,但這似乎是提高擴(kuò)散模型的采樣速度和我認(rèn)為還有很大的發(fā)展空間。 在這些研究中,這篇論文似乎是最杰出的。 然而,有點(diǎn)奇怪的是,該實(shí)驗(yàn)僅在 cifar-10 和 LSUN 上進(jìn)行,而不是在 imageNet 上進(jìn)行,聲稱比 GAN 具有更好的模式覆蓋率作為優(yōu)勢(shì)。
知乎:https://blog.csdn.net/D_Trump/article/details/125533291
總結(jié)
以上是生活随笔為你收集整理的Denoising Diffusion GAN:Tackling the Generative Learning Trilemma with Denoising Diffusion GANs的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java输出矩形、三角形、圆形面积和周长
- 下一篇: Eureka自我保护机制原理及作用ena