从工程和理论角度理解DDPM
目录
说明
紧接着上一篇VAE,继续整理DDPM。
1.与VAE的区别和关系
设数据集 X X X的分布 P ( X ) P(X) P(X),其对于我们是未知的,但可以从里面进行采样。假设采样了一个观测变量 x 0 x_0 x0。
从极大似然出发,然后引入隐变量,再到变分推导这一系列过程其实都和VAE一致,只不过隐变量改了一下
- 隐变量由单独一个 z z z变成了 x 1 , x 2 , … , x T x_{1}, x_{2}, \ldots, x_{T} x1,x2,…,xT,注意这些不是和 x 0 x_0 x0平行的样本,而是由 x 0 x_0 x0加噪得到的隐变量。
- 隐变量的维度是没有像VAE一样经过压缩的,即维度和 x 0 x_0 x0一致。
- 边缘概率密度公式变为了:
P ( x 0 ) = ∫ P ( x 0 : T ) d x 1 : T , P ( x 0 : T ) = P ( x T ) ∏ t = 1 T P θ ( x t − 1 ∣ x t ) P(x_0) = \int P(x_{0:T}) dx_{1:T}, \ \ \ \ \ P(x_{0:T})=P(x_T)\prod_{t=1}^{T} P_{\theta}\left(x_{t-1} \mid x_{t}\right) P(x0)=∫P(x0:T)dx1:T, P(x0:T)=P(xT)t=1∏TPθ(xt−1∣xt) - 贝叶斯公式变为了:
P ( x 0 ) = P ( x 0 : T ) P ( x 1 : T ∣ x 0 ) , P ( x 1 : T ∣ x 0 ) = ∏ t = 1 T P ( x t ∣ x t − 1 ) P(x_0) = \frac{P(x_{0:T})}{P(x_{1: T} \mid x_{0})}, \ \ \ \ \ P(x_{1: T} \mid x_{0})=\prod_{t=1}^{T} P\left(x_{t} \mid x_{t-1}\right) P(x0)=P(x1:T∣x0)P(x0:T), P(x1:T∣x0)=t=1∏TP(xt∣xt−1)
2.变分推断
变分推断的公式基本和VAE的一致,最终也是转换成求解ELBO的代理任务
概率密度公式推导:
log P ( x 0 ) = log ∫ P ( x 0 : T ) d x 1 : T = log ∫ P ( x 0 : T ) d x 1 : T Q ϕ ( x 1 : T ∣ x 0 ) Q ϕ ( x 1 : T ∣ x 0 ) d x 1 : T = log E Q ϕ ( x 1 : T ∣ x 0 ) [ P ( x 0 : T ) Q ϕ ( x 1 : T ∣ x 0 ) ] ≥ E Q ϕ ( x 1 : T ∣ x 0 ) [ l o g P ( x 0 : T ) Q ϕ ( x 1 : T ∣ x 0 ) ] \begin{aligned} \log P(x_0) & =\log \int P(x_{0:T}) dx_{1:T} \\ & =\log \int \frac{P(x_{0:T}) dx_{1:T} Q_{\phi}(x_{1: T} \mid x_{0})}{Q_{\phi}(x_{1: T} \mid x_{0})} dx_{1:T} \\ & =\log \mathbb{E}_{Q_{\phi}(x_{1: T} \mid x_{0})}\left[\frac{P(x_{0:T})}{Q_{\phi}(x_{1: T} \mid x_{0})} \right] \\ & \geq \mathbb{E}_{Q_{\phi}(x_{1: T} \mid x_{0})}\left[log \frac{P(x_{0:T})}{Q_{\phi}(x_{1: T} \mid x_{0})} \right] \end{aligned} logP(x0)=log∫P(x0:T)dx1:T=log∫Qϕ(x1:T∣x0)P(x0:T)dx1:TQϕ(x1:T∣x0)dx1:T=logEQϕ(x1:T∣x0)[Qϕ(x1:T∣x0)P(x0:T)]≥EQϕ(x1:T∣x0)[logQϕ(x1:T∣x0)P(x0:T)]
贝叶斯公式推导:
l o g P ( x 0 ) = l o g P ( x 0 : T ) P ( x 1 : T ∣ x 0 ) = l o g P ( x 0 : T ) P ( x 1 : T ∣ x 0 ) ∫ Q ϕ ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ Q ϕ ( x 1 : T ∣ x 0 ) l o g P ( x 0 : T ) P ( x 1 : T ∣ x 0 ) d x 1 : T