国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學(xué)習(xí)】擴(kuò)散模型(Diffusion Model)詳解

這篇具有很好參考價(jià)值的文章主要介紹了【深度學(xué)習(xí)】擴(kuò)散模型(Diffusion Model)詳解。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【深度學(xué)習(xí)】擴(kuò)散模型(Diffusion Model)詳解

1. 介紹

diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)

擴(kuò)散模型有兩個(gè)過程:

  • 擴(kuò)散過程:如上圖所示,擴(kuò)散過程為從右到左 X 0 → X T X_0 \rightarrow X_T X0?XT? 的過程,表示對圖片逐漸加噪,且 X t + 1 X_{t+1} Xt+1?是在 X t X_{t} Xt?上加躁得到的,其只受 X t X_{t} Xt?的影響。因此擴(kuò)散過程是一個(gè)馬爾科夫過程。

    • X 0 X_0 X0?表示從真實(shí)數(shù)據(jù)集中采樣得到的一張圖片,對 X 0 X_0 X0?添加 T T T 次噪聲,圖片逐漸變得模糊。當(dāng) T T T 足夠大時(shí), X T X_T XT?為標(biāo)準(zhǔn)正態(tài)分布。在訓(xùn)練過程中,每次添加的噪聲是已知的,即 q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?) 是已知的。根據(jù)馬爾科夫過程的性質(zhì),我們可以遞歸得到 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?),即 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) 是已知的。

    其中,擴(kuò)散過程最主要的是 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?)的推導(dǎo)。

  • 逆擴(kuò)散過程:如上圖所示,逆擴(kuò)散過程為從左到右 X T → X 0 X_T \rightarrow X_0 XT?X0? 的過程,表示從噪聲中逐漸復(fù)原出圖片。如果我們能夠在給定 X t X_t Xt? 條件下知道 X t ? 1 X_{t-1} Xt?1? 的分布,即如果我們可以知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),那我們就能夠從任意一張?jiān)肼晥D片中經(jīng)過一次次的采樣得到一張圖片而達(dá)成圖片生成的目的。

    • 顯然我們很難知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),因此我們才會(huì)用 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 來近似 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),而 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 就是我們要訓(xùn)練的網(wǎng)絡(luò),在原文中就是個(gè)U-Net。而很妙的是,雖然我們不知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),但是 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 卻是可以用 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?) 表示的,即 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 是可知的,因此我們可以用 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 來指導(dǎo) p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 進(jìn)行訓(xùn)練。

    其中,逆擴(kuò)散過程最主要的是 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?)的推導(dǎo)。

2. 具體方法

在上面的介紹中,我們已經(jīng)明確了要訓(xùn)練 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?),但是目標(biāo)函數(shù)如何確定?

有兩個(gè)很直接的想法:

  • 負(fù)對數(shù)的最大似然概率,即 ? l o g p Θ ( X 0 ) -logp_{Θ}(X_0) ?logpΘ?(X0?);
  • 真實(shí)分布與預(yù)測分布的交叉熵,即 ? E q ( X 0 ) l o g p Θ ( X 0 ) -E_{q(X_0)}logp_{Θ}(X_0) ?Eq(X0?)?logpΘ?(X0?)。

但是這兩種方法都很難去求解(求積分)和優(yōu)化。因此擴(kuò)散模型參考了VAE,不去優(yōu)化這兩個(gè)東西,而是優(yōu)化他們的變分上界(variational lower bound),定義 L V L B L_{VLB} LVLB?,如下:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
L V L B L_{VLB} LVLB? 減小就代表著 ? l o g p Θ ( X 0 ) -logp_{Θ}(X_0) ?logpΘ?(X0?) ? E q ( X 0 ) l o g p Θ ( X 0 ) -E_{q(X_0)}logp_{Θ}(X_0) ?Eq(X0?)?logpΘ?(X0?) 的上界減小。且經(jīng)過推導(dǎo),$L_{VLB}又可寫成如下形式:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)

由上式不難發(fā)現(xiàn), L t L_{t} Lt?就是逆擴(kuò)散過程中 q ( X t ∣ X t + 1 X 0 ) q(X_{t}|X_{t+1}X_0) q(Xt?Xt+1?X0?) p Θ ( X t ∣ X t + 1 ) p_{Θ}(X_{t}|X_{t+1}) pΘ?(Xt?Xt+1?) K L KL KL 散度,即用 q ( X t ∣ X t + 1 X 0 ) q(X_{t}|X_{t+1}X_0) q(Xt?Xt+1?X0?) 來指導(dǎo) p Θ ( X t ∣ X t + 1 ) p_{Θ}(X_{t}|X_{t+1}) pΘ?(Xt?Xt+1?) 進(jìn)行訓(xùn)練。這部分主要就是(1)式和(2)式的推導(dǎo),細(xì)節(jié)部分見下文的損失函數(shù)。

2.1 擴(kuò)散過程

如上圖所示,擴(kuò)散過程為從右到左 X 0 → X T X_0 \rightarrow X_T X0?XT? 的過程,表示對圖片逐漸加噪。

  • X t + 1 X_{t+1} Xt+1?是在 X t X_{t} Xt?上加躁得到的,其只受 X t X_{t} Xt?的影響。因此擴(kuò)散過程是一個(gè)馬爾科夫過程

下面,我們對擴(kuò)散過程進(jìn)行推導(dǎo):

由于每一步擴(kuò)散的步長受變量 { β t ∈ ( 0 , 1 ) } t = 1 T \{β_{t} \in (0,1)\}_{t=1}^{T} {βt?(0,1)}t=1T? 的影響。 q ( X t ∣ X t ? 1 ) q(X_{t}|X_{t-1}) q(Xt?Xt?1?) 可寫為如下形式,即給定 X t ? 1 X_{t-1} Xt?1? 的條件下, X t X_{t} Xt?服從均值為 1 ? β t X t ? 1 \sqrt{1-β_{t}}X_{t-1} 1?βt? ?Xt?1?,方差為 β t I β_{t}I βt?I的正態(tài)分布:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
用重參數(shù)化技巧表示 X t X_{t} Xt?,令 α t = 1 ? β t α_{t}=1-β_{t} αt?=1?βt? ,令 Z t ~ N ( 0 , I ) , t ≥ 0 Z_{t} \sim N(0,I), t \ge 0 Zt?N(0,I),t0,即:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
其中,
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
可以得到,令 α ˉ t = ∏ i = 1 t α i \bar{α}_{t}= {\textstyle \prod_{i=1}^{t}α_{i}} αˉt?=i=1t?αi?
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
設(shè)隨機(jī)變量 Z ˉ t ? 1 \bar{Z}_{t-1} Zˉt?1? 為:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
Z ˉ t ? 1 \bar{Z}_{t-1} Zˉt?1? 的期望和方差如下:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
因此,
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)

至此,我們推出了 q ( X t ∣ X t ? 1 ) q(X_{t}|X_{t-1}) q(Xt?Xt?1?) q ( X t ∣ X 0 ) q(X_{t}|X_{0}) q(Xt?X0?),完成了擴(kuò)散過程。

2.2 逆擴(kuò)散過程

如上圖所示,逆擴(kuò)散過程為從左到右 X T → X 0 X_T \rightarrow X_0 XT?X0? 的過程,表示從噪聲中逐漸復(fù)原出圖片。

  • 如果我們能夠在給定 X t X_t Xt? 條件下知道 X t ? 1 X_{t-1} Xt?1? 的分布,即如果我們可以知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),那我們就能夠從任意一張?jiān)肼晥D片中經(jīng)過一次次的采樣得到一張圖片而達(dá)成圖片生成的目的。
  • 顯然我們很難知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),因此我們才會(huì)用 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 來近似 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),而 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 就是我們要訓(xùn)練的網(wǎng)絡(luò)。

雖然我們不知道 q ( X t ? 1 ∣ X t ) q(X_{t-1}|X_t) q(Xt?1?Xt?),但是 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 卻是可以用 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?) 表示的,即 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 是可知的。

  • 因此我們可以用 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 來指導(dǎo) p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 進(jìn)行訓(xùn)練。

下面我們對逆擴(kuò)散過程進(jìn)行推導(dǎo):

先對 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?)進(jìn)行推導(dǎo):
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
現(xiàn)在,我們已經(jīng)把 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?) 進(jìn)行表示,下面對 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 的表達(dá)式進(jìn)行推導(dǎo):
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
至此,我們得到了 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?)的分布表達(dá)式,完成了逆擴(kuò)散過程。

2.3 損失函數(shù)

我們已經(jīng)明確了要訓(xùn)練 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?),那要怎樣進(jìn)行訓(xùn)練?有兩個(gè)很直接的想法:

  • 一個(gè)是負(fù)對數(shù)的最大似然概率,即 ? l o g p Θ ( X 0 ) -logp_{Θ}(X_0) ?logpΘ?(X0?);
  • 另一個(gè)是真實(shí)分布與預(yù)測分布的交叉熵,即 ? E q ( X 0 ) l o g p Θ ( X 0 ) -E_{q(X_0)}logp_{Θ}(X_0) ?Eq(X0?)?logpΘ?(X0?)。

然而,類似于VAE,由于我們很難對噪聲空間進(jìn)行積分,因此直接優(yōu)化 ? l o g p Θ -logp_{Θ} ?logpΘ? E q ( X 0 ) l o g p Θ ( X 0 ) E_{q(X_0)}logp_{Θ}(X_0) Eq(X0?)?logpΘ?(X0?)都是很困難的。

因此我們不直接優(yōu)化它們,而是優(yōu)化它們的變分上界 L V L B L_{VLB} LVLB?,其定義如下:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
下面證明 L V L B L_{VLB} LVLB? ? l o g p Θ ( X 0 ) -logp_{Θ}(X_0) ?logpΘ?(X0?) ? E q ( X 0 ) l o g p Θ ( X 0 ) -E_{q(X_0)}logp_{Θ}(X_0) ?Eq(X0?)?logpΘ?(X0?) 的上界,即證明 L V L B ≥ ? l o g p Θ ( X 0 ) L_{VLB} \ge -logp_{Θ}(X_0) LVLB??logpΘ?(X0?) L V L B ≥ ? E q ( X 0 ) l o g p Θ ( X 0 ) L_{VLB} \ge -E_{q(X_0)}logp_{Θ}(X_0) LVLB??Eq(X0?)?logpΘ?(X0?)
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
至此,證明了 L V L B L_{VLB} LVLB? ? l o g p Θ ( X 0 ) -logp_{Θ}(X_0) ?logpΘ?(X0?) ? E q ( X 0 ) l o g p Θ ( X 0 ) -E_{q(X_0)}logp_{Θ}(X_0) ?Eq(X0?)?logpΘ?(X0?)的上界。進(jìn)而,對 L V L B L_{VLB} LVLB?進(jìn)行化簡,得到:
diffusion model,深度學(xué)習(xí)(機(jī)器學(xué)習(xí)),方法介紹,深度學(xué)習(xí),人工智能,機(jī)器學(xué)習(xí)
L t L_{t} Lt? 即可看出,對 p Θ ( X t ∣ X t + 1 ) p_{Θ}(X_{t}|X_{t+1}) pΘ?(Xt?Xt+1?) 的監(jiān)督就是最小化 p Θ ( X t ∣ X t + 1 ) p_{Θ}(X_{t}|X_{t+1}) pΘ?(Xt?Xt+1?) q ( X t ∣ X t + 1 X 0 ) q(X_t|X_{t+1}X_0) q(Xt?Xt+1?X0?) 的KL散度。

3. 總結(jié)

總結(jié)來說,擴(kuò)散模型的目的是希望學(xué)習(xí)出一個(gè) p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?),即能夠從噪聲圖恢復(fù)出原圖。
為了達(dá)到這一個(gè)目的,我們使用 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 來監(jiān)督 p Θ ( X t ? 1 ∣ X t ) p_{Θ}(X_{t-1}|X_t) pΘ?(Xt?1?Xt?) 進(jìn)行訓(xùn)練,而 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?) 是可以用 q ( X t ∣ X 0 ) q(X_t|X_0) q(Xt?X0?) q ( X t ∣ X t ? 1 ) q(X_t|X_{t-1}) q(Xt?Xt?1?) 進(jìn)行表示的,即 q ( X t ? 1 ∣ X t X 0 ) q(X_{t-1}|X_tX_0) q(Xt?1?Xt?X0?)是已知的。

4. 參考

【1】https://blog.csdn.net/Little_White_9/article/details/124435560
【2】https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
【3】https://arxiv.org/abs/2105.05233
【4】https://arxiv.org/abs/1503.03585
【5】https://arxiv.org/abs/2006.11239文章來源地址http://www.zghlxwxcb.cn/news/detail-804220.html

到了這里,關(guān)于【深度學(xué)習(xí)】擴(kuò)散模型(Diffusion Model)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包