0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入淺出擴(kuò)散模型(Diffusion Model)系列:基石DDPM

jf_pmFSk4VX ? 來(lái)源:GiantPandaCV ? 2023-08-18 16:21 ? 次閱讀

大家好,在【深入淺出擴(kuò)散模型系列】中,我們將從原理到源碼,從基石DDPM到DALLE2,Imagen與Stable Diffusion,通過(guò)詳細(xì)的圖例和解說(shuō),和大家一起來(lái)了解擴(kuò)散模型的奧秘。同時(shí),也會(huì)穿插對(duì)經(jīng)典的GAN,VAE等模型的解讀,敬請(qǐng)期待~

本篇將和大家一起解讀擴(kuò)散模型的基石:DDPM(Denoising Diffusion Probalistic Models)。擴(kuò)散模型的研究并不始于DDPM,但DDPM的成功對(duì)擴(kuò)散模型的發(fā)展起到至關(guān)重要的作用。在這個(gè)系列里我們也會(huì)看到,后續(xù)一連串效果驚艷的模型,都是在DDPM的框架上迭代改進(jìn)而來(lái)。所以,我把DDPM放在這個(gè)系列的第一篇進(jìn)行講解。

初讀DDPM論文的朋友,可能有以下兩個(gè)痛點(diǎn):

論文花極大篇幅講數(shù)學(xué)推導(dǎo),可是我看不懂。

論文沒(méi)有給出模型架構(gòu)圖和詳細(xì)的訓(xùn)練解說(shuō),而這是我最關(guān)心的部分。

針對(duì)這些痛點(diǎn),DDPM系列將會(huì)出如下三篇文章:

DDPM(模型架構(gòu)篇):在閱讀源碼的基礎(chǔ)上,本篇繪制了詳細(xì)的DDPM模型架構(gòu)圖(DDPM UNet),同時(shí)附上關(guān)于模型運(yùn)作流程的詳細(xì)解說(shuō)。本篇不涉及數(shù)學(xué)知識(shí),直觀幫助大家了解DDPM怎么用,為什么好用。

DDPM(人人都能看懂的數(shù)學(xué)推理篇):也就是本篇文章,DDPM的數(shù)學(xué)推理可能是很多讀者頭疼的部分。我嘗試跳出原始論文的推導(dǎo)順序和思路,從更符合大家思維模式的角度入手,把整個(gè)推理流程串成一條完整的邏輯線。同樣,我也會(huì)配上大量的圖例,方便大家理解數(shù)學(xué)公式。如果你不擅長(zhǎng)數(shù)學(xué)推導(dǎo),這篇文章可以幫助你從直覺(jué)上了解DDPM的數(shù)學(xué)有效性;如果你更關(guān)注推導(dǎo)細(xì)節(jié),這篇文章中也有詳細(xì)的推導(dǎo)中間步驟。

DDPM(源碼解讀篇):在前兩篇的基礎(chǔ)上,我們將配合模型架構(gòu)圖,一起閱讀DDPM源碼,并實(shí)操跑一次,觀測(cè)訓(xùn)練過(guò)程里的中間結(jié)果。

【如果你粗掃一眼本文,看見(jiàn)大段的公式推導(dǎo),請(qǐng)不要放棄。出于嚴(yán)謹(jǐn)?shù)哪康模疚谋仨毩谐龉酵茖?dǎo)的細(xì)節(jié);但是,如果你只想把握整體邏輯,完全可以跳過(guò)推導(dǎo),只看結(jié)論和圖解,這并不會(huì)影響本文的閱讀。最后,看在這滿滿的手打公式和圖片解讀上,如果大家覺(jué)得本文有幫助,請(qǐng)多多點(diǎn)贊和在看!】

全文目錄如下:

1ba707b4-3d13-11ee-ac96-dac502259ad0.png

一、DDPM在做一件什么事

在DDPM模型架構(gòu)篇中,我們已經(jīng)討論過(guò)DDPM的作用,以及它為何能成為擴(kuò)散模型/文生圖模型基石的原因。這里為了方便讀者更好了解上下文,我們將相關(guān)講解再放一次。

假設(shè)你想做一個(gè)以文生圖的模型,你的目的是給一段文字,再隨便給一張圖(比如一張?jiān)肼暎?,這個(gè)模型能幫你產(chǎn)出符合文字描述的逼真圖片,例如:

1be8a8e0-3d13-11ee-ac96-dac502259ad0.png

文字描述就像是一個(gè)指引(guidance),幫助模型去產(chǎn)生更符合語(yǔ)義信息的圖片。但是,畢竟語(yǔ)義學(xué)習(xí)是復(fù)雜的。我們能不能先退一步,先讓模型擁有產(chǎn)生逼真圖片的能力?

比如說(shuō),你給模型喂一堆cyberpunk風(fēng)格的圖片,讓模型學(xué)會(huì)cyberpunk風(fēng)格的分布信息,然后喂給模型一個(gè)隨機(jī)噪音,就能讓模型產(chǎn)生一張逼真的cyberpunk照片?;蛘呓o模型喂一堆人臉圖片,讓模型產(chǎn)生一張逼真的人臉。同樣,我們也能選擇給訓(xùn)練好的模型喂帶點(diǎn)信息的圖片,比如一張夾雜噪音的人臉,讓模型幫我們?nèi)ピ搿?/p>

1c2080e4-3d13-11ee-ac96-dac502259ad0.png

具備了產(chǎn)出逼真圖片的能力,模型才可能在下一步中去學(xué)習(xí)語(yǔ)義信息(guidance),進(jìn)一步產(chǎn)生符合人類意圖的圖片。而DDPM的本質(zhì)作用,就是學(xué)習(xí)訓(xùn)練數(shù)據(jù)的分布,產(chǎn)出盡可能符合訓(xùn)練數(shù)據(jù)分布的真實(shí)圖片。所以,它也成為后續(xù)文生圖類擴(kuò)散模型框架的基石。

二、優(yōu)化目標(biāo)

現(xiàn)在,我們知道DDPM的目標(biāo)就是:使得生成的圖片盡可能符合訓(xùn)練數(shù)據(jù)分布?;谶@個(gè)目標(biāo),我們記:

:模型所產(chǎn)生的圖片的(概率)分布。其中表示模型參數(shù),以作為下標(biāo)的目的是表示這個(gè)分布是由模型決定的,

:訓(xùn)練數(shù)據(jù)(也可理解為真實(shí)世界)圖片的(概率)分布。下標(biāo)data表示這是一個(gè)自然世界客觀存在的分布,與模型無(wú)關(guān)。

則我們的優(yōu)化目標(biāo)可以用圖例表示為:

1c97fade-3d13-11ee-ac96-dac502259ad0.png

而求兩個(gè)分布之間的相似性,我們自然而然想到了KL散度。復(fù)習(xí)一下KL散度的定義——分布p與分布q之間的KL散度為:

則現(xiàn)在我們的目標(biāo)函數(shù)就變?yōu)椋何覀兝美檬剑?.1),對(duì)該目標(biāo)函數(shù)做一些變換

1cbb8224-3d13-11ee-ac96-dac502259ad0.png

經(jīng)過(guò)這一番轉(zhuǎn)換,我們的優(yōu)化目標(biāo)從直覺(jué)上的“令模型輸出的分布逼近真實(shí)圖片分布”轉(zhuǎn)變?yōu)?",我們也可以把這個(gè)新的目標(biāo)函數(shù)通俗理解成“使得模型產(chǎn)生真實(shí)圖片的概率最大”。如果一上來(lái)就直接把式(1.2)作為優(yōu)化目標(biāo),可能會(huì)令很多朋友感到困惑。因此在這一步中,我們解釋了為什么要用式(1.2)作為優(yōu)化目標(biāo)。

接下來(lái),我們近一步來(lái)看,對(duì)式(1.2)還能做什么樣的轉(zhuǎn)換和拆解。

三、最大化ELBO(Evidence Lower Bound)

的本質(zhì)就是要使得連乘中的每一項(xiàng)最大,也等同于使得最大。所以我們進(jìn)一步來(lái)拆解。在開(kāi)始拆解之前,讓我們先回顧一下擴(kuò)散模型的加噪與去噪過(guò)程,幫助我們更好地做數(shù)學(xué)推理。

1cdabbf8-3d13-11ee-ac96-dac502259ad0.png

1cf32ec2-3d13-11ee-ac96-dac502259ad0.png

在Diffusion Process中,我們不過(guò)模型,而是按照設(shè)置好的加噪規(guī)則,隨著time_step的變化,給圖片添加噪聲()。在Denoise Process中,我們則需要經(jīng)過(guò)模型,對(duì)圖片進(jìn)行去噪,逐步將圖片還原成原始的樣子()。Diffusion過(guò)程中遵循的分布,我們記為,Denoise過(guò)程中遵循的分布,我們記為。嚴(yán)格來(lái)說(shuō),Diffusion過(guò)程遵循的分布應(yīng)該記為,下標(biāo)也表示模型參數(shù),也就是說(shuō),“規(guī)則”也算一種“模型”。理論上,你想對(duì)Diffusion單獨(dú)訓(xùn)練一套模型,也是沒(méi)有問(wèn)題的。為了表述嚴(yán)謹(jǐn),我們接下來(lái)都將用進(jìn)行表示。

現(xiàn)在我們可以回到拆解了,即然x和z與Diffusion和Denoise的過(guò)程密切相關(guān),那么我們的目標(biāo)就是要把拆解成用同時(shí)表達(dá)的形式:

1d0db47c-3d13-11ee-ac96-dac502259ad0.png

就被稱為Evidence Lower Bound(ELBO)。到這一步為止,我們將最大化拆解成最大化ELBO,其中與diffusion過(guò)程密切相關(guān),與denoise過(guò)程密切相關(guān)。

(2.1)這個(gè)公式一出,大家是不是很眼熟?沒(méi)錯(cuò),它其實(shí)也刻畫(huà)了VAE的優(yōu)化目標(biāo),所以這里我們才選用z而不是x來(lái)表示latent space中的變量。有些讀者可能已經(jīng)發(fā)現(xiàn)了,(2.1)描述的是一個(gè)time_step下的優(yōu)化目標(biāo),但是我們的擴(kuò)散模型,是有T個(gè)time_step的,因此,我們還需要把(2.1)再進(jìn)一步擴(kuò)展成鏈?zhǔn)奖磉_(dá)的方式。在這一步擴(kuò)展里,我們將不再使用z變量,取而代之的是用來(lái)表示,更符合我們對(duì)擴(kuò)散模型的整體理解,則我們有:

1d3aac3e-3d13-11ee-ac96-dac502259ad0.png

其中,表示從真實(shí)世界中篩選出來(lái)的干凈的圖片,表示最后一個(gè)time_step加噪后的圖片,通常是一個(gè)近似純?cè)肼?。?xì)心的讀者可能發(fā)現(xiàn),在(2.2)公式中,左邊的是不是寫(xiě)成更合理呀?沒(méi)錯(cuò),因?yàn)閿U(kuò)散模型的目標(biāo)就是去還原來(lái)自真實(shí)世界的。但這里為了前后表達(dá)統(tǒng)一,就不做修改了。讀者們只要理解(2.2)的含義即可。

四、進(jìn)一步拆解ELBO

復(fù)習(xí)一下,到這一步為止,我們經(jīng)歷了如下過(guò)程:

首先,總體優(yōu)化目標(biāo)是讓模型產(chǎn)生的圖片分布和真實(shí)圖片分布盡量相似,也就是

對(duì)KL散度做拆解,將優(yōu)化目標(biāo)轉(zhuǎn)變?yōu)?,同時(shí)也等價(jià)于讓連乘項(xiàng)中的每一項(xiàng)最大

對(duì)做拆解,以優(yōu)化DDPM其中一個(gè)time_step為例,將優(yōu)化目標(biāo)轉(zhuǎn)向最大化下界(ELBO)

以全部time_step為例,將優(yōu)化目標(biāo)轉(zhuǎn)變?yōu)?,也就是式?.2)

恭喜你充滿耐心地看到這一步了!接下來(lái),我們還需要再耐心對(duì)式(2.2)進(jìn)行拆解,畢竟現(xiàn)在它只是一個(gè)偏抽象的形式,因此我們還需對(duì)p與q再做具象化處理。之前我們提過(guò),下標(biāo)的意思是強(qiáng)調(diào)從理論上來(lái)說(shuō),diffusion過(guò)程可以通過(guò)訓(xùn)練一個(gè)模型來(lái)加噪,而并非只能通過(guò)規(guī)則加噪。這兩種方法在數(shù)學(xué)上都是成立的。由于DDPM采用了后者,因此在接下來(lái)的過(guò)程中,我們將會(huì)去掉下標(biāo)。

式(2.2)的進(jìn)一步拆解如下:

1d5962dc-3d13-11ee-ac96-dac502259ad0.png

1d7c7556-3d13-11ee-ac96-dac502259ad0.png

(48):分子上,因?yàn)橐咽莻€(gè)近似高斯分布的純?cè)肼暎虼怂姆植紁是已知的,和模型無(wú)關(guān),所以將單獨(dú)提煉出。分子與分母的其余項(xiàng)則是因?yàn)閿U(kuò)散模型遵循馬爾可夫鏈性質(zhì),因此可以通過(guò)鏈?zhǔn)竭B乘規(guī)則進(jìn)行改寫(xiě)

(50):表示來(lái)自真實(shí)世界的干凈圖片,它是diffusion過(guò)程的起源,任意都可由推導(dǎo)而來(lái),因此可將改寫(xiě)成

(52):根據(jù)多變量條件概率的貝葉斯鏈?zhǔn)椒▌t進(jìn)行改寫(xiě),即:

當(dāng)然多變量條件概率的改寫(xiě)方式有很多種,根據(jù)需要我們選擇了上面的這一種

(54):由于q是既定的,可以看作是一個(gè)常量,因此可增加一項(xiàng)

(56)~(57):根據(jù)期望項(xiàng)中涉及到的具體元素,調(diào)整期望E的下標(biāo)

(58):根據(jù)KL散度的定義重寫(xiě)最后兩項(xiàng)。其中prior matching term可看作是常量,reconstruction term和denoising matching term則是和模型密切相關(guān)的兩項(xiàng)。由于兩者間十分相似,因此接下來(lái)我們只需要特別關(guān)注denoising matching term如何拆解即可。

五、重參數(shù)與噪聲預(yù)測(cè)

現(xiàn)在,我們的優(yōu)化目標(biāo)轉(zhuǎn)為最大化,我們繼續(xù)對(duì)該項(xiàng)進(jìn)行拆解。

首先我們來(lái)看一項(xiàng)。

根據(jù)多變量條件概率的鏈?zhǔn)椒▌t,我們有:

現(xiàn)在,我們分別來(lái)看,,具體長(zhǎng)什么樣子。

5.1 重參數(shù)

5.1.1 為什么需要重參數(shù)

回顧模型架構(gòu)篇,我們?cè)?jīng)提過(guò),最樸素的diffusion加噪規(guī)則是,在每一個(gè)time_step中都sample一次隨機(jī)噪聲,使得:

在架構(gòu)篇中,我們直接指出,即篩選的噪聲是來(lái)自一個(gè)標(biāo)準(zhǔn)高斯分布。但是為什么要這么設(shè)計(jì)呢?

我們假設(shè)真實(shí)世界的圖片服從這樣的高斯分布,而現(xiàn)在我們的模型就是要去學(xué)習(xí)這個(gè)分布,更具象點(diǎn),假設(shè)模型遵從的分布是,我們的目的就是讓逼近,逼近。

那么在diffusion過(guò)程中,更符合直覺(jué)的做法是,模型從采樣出一個(gè)噪聲,然后在denoise的過(guò)程中去預(yù)測(cè)這個(gè)噪聲,這樣就能把梯度傳遞到上,使得模型在預(yù)測(cè)噪聲的過(guò)程中習(xí)得真實(shí)圖片的分布。

但這樣做產(chǎn)生的問(wèn)題是,實(shí)際上梯度并不能傳遞到上。舉個(gè)簡(jiǎn)單的例子,假設(shè)你從隨機(jī)采樣出了一個(gè)3,你怎么將這個(gè)隨機(jī)的采樣結(jié)果和聯(lián)系起來(lái)呢?也就是說(shuō),在diffusion過(guò)程中,如果我們從一個(gè)帶參數(shù)的分布中做數(shù)據(jù)采樣,在denoise過(guò)程中,我們無(wú)法將梯度傳遞到這個(gè)參數(shù)上。

針對(duì)這個(gè)問(wèn)題,有一個(gè)簡(jiǎn)單的解決辦法:我從一個(gè)確定的分布(不帶參數(shù))中做數(shù)據(jù)采樣,不就行了嗎?比如,我從先采樣出一個(gè),然后再令最終的采樣結(jié)果z為:。這樣我不就能知道z和間的關(guān)系了?同時(shí)根據(jù)高斯分布性質(zhì),z也服從分布。

以上“從一個(gè)帶參數(shù)的分布中進(jìn)行采樣”轉(zhuǎn)變到“從一個(gè)確定的分布中進(jìn)行采樣”,以解決梯度無(wú)法傳遞問(wèn)題的方法,就被稱為“重參數(shù)”(reparamterization)。關(guān)于重參數(shù)原理的更多細(xì)節(jié),推薦大家閱讀這篇文章(https://spaces.ac.cn/archives/6705)

5.1.2 重參數(shù)的具體方法

到這一步根據(jù)重參數(shù)的思想,我們可以把轉(zhuǎn)變?yōu)榱?。但是現(xiàn)在的diffusion過(guò)程還是太繁瑣:每一個(gè)time_step都要做一次采樣,等我后續(xù)做denoise過(guò)程去預(yù)測(cè)噪聲,傳播梯度的時(shí)候,參數(shù)不僅在這個(gè)time_step有,在之前的一系列time_steps中都有,這不是給我計(jì)算梯度造成困擾了嗎?注意到在diffusion過(guò)程中,隨著time_step的增加,圖片中含有的噪聲是越來(lái)越多的,那我能不能設(shè)定一個(gè)函數(shù),使得每個(gè)time_step的圖片都能由原始圖片加噪推導(dǎo)而來(lái),然后使得噪聲的比例隨著time_step增加而變大?這樣我不就只需要一次采樣了嗎?

當(dāng)然沒(méi)有問(wèn)題,DDPM采用的做法是:

(1)首先,設(shè)置超參數(shù),滿足隨著t增大,逐漸變大。

(2)令:

易推出隨著t增大而逐漸變小

(3)則任意時(shí)刻的都可以由表示出:

我們通過(guò)圖例來(lái)更好理解上面的三步驟:

1d9eac34-3d13-11ee-ac96-dac502259ad0.png

詳細(xì)的過(guò)程都在圖例中表示出了,這里不做贅述。

5.2 噪聲預(yù)測(cè)

講完了重參數(shù)的部分,我們繼續(xù)回到剛才拆解的步驟上來(lái),復(fù)習(xí)一下,我們已經(jīng)將ELBO拆解成,現(xiàn)在我們的關(guān)注點(diǎn)在q分布上,而q分布又由以下三項(xiàng)組成:

,我們繼續(xù)來(lái)看這三項(xiàng)要怎么具體表示出來(lái)。

由章節(jié)5.1.2,我們知道:

則任意的關(guān)系都可以由此推出:

(友情提示:大家記得看5.1.2中的圖例區(qū)分哦,不是typo)。

同時(shí),我們已經(jīng)知道(假設(shè))都服從高斯分布,則根據(jù)高斯分布的性質(zhì),我們有:

對(duì)于高斯分布,知道了均值和方差,我們就可以把它具體的概率密度函數(shù)寫(xiě)出來(lái):

1dcb78e0-3d13-11ee-ac96-dac502259ad0.png

經(jīng)過(guò)這樣的一頓爆肝推導(dǎo),我們終于將的分布寫(xiě)出來(lái)了(84)。也就是我們當(dāng)前優(yōu)化目標(biāo)中的q部分。

現(xiàn)在,我們來(lái)看部分,根據(jù)優(yōu)化目標(biāo),此時(shí)我們需要讓p和q的分布盡量接近:

1df739f8-3d13-11ee-ac96-dac502259ad0.png

而讓p和q的分布接近,等價(jià)與讓。注意到其實(shí)是一個(gè)常量,它只和超參有關(guān)。在DDPM中,為了簡(jiǎn)化優(yōu)化過(guò)程,并且使訓(xùn)練更穩(wěn)定,就假設(shè)也按此種方式固定下來(lái)了。在后續(xù)的擴(kuò)散模型(例如GLIDE)中,則引入對(duì)方差的預(yù)測(cè)。在DDPM中,只預(yù)測(cè)均值。

好,那么預(yù)測(cè)均值,到底是在預(yù)測(cè)什么東西呢?我們對(duì)再做改寫(xiě),主要是根據(jù)我們?cè)O(shè)置的diffusion規(guī)則,將用進(jìn)行表示:

觀察到,式(5.1)的結(jié)果在diffusion過(guò)程中就已決定好。所以現(xiàn)在對(duì)于,我只要讓它在denoise的過(guò)程里,預(yù)測(cè)出,使得,然后令:

這樣,我不就能使得和的分布一致了嗎!

此刻!是不是一道光在你的腦海里閃過(guò)!一切都串起來(lái)了,也就是說(shuō),只要在denoise的過(guò)程中,讓模型去預(yù)測(cè)噪聲,就可以達(dá)到讓“模型產(chǎn)生圖片的分布”和“真實(shí)世界的圖片分布”逼近的目的!

5.3 再次理解training和sampling

1e1191fe-3d13-11ee-ac96-dac502259ad0.png

現(xiàn)在,我們?cè)賮?lái)回顧training和sampling的過(guò)程,在training的過(guò)程中,我們只需要去預(yù)測(cè)噪聲,就能在數(shù)學(xué)上使得模型學(xué)到的分布和真實(shí)的圖片分布不斷逼近。而當(dāng)我們使用模型做sampling,即去測(cè)試模型能生成什么質(zhì)量的圖片時(shí),我們即可由式(5.1)中的推導(dǎo)結(jié)論,從推導(dǎo),直至還原出。注意到這里,其中是我們式(5.1)中要逼近的均值真值;,則正是我們已經(jīng)固定住的方差。

關(guān)于training和sampling更詳細(xì)的實(shí)操解說(shuō),可以參見(jiàn)模型架構(gòu)篇。

六、總結(jié)(必看)

恭喜你堅(jiān)持看到了這里!我們來(lái)把整個(gè)推導(dǎo)串成完整的邏輯鏈:

(1)首先,DDPM總體優(yōu)化目標(biāo)是讓模型產(chǎn)生的圖片分布和真實(shí)圖片分布盡量相似,也就是。同時(shí),我們假設(shè)真實(shí)世界的圖片符合高斯分布:。因此我們的目標(biāo)就是要讓習(xí)得

(2)但是這兩個(gè)客觀存在的真值是未知的,因此我們必須對(duì)KL散度進(jìn)行不斷拆解,直至能用確定的形式將它表示出來(lái)。

(3)對(duì)KL散度做初步拆解,將優(yōu)化目標(biāo)轉(zhuǎn)變?yōu)?,同時(shí)也等價(jià)于讓連乘項(xiàng)中的每一項(xiàng)最大

(4)繼續(xù)對(duì)做拆解,以優(yōu)化DDPM其中一個(gè)time_step為例,將優(yōu)化目標(biāo)轉(zhuǎn)向最大化下界(ELBO)

(5)依照馬爾可夫性質(zhì),從1個(gè)time_step推至所有的time_steps,將(4)中的優(yōu)化目標(biāo)改寫(xiě)為,也就是式(2.2)

(6)對(duì)式(2.2)繼續(xù)做拆解,將優(yōu)化目標(biāo)變?yōu)?/p>

(7)先來(lái)看(6)中的一項(xiàng),注意到這和diffusion的過(guò)程密切相關(guān)。在diffusion的過(guò)程中,通過(guò)重參數(shù)的方法進(jìn)行加噪,再經(jīng)過(guò)一頓爆肝推導(dǎo),得出,易看出該分布中方差是只和我們?cè)O(shè)置的超參數(shù)相關(guān)的常量。

(8)再來(lái)看(6)中的一項(xiàng),下標(biāo)說(shuō)明了該項(xiàng)和模型相關(guān)。為了讓p和q的分布接近,我們需要讓p去學(xué)習(xí)q的均值和方差。由于方差是一個(gè)常量,在DDPM中,假設(shè)它是固定的,不再單獨(dú)去學(xué)習(xí)它(后續(xù)的擴(kuò)散模型,例如GLIDE則同時(shí)對(duì)方差也做了預(yù)測(cè))。因此現(xiàn)在只需要學(xué)習(xí)q的均值。經(jīng)過(guò)一頓變式,可以把q的均值改寫(xiě)成。因此,這里只要讓模型去預(yù)測(cè)噪聲,使得,就能達(dá)到達(dá)到(1)中的目的!

七、參考

在學(xué)習(xí)DDPM的過(guò)程中,我也看了很多參考資料,但發(fā)現(xiàn)很難將整個(gè)推導(dǎo)過(guò)程串成一條符合思維慣性的邏輯鏈,因此對(duì)很多細(xì)節(jié)也是一知半解。直到我看到李宏毅老師對(duì)擴(kuò)散模型原理的講解(從分布相似性入手),以及閱讀了google的一篇關(guān)于擴(kuò)散模型數(shù)學(xué)推理的綜述,才恍然大悟。自己動(dòng)手推導(dǎo)后,從更符合我慣性思維的角度入手,寫(xiě)了這篇文章。因此,我也把我認(rèn)為非常有幫助的參考資料列在下面,大家可以補(bǔ)充閱讀。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29216
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62631
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3244

    瀏覽量

    48848

原文標(biāo)題:深入淺出擴(kuò)散模型(Diffusion Model)系列:基石DDPM(人人都能看懂的數(shù)學(xué)原理篇)

文章出處:【微信號(hào):GiantPandaCV,微信公眾號(hào):GiantPandaCV】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入淺出AVR(傻孩子)

    本帖最后由 eehome 于 2013-1-5 09:56 編輯 深入淺出AVR(傻孩子)
    發(fā)表于 06-29 15:43

    深入淺出AVR

    深入淺出AVR,一本書(shū)。
    發(fā)表于 07-15 12:02

    深入淺出玩轉(zhuǎn)FPGA

    深入淺出玩轉(zhuǎn)FPGA
    發(fā)表于 07-21 09:21

    深入淺出ARM7

    深入淺出ARM7
    發(fā)表于 08-18 10:12

    HDMI技術(shù)深入淺出

    HDMI技術(shù)深入淺出
    發(fā)表于 08-19 10:52

    深入淺出Android

    深入淺出Android
    發(fā)表于 08-20 10:14

    深入淺出Android

    深入淺出Android
    發(fā)表于 04-26 10:48

    深入淺出安防視頻監(jiān)控系統(tǒng)

    深入淺出安防視頻監(jiān)控系統(tǒng)深入淺出安防視頻監(jiān)控系統(tǒng)
    發(fā)表于 05-22 19:28

    深入淺出AVR

    深入淺出AVR
    發(fā)表于 08-23 10:10

    深入淺出數(shù)據(jù)分析

    深入淺出數(shù)據(jù)分析,有需要的朋友下來(lái)看看。
    發(fā)表于 01-15 14:22 ?0次下載

    深入淺出談多層面板布線技巧

    深入淺出談多層面板布線技巧
    發(fā)表于 12-13 22:20 ?0次下載

    深入淺出Android—Android開(kāi)發(fā)經(jīng)典教材

    深入淺出Android—Android開(kāi)發(fā)經(jīng)典教材
    發(fā)表于 10-24 08:52 ?15次下載
    <b class='flag-5'>深入淺出</b>Android—Android開(kāi)發(fā)經(jīng)典教材

    深入淺出數(shù)字信號(hào)處理

    深入淺出數(shù)字信號(hào)處理
    發(fā)表于 12-07 20:14 ?538次閱讀

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載

    深入淺出學(xué)習(xí)250個(gè)通信原理資源下載
    發(fā)表于 04-12 09:16 ?28次下載

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧

    深入淺出學(xué)習(xí)低功耗藍(lán)牙協(xié)議棧
    發(fā)表于 06-23 10:35 ?57次下載