扩散过程是一个逐渐在数据上加噪的马尔科夫链,直到最终变成一个完全的噪声。而扩散模型就是一个使用变分推断训练的参数化马尔科夫链。如上图所示。学习的是一个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})$
标签:Diffusion,varepsilon,log,sqrt,DDPM,beta,theta,alpha,Model From: https://www.cnblogs.com/xjlearningAI/p/18261612