Diffusion Model-DDPM

指间的执着發表於2024-06-22

擴散過程是一個逐漸在資料上加噪的馬爾科夫鏈,直到最終變成一個完全的噪聲。而擴散模型就是一個使用變分推斷訓練的引數化馬爾科夫鏈。如上圖所示。學習的是一個reverse process。

前提條件:

1. 馬爾可夫性質:當前的狀態只與之前一個時刻的狀態有關;

2. 前向和反向狀態服從高斯分佈,而且變化比較小(利於數學分析);

擴散模型的前向過程就是不斷在資料上加噪的過程,可以使用如下形式表示,其中:

$q(x_{1:T}|x_{0}):=\prod_{t=1}^{T}q(x_{t}|x_{t-1})$ $q(x_{t}|x_{t-1}) :=\mathcal{N}(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}I)$

這裡為了後續計算方便,將條件機率的均值和方差設定成$\sqrt{1-\beta_{t}}x_{t-1}$和$\beta_{t}$。其中,$0<\beta_{1}<\beta_{2}<...<\beta_{t-1}<\beta_{t}<1$。

擴散模型的反向過程,可以使用如下的機率形式表示,將其定義為可學習的馬爾科夫鏈,該過程的起始點為$p({x}_{T})=\mathcal{N}({x}_{T};0,I)$。

$p_{\theta}(x_{0:T}):=p(x_{T})\prod_{t=1}^{T}p_{\theta }(x_{t-1}|x_{t})$ $p_{\theta }(x_{t-1}|x_{t}):=\mathcal{N}(x_{t-1};\mu_{\theta}(x_{t}, t), {\textstyle \sum_{\theta}(x_{t},t)})$

所以擴散模型就是透過學習,來估計$;\mu_{\theta}(x_{t}, t)$和${\textstyle \sum_{\theta}(x_{t},t)})$的過程。

和所有的生成式模型一樣,DDPM就是求模型的最大對數似然。

因為擴散過程的如下:

$P_{\theta}(x_{0})=\int_{x_{1}:x_{T}}p(x_{T})p_{\theta}(x_{T-1}|x_{T})...p_{\theta}(x_{t-1}|x_{t})...p_{\theta}(x_{0}|x_{1})dx_{1}:x_{T}$

因此,由Jensen不等式$f(E[X])\ge E[f(X)]$,可得:

$logP_{\theta}(x_{0})=log\int p_{\theta}(x_{0:T})dx_{1:T}=log\int \frac{p_{\theta(x_{0:T})}q(x_{1:T}|x_{0})}{q(x_{1:T}|x_{0})}dx_{1:T}\ge \int q(x_{1:T}|x_{0})log\frac{p_{\theta}(x_{0:T})}{q(x_{1:T}|x_{0})}dx_{1:T}=E_{q(x_{1:T}|x_{0})}[log\frac{p_{\theta}(x_{0:T})}{q(x_{1:T}|x_{0})}]=E_{q(x_{1:T}|x_{0})}[logp(x_{T})+\sum_{t\ge1}log\frac{p_{\theta}(x_{t-1}|x_{t})}{q(x_{t}|x_{t-1})}]$

因此擴散模型就是最大化$logP_{\theta}(x_{0})$,即損失函式為最小化負對數似然,即:

$E_{q(x_{1:T}|x_{0})}[log\frac{q(x_{1:T}|x_{0})}{p_{\theta}(x_{0:T})}]$

DDPM的前向過程如下:

$x_{t}=\sqrt{1-_{\beta_{t}}}*x_{t-1}+\sqrt{\beta_{t}}*\varepsilon_{t-1}$ $0<\beta_{1}<\beta_{2}<...<\beta_{t-1}<\beta_{t}<1$。

引入新變數$\alpha_{t}=1-\beta_{t}$

因此上面加噪的過程可以寫成:

$x_{t}=\sqrt{\alpha_{t}}*x_{t-1} + \sqrt{1-\alpha_{t}}*\varepsilon_{t-1}$

$x_{t-1}=\sqrt{\alpha_{t-1}}*x_{t-2} + \sqrt{1-\alpha_{t-1}}*\varepsilon_{t-2}$

合併上面兩式,得:

$x_{t}=\sqrt{\alpha_{t}\alpha_{t-1}}*x_{t-2}+\sqrt{\alpha_{t}(1-\alpha_{t-1})}*\varepsilon_{t-2}+\sqrt{1-\alpha_{t}}*\varepsilon_{t-1} $

重取樣

一個高斯分佈不可導,可以將其轉換成標準高斯分佈的格式:

$y=\sigma*\varepsilon+\mu \sim \mathcal{N}(\mu,\sigma^{2}) $

所以,這裡$x_{t}$滿足高斯分佈,且

$x_{t} \sim \mathcal{N}(\sqrt{1-\beta_{t}}*x_{t-1},\beta_{t})$

相關文章