Diffusion Model合集 part2

五,逆扩散过程(Reverse Process)

逆过程是从高斯噪声中恢复原始数据,由于前向扩散过程中每个step加入的噪声很小,所以我们有理由可以假设逆扩散过程也是一个高斯分布,但是无法逐步地去拟合分布 p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathrm{x_{t-1}|x_{t}}) pθ(xt1xt)(需要先生成一堆的 x t \mathrm{x}_{t} xt,然后逐步去做类似于GMM那样的拟合 x t − 1 \mathbf{x}_{t-1} xt1,然后同理依次去拟合 x t − 2 \mathbf{x}_{t-2} xt2,…需要遍历整个数据集),所以需要构建一个网络来去做估计。逆扩散过程仍然是一个马尔科夫链过程。
在这里插入图片描述
p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) ) p_{\theta}(\mathrm{x_{0:T}})=p(\mathrm{x_{T}})\prod\limits_{t=1}^{T}p_{\theta}(\mathrm{x_{t-1}|x_{t}})\quad\quad\quad p_{\theta}(\mathrm{x_{t-1}|x_{t}})=\mathcal{N}(\mathrm{x_{t-1};\mu_{\theta}(x_{t},t)}, \Sigma_{\theta}(x_{t},t))) pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t)))

因为在加噪的过程中 β t ∈ ( 0 , 1 ) \beta_{t}\in(0,1) βt(0,1) 是一个很小的数,所以有理由假设逆扩散过程,即从 x T → x 0 x_{T}\rightarrow x_{0} xTx0 也是一个高斯分布,即假设 p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) ) p_{\theta}(\mathrm{x_{t-1}|x_{t}})=\mathcal{N}(\mathrm{x_{t-1};\mu_{\theta}(x_{t},t)}, \Sigma_{\theta}(x_{t},t))) pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))), 但是无法去逐步拟合这个分布(需要生成一堆的 x t x_{t} xt, 用类似于GMM那样去拟合 x t − 1 x_{t-1} xt1, 同样的方法,依次拟合出 x t − 2 ⋯ x 0 x_{t-2}\cdots x_{0} xt2x0,则整个过程需要遍历整个数据集,会比较麻烦), 所以我们希望 构建一个参数网络来做估计 \color{red}构建一个参数网络来做估计 构建一个参数网络来做估计

假设现有含参 θ \theta θ这样的一个网络 p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathrm{x_{t-1}|x_{t}}) pθ(xt1xt):

六,扩散过程中的后验的条件概率 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt1xt,x0)

或者也可以叫:后验的扩散条件概率 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt1xt,x0)分布是可以用公式表达的
也就是说,给定 x t x_{t} xt x 0 x_{0} x0,我们是可以计算出 x t − 1 x_{t-1} xt1的, 并且我们假设它也是服从高斯分布的。

即正常的扩散过程的条件概率为 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_{0}) q(xt1x0), 现在我们又知道了 x t x_{t} xt 的信息,所以有后验的扩散条件概率 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt1xt,x0)

注意:
高斯分布的概率密度函数是 f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}} f(x)=σ2π 1e2σ2(xμ)2
注意: a x 2 + b x = a ( x + b 2 a ) 2 + C ④ ax^{2}+bx=a(x+\frac{b}{2a})^{2}+C\quad\quad④ ax2+bx=a(x+2ab)2+C

q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ∼ ( x t , x 0 ) , β t ∼ I ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}})=\mathcal{N}(\mathrm{x_{t-1}; {\color{blue}\overset{\sim}{\mu}}}(\mathrm{x_{t}},\mathrm{x_{0}}),{\color{red}\overset{\sim}{\beta_{t}}}\mathrm{I}) q(xt1xt,x0)=N(xt1;μ(xt,x0),βtI)
Using Bayes’ rule, we have:

需要用到的前面的公式:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) , β t q(x_{t}|x_{t-1})=\mathcal{N}(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}I), \beta_{t} q(xtxt1)=N(xt;1βt xt1,βtI),βt是方差,标准差是 β t \sqrt{\beta_{t}} βt
q ( x t ∣ x 0 ) = N ( x ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(x_{t}|x_{0})=\mathcal{N}(x;\sqrt{\bar\alpha_{t}}x_{0},(1-\bar\alpha_{t})I) q(xtx0)=N(x;αˉt x0,(1αˉt)I),其中,方差为 ( 1 − α ˉ t ) I (1-\bar\alpha_{t})I (1αˉt)I, 即 σ 2 \sigma^{2} σ2
a x 2 + b x = a ( x + b 2 a ) 2 + C ax^{2}+bx=a(x+\frac{b}{2a})^{2}+C ax2+bx=a(x+2ab)2+C

q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) ( q ( x t ∣ x t − 1 , x 0 ) = M a r k o v P r o p e r t y q ( x t ∣ x t − 1 ) ) ∝ e x p ( − 1 2 ( ( x t − α t x t − 1 ) 2 β t + ( x t − 1 − α ˉ t − 1 x 0 ) 2 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ) = e x p ( − 1 2 ( ( α t β t + 1 1 − α ˉ t − 1 ) x t − 1 2 − ( 2 α t β t x t + 2 α ˉ t − 1 1 − α ˉ t − 1 x 0 ) x t − 1 + C ( x t , x 0 ) ) ) \begin{aligned} q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}})&=q(\mathrm{x_{t}}|\mathrm{x_{t-1}},\mathrm{x_{0}})\frac{q(\mathrm{x_{t-1}}|\mathrm{x_{0}})}{q(\mathrm{x_{t}}|\mathrm{x_{0}})}\quad\quad{\color{red}(}q(\mathrm{x_{t}}|\mathrm{x_{t-1}},\mathrm{x_{0}})\xlongequal{Markov Property}q(\mathrm{x_{t}}|\mathrm{x_{t-1}}){\color{red} )}\\ &\propto exp\left(-\frac{1}{2}\left(\frac{(\mathrm{x_{t}}-\sqrt{\alpha_{t}}\mathrm{x_{t-1}})^{2}}{\beta_{t}}+\frac{(\mathrm{x_{t-1}}-\sqrt{\bar\alpha_{t-1}}\mathrm{x_{0}})^{2}}{1-\bar\alpha_{t-1}}-\frac{(\mathrm{x_{t}}-\sqrt{\bar\alpha_{t}}\mathrm{x_{0}})^{2}}{1-\bar\alpha_{t}}\right)\right)\\ &=exp\left(-\frac{1}{2}\left({\color{red}\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar\alpha_{t-1}}\right)}\mathrm{x_{t-1}^{2}}-{\color{blue}\left(\frac{2\sqrt{\alpha_{t}}}{\beta_{t}}\mathrm{x_{t}}+\frac{2\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t-1}}\mathrm{x_{0}}\right)}\mathrm{x_{t-1}+C(x_{t},x_{0})}\right)\right) \end{aligned} q(xt1xt,x0)=q(xtxt1,x0)q(xtx0)q(xt1x0)q(xtxt1,x0)MarkovProperty q(xtxt1)exp(21(βt(xtαt xt1)2+1αˉt1(xt1αˉt1 x0)21αˉt(xtαˉt x0)2))=exp(21((βtαt+1αˉt11)xt12(βt2αt xt+1αˉt12αˉt1 x0)xt1+C(xt,x0)))
where C ( x t , x 0 ) \mathrm{C(x_{t},x_{0})} C(xt,x0) is some function not involving x t − 1 \mathrm{x_{t-1}} xt1 and details are omitted. Following the standard Gaussian density funcion, the mean and variance can be parameterized as follows(由式④得):

a x 2 + b x = a ( x + b 2 a ) 2 + C ax^{2}+bx=a(x+\frac{b}{2a})^{2}+C ax2+bx=a(x+2ab)2+C易得, μ = − b 2 a , σ 2 = 1 a \mu=-\frac{b}{2a},\sigma^{2}=\frac{1}{a} μ=2ab,σ2=a1
下面的 β t ∼ \overset{\sim}{\beta_{t}} βt即为 σ 2 \sigma^{2} σ2

β t ∼ = 1 / ( α t β t + 1 1 − α ˉ t − 1 ) = 1 − α ˉ t − 1 1 − α ˉ t . β t \overset{\sim}{\beta_{t}}=1/(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar\alpha_{t-1}})=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_{t}}.\beta_{t} βt=1/(βtαt+1αˉt11)=1αˉt1αˉt1.βt
μ t ∼ ( x t , x 0 ) = ( α t β t x t + α ˉ t − 1 1 − α ˉ t − 1 x 0 ) / ( α t β t + 1 1 − α ˉ t − 1 ) = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + β t α ˉ t − 1 1 − α ˉ t x 0 \mathrm{\overset{\sim}{\mu_{t}}(x_{t},x_{0})=(\frac{\sqrt{\alpha_{t}}}{\beta_{t}}x_{t}+ \frac{\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t-1}}x_{0})/(\frac{\alpha_{t}}{\beta_{t}}+ \frac{1}{1-\bar\alpha_{t-1}})}=\frac{\sqrt{\alpha_{t}}(1-\bar\alpha_{t-1})}{1-\bar\alpha_{t}}x_{t}+\frac{\beta_{t}\sqrt{\bar\alpha_{t-1}}}{1-\bar\alpha_{t}}x_{0} μt(xt,x0)=(βtαt xt+1αˉt1αˉt1 x0)/(βtαt+1αˉt11)=1αˉtαt (1αˉt1)xt+1αˉtβtαˉt1 x0

由上式可知,求得的 β t ∼ \overset{\sim}{\beta_{t}} βt 为一个常数

根据前面式③的 x 0 x_{0} x0 x t x_{t} xt之间的关系式, x t = α ˉ t x 0 + 1 − α ˉ t z t x_{t}=\sqrt{\bar\alpha_{t}}x_{0}+\sqrt{1-\bar\alpha_{t}}z_{t} xt=αˉt x0+1αˉt zt,我们可以知道: x 0 = 1 α ˉ t ( x t − 1 − α ˉ t z t ) x_{0}=\frac{1}{\sqrt{\bar\alpha_{t}}}(x_{t}-\sqrt{1-\bar\alpha_{t}}z_{t}) x0=αˉt 1(xt1αˉt zt)
x 0 x_{0} x0的表达式带入到 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt1xt,x0)的分布中( 则可以消去 x 0 , 即 μ t ∼ ( x t , x 0 ) 可以转化为 μ t ∼ ( x t , z t ) \color{red}则可以消去x_{0},即\overset{\sim}{\mu_{t}}(x_{t},x_{0})可以转化为\overset{\sim}{\mu_{t}}(x_{t},z_{t}) 则可以消去x0,μt(xt,x0)可以转化为μt(xt,zt)),可以重新给出此分布的均值表达式,这个时候表达式中不再含有 x 0 x_{0} x0,并且多了噪声项 z t z_{t} zt,这为后面我们设计神经网络提供了基础。也就是说,在给定 x 0 x_{0} x0的条件下,后验条件高斯分布的均值计算只与 x t x_{t} xt z t z_{t} zt有关。 z t z_{t} zt t t t时刻的随机正态分布变量,源自重参数化。
μ t ∼ ( x t , z t ) = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 β t 1 − α ˉ t . 1 α ˉ t ( x t − z t 1 − α ˉ t ) = 1 α t ( x t − β t 1 − α ˉ t z t ) \begin{aligned} \overset{\sim}{\mu_{t}}(\mathrm{x_{t},z_{t}})&=\frac{\sqrt{\alpha_{t}}(1-\bar\alpha_{t-1})}{1-\bar\alpha_{t}}\mathrm{x_{t}}+\frac{\sqrt{\bar\alpha_{t-1}}\beta_{t}}{1-\bar\alpha_{t}}.\frac{1}{\sqrt{\bar\alpha_{t}}}(\mathrm{x_{t}-z_{t}}\sqrt{1-\bar\alpha_{t}})\\ &={\color{blue}\frac{1}{\sqrt{\alpha_{t}}}(\mathrm{x_{t}-\frac{\beta_{t}}{\sqrt{1-\bar\alpha_{t}}}z_{t}})} \end{aligned} μt(xt,zt)=1αˉtαt (1αˉt1)xt+1αˉtαˉt1 βt.αˉt 1(xtzt1αˉt )=αt 1(xt1αˉt βtzt)

上面式子化简要用到的:
α t = 1 − β t α ˉ t = ∏ i = 1 t α i \alpha_{t}=1-\beta_{t}\quad\quad\quad\quad\bar\alpha_{t}=\prod\limits_{i=1}^{t}\alpha_{i} αt=1βtαˉt=i=1tαi
α ˉ t − 1 α ˉ t = 1 α t \frac{\sqrt{\bar\alpha_{t-1}}}{\sqrt{\bar\alpha_{t}}}=\frac{1}{\sqrt{\alpha_{t}}} αˉt αˉt1 =αt 1

所以现在我们得到了:
q ( x t − 1 ∣ x t , x 0 ) ∼ N (   μ t ∼ ( x t ,    z t ) , β t ∼   ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}})\sim\mathcal{N}(\,\overset{\sim}{\mu_{t}}(\mathrm{x_{t},\,\,z_{t}}),\overset{\sim}{\beta_{t}}\,) q(xt1xt,x0)N(μt(xt,zt),βt),实际上, x t \mathrm{x_{t}} xt出现在条件上,说明 x t \mathrm{x_{t}} xt已知,也就是 μ t ∼ \overset{\sim}{\mu_{t}} μt实际上是只关于 z t \mathrm{z_{t}} zt 的函数,所以我们现在的问题就是: 用网络来预测   z t \color{blue}用网络来预测 \,\mathrm{z_{t}} 用网络来预测zt

七,目标数据分布的似然函数

推导出似然函数就可以来进行网络优化了

我们可以在负对数似然函数的基础上加上一个KL散度(KL散度是非负的,KL散度非负证明),于是就后成立负对数似然的上界了,上界越小,负对数似然自然也就越小,那么对数似然就越大了。
− log ⁡ p θ ( x 0 ) ≤ − log ⁡ p θ ( x 0 ) + D K L ( q ( x 1 : T ∣ x 0 ) ∥ p θ ( x 1 : T ∣ x 0 ) ) = − log ⁡ p θ ( x 0 ) + E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) / p θ ( x 0 ) ] = − log ⁡ p θ ( x 0 ) + E q [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) + log ⁡ p θ ( x 0 ) ] = E q [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ]  Let  L V L B = E q ( x 0 : T ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] ⏟ 交叉熵的上界 ≥ − E q ( x 0 ) log ⁡ p θ ( x 0 ) ⏟ 交叉熵 \begin{aligned} -\log p_{\theta}\left(\mathbf{x}_{0}\right) & \leq-\log p_{\theta}\left(\mathbf{x}_{0}\right)+D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right) \| p_{\theta}\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)\right) \\ & =-\log p_{\theta}\left(\mathbf{x}_{0}\right)+\mathbb{E}_{\mathbf{x}_{1: T} \sim q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}\left[\log \frac{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}{p_{\theta}\left(\mathbf{x}_{0: T}\right) / p_{\theta}\left(\mathbf{x}_{0}\right)}\right] \\ & =-\log p_{\theta}\left(\mathbf{x}_{0}\right)+\mathbb{E}_{q}\left[\log \frac{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}{p_{\theta}\left(\mathbf{x}_{0: T}\right)}+\log p_{\theta}\left(\mathbf{x}_{0}\right)\right] \\ & =\mathbb{E}_{q}\left[\log \frac{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}{p_{\theta}\left(\mathbf{x}_{0: T}\right)}\right] \\ \text { Let } L_{\mathrm{VLB}} & =\underbrace{\mathbb{E}_{q\left(\mathbf{x}_{0: T}\right)}\left[\log \frac{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}{p_{\theta}\left(\mathbf{x}_{0: T}\right)}\right]}_{交叉熵的上界} \geq \underbrace{-\mathbb{E}_{q\left(\mathbf{x}_{0}\right)} \log p_{\theta}\left(\mathbf{x}_{0}\right)}_{交叉熵} \end{aligned} logpθ(x0) Let LVLBlogpθ(x0)+DKL(q(x1:Tx0)pθ(x1:Tx0))=logpθ(x0)+Ex1:Tq(x1:Tx0)[logpθ(x0:T)/pθ(x0)q(x1:Tx0)]=logpθ(x0)+Eq[logpθ(x0:T)q(x1:Tx0)+logpθ(x0)]=Eq[logpθ(x0:T)q(x1:Tx0)]=交叉熵的上界 Eq(x0:T)[logpθ(x0:T)q(x1:Tx0)]交叉熵 Eq(x0)logpθ(x0)

  • 上式中的第三行说明:
    E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) log ⁡ p θ ( x 0 ) = log ⁡ p θ ( x 0 ) \mathbb{E}_{\mathbf{x}_{1: T} \sim q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_{0}\right)}\log p_{\theta}(\mathbf{x_{0}})=\log p_{\theta}(\mathbf{x_{0}})\quad\quad Ex1:Tq(x1:Tx0)logpθ(x0)=logpθ(x0) 因为 E \mathbb{E} E的下面是关于 x 1 : T \mathbf{x_{1:T}} x1:T的分布,与 x 0 \mathbf{x}_{0} x0无关。
  • 上式中最后一行说明:
    − log ⁡ p θ ( x 0 ) -\log p_{\theta}\left(\mathbf{x}_{0}\right) logpθ(x0)的前面加上 E q ( x 0 ) \mathbb{E}_{q(\mathbf{x_{0}})} Eq(x0), 所以不等式的右边的 E q ( x 1 : T ) \mathbb{E}_{q\left(\mathbf{x}_{1: T}\right)} Eq(x1:T)就变为了 E q ( x 0 : T ) \mathbb{E}_{q\left(\mathbf{x}_{0: T}\right)} Eq(x0:T)

进一步可以写出如上公式的交叉熵的上界,接下来,我们可以对交叉熵的上界进行化简:(注意,我们的 目的是为了最小化 − log ⁡ p θ ( x 0 ) \color{red}目的是为了最小化-\log p_{\theta}\left(\mathbf{x}_{0}\right) 目的是为了最小化logpθ(x0),即最小化交叉熵的上界)

注意:
q ( x t ∣ x t − 1 ) = M a r k o v   P r o p e r t y q ( x t ∣ x t − 1 , x 0 ) = q ( x t , x t − 1 , x 0 ) q ( x t − 1 , x 0 ) = q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x 0 ) q ( x t − 1 , x 0 ) q(x_{t}|x_{t-1})\xlongequal{Markov\,Property}q(x_{t}|x_{t-1},x_{0})=\frac{q(x_{t},x_{t-1},x_{0})}{q(x_{t-1},x_{0})}=\frac{q(x_{t-1}|x_{t},x_{0})q(x_{t}|x_{0})q(x_{0})}{q(x_{t-1},x_{0})} q(xtxt1)MarkovProperty q(xtxt1,x0)=q(xt1,x0)q(xt,xt1,x0)=q(xt1,x0)q(xt1xt,x0)q(xtx0)q(x0)

L V L B = E q ( x 0 : T ) [ log ⁡ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) ] = E q [ log ⁡ ∏ t = 1 T q ( x t ∣ x t − 1 ) p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ] = E q [ − log ⁡ p θ ( x T ) + log ⁡ ∏ t = 1 T q ( x t ∣ x t − 1 ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 1 T log ⁡ q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t ∣ x t − 1 ) p θ ( x t − 1 ∣ x t ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ ( q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) . q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) + ∑ t = 2 T log ⁡ q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ − log ⁡ p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) + log ⁡ q ( x T ∣ x 0 ) q ( x 1 ∣ x 0 ) + log ⁡ q ( x 1 ∣ x 0 ) p θ ( x 0 ∣ x 1 ) ] = E q [ log ⁡ q ( x T ∣ x 0 ) p θ ( x T ) + ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) − log ⁡ p θ ( x 0 ∣ x 1 ) ] = E q [ log ⁡ q ( x T ∣ x 0 ) p θ ( x T ) ] ⏟ D K L ( q ( x T ∣ x 0 ) ∣ ∣ p θ ( x T ) ) + E q [ ∑ t = 2 T log ⁡ q ( x t − 1 ∣ x t , x 0 ) p θ ( x t − 1 ∣ x t ) ] ⏟ ∑ t = 2 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) − E q [ log ⁡ p θ ( x 0 ∣ x 1 ) ] ⏟ L 0 = D K L ( q ( x T ∣ x 0 ) ∣ ∣ p θ ( x T ) ) ⏟ L T + ∑ t = 2 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 − E q [ log ⁡ p θ ( x 0 ∣ x 1 ) ] ⏟ L 0 = D K L ( q ( x T ∣ x 0 ) ∣ ∣ p θ ( x T ) ) ⏟ L T + ∑ t = 1 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 ⑥ \begin{aligned} L_{VLB}&=\mathbb{E}_{q(\mathbf{x}_{0:T})}\left[\log \frac{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{0:T})}\right]\\ \\ &=\mathbb{E}_{q}\left[\log \frac{\prod_{t=1}^{T}q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}{p_{\theta}(\mathbf{x}_{T})\prod_{t=1}^{T}p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}\right]\\ \\ &=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\log \frac{\prod_{t=1}^{T}q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}{\prod_{t=1}^{T}p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}\right]=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\sum\limits_{t=1}^{T}\log \frac{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}\right]\\ \\ &=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}+\log \frac{q(\mathbf{x_{1}|x_{0}})}{p_{\theta}(\mathbf{x_{0}|x_{1}})}\right]\\ \\ &=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\sum\limits_{t=2}^{T}\log \left(\frac{q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}.\frac{q(\mathbf{x}_{t}|\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}|\mathbf{x}_{0})}\right)+\log \frac{q(\mathbf{x_{1}|x_{0}})}{p_{\theta}(\mathbf{x_{0}|x_{1}})}\right]\\ \\ &=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}+\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t}|\mathbf{x}_{0})}{q(\mathbf{x}_{t-1}|\mathbf{x}_{0})}+\log \frac{q(\mathbf{x_{1}|x_{0}})}{p_{\theta}(\mathbf{x_{0}|x_{1}})}\right]\\ \\ &=\mathbb{E}_{q}\left[-\log p_{\theta}(\mathbf{x}_{T})+\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}+\log \frac{q(\mathbf{x}_{T}|\mathbf{x}_{0})}{q(\mathbf{x}_{1}|\mathbf{x}_{0})}+\log \frac{q(\mathbf{x_{1}|x_{0}})}{p_{\theta}(\mathbf{x_{0}|x_{1}})}\right]\\ \\ &=\mathbb{E}_{q}\left[\log \frac{q(\mathbf{x}_{T}|\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{T})}+\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}-\log p_{\theta}(\mathbf{x_{0}|x_{1}})\right]\\ \\ &=\underbrace{\mathbb{E}_{q}\left[\log \frac{q(\mathbf{x}_{T}|\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{T})}\right]}_{D_{KL}(q(\mathbf{x}_{T}|\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{T}))}+\underbrace{\mathbb{E}_{q}\left[\sum\limits_{t=2}^{T}\log \frac{q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})}{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t})}\right]}_{\sum\limits_{t=2}^{T}D_{KL}(q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t}))}- \underbrace{\mathbb{E}_{q}\left[\log p_{\theta}(\mathbf{x_{0}|x_{1}})\right]}_{L_{0}}\\ \\ &=\underbrace{D_{KL}(q(\mathbf{x}_{T}|\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{T}))}_{L_{T}}+ \sum\limits_{t=2}^{T}\underbrace{D_{KL}(q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t}))}_{L_{t-1}}-\underbrace{\mathbb{E}_{q}\left[\log p_{\theta}(\mathbf{x_{0}|x_{1}})\right]}_{L_{0}}\\ \\ &=\underbrace{D_{KL}(q(\mathbf{x}_{T}|\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{T}))}_{L_{T}}+ \sum\limits_{t=1}^{T}\underbrace{D_{KL}(q(\mathbf{x}_{t-1}|\mathbf{x}_{t},\mathbf{x}_{0})||p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_{t}))}_{L_{t-1}}\quad\quad⑥ \end{aligned} LVLB=Eq(x0:T)[logpθ(x0:T)q(x1:Tx0)]=Eq[logpθ(xT)t=1Tpθ(xt1xt)t=1Tq(xtxt1)]=Eq[logpθ(xT)+logt=1Tpθ(xt1xt)t=1Tq(xtxt1)]=Eq[logpθ(xT)+t=1Tlogpθ(xt1xt)q(xtxt1)]=Eq[logpθ(xT)+t=2Tlogpθ(xt1xt)q(xtxt1)+logpθ(x0x1)q(x1x0)]=Eq[logpθ(xT)+t=2Tlog(pθ(xt1xt)q(xt1xt,x0).q(xt1x0)q(xtx0))+logpθ(x0x1)q(x1x0)]=Eq[logpθ(xT)+t=2Tlogpθ(xt1xt)q(xt1xt,x0)+t=2Tlogq(xt1x0)q(xtx0)+logpθ(x0x1)q(x1x0)]=Eq[logpθ(xT)+t=2Tlogpθ(xt1xt)q(xt1xt,x0)+logq(x1x0)q(xTx0)+logpθ(x0x1)q(x1x0)]=Eq[logpθ(xT)q(xTx0)+t=2Tlogpθ(xt1xt)q(xt1xt,x0)logpθ(x0x1)]=DKL(q(xTx0)∣∣pθ(xT)) Eq[logpθ(xT)q(xTx0)]+t=2TDKL(q(xt1xt,x0)∣∣pθ(xt1xt)) Eq[t=2Tlogpθ(xt1xt)q(xt1xt,x0)]L0 Eq[logpθ(x0x1)]=LT DKL(q(xTx0)∣∣pθ(xT))+t=2TLt1 DKL(q(xt1xt,x0)∣∣pθ(xt1xt))L0 Eq[logpθ(x0x1)]=LT DKL(q(xTx0)∣∣pθ(xT))+t=1TLt1 DKL(q(xt1xt,x0)∣∣pθ(xt1xt))

上面第五行说明:
q ( x t ∣ x t − 1 ) = M a r k o v P r o p e r t y q ( x t ∣ x t − 1 , x 0 ) = q ( x t , x t − 1 ∣ x 0 ) q ( x t − 1 ∣ x 0 ) = q ( x t − 1 ∣ x t , x 0 ) . q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) q(x_{t}|x_{t-1})\xlongequal{Markov Property}q(x_{t}|x_{t-1},x_{0})=\frac{q(x_{t},x_{t-1}|x_{0})}{q(x_{t-1}|x_{0})}=\frac{q(x_{t-1}|x_{t},x_{0}).q(x_{t}|x_{0})}{q(x_{t-1}|x_{0})} q(xtxt1)MarkovProperty q(xtxt1,x0)=q(xt1x0)q(xt,xt1x0)=q(xt1x0)q(xt1xt,x0).q(xtx0)
分析:

  1. L T L_{T} LT项 完全不含参:因为 q q q分布是完全无参的,而 p θ ( x T ) p_{\theta}(\mathbf{x}_{T}) pθ(xT)最后是标准的正态分布(各向同性的高斯分布),也不含参数
  2. 在倒数第2行的化简中, L 0 L_{0} L0可以放入 L t − 1 L_{t-1} Lt1中,因为在 L t − 1 L_{t-1} Lt1中, t = 1 t=1 t=1时,有 D K L ( q ( x 0 ∣ x 1 , x 0 ) ∣ ∣ p θ ( x 0 ∣ x 1 ) ) = K L   D i v e r g e n c e   D e f i n i t i o n − log ⁡ p θ ( x 0 ∣ x 1 ) = − L 0 D_{KL}(q(x_{0}|x_{1},x_{0})||p_{\theta}(x_{0}|x_{1}))\xlongequal{KL\,Divergence\,Definition}-\log p_{\theta}(x_{0}|x_{1})=-L_{0} DKL(q(x0x1,x0)∣∣pθ(x0x1))KLDivergenceDefinition logpθ(x0x1)=L0
    q ( x 0 ∣ x 1 , x 0 ) = 1 q(x_{0}|x_{1},x_{0})=1 q(x0x1,x0)=1,因为在条件中已经知道了 x 0 x_{0} x0

q ( x t − 1 ∣ x t , x 0 ) ∼ N (   μ t ∼ ( x t ,    z t ) , β t ∼   ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}})\sim\mathcal{N}(\,\overset{\sim}{\mu_{t}}(\mathrm{x_{t},\,\,z_{t}}),\overset{\sim}{\beta_{t}}\,)\quad\quad q(xt1xt,x0)N(μt(xt,zt),βt)实际上 x t , β t ∼ \mathrm{x_{t}},\overset{\sim}{\beta_{t}} xt,βt已知,即只有 μ t ∼ ( z t ) \color{red}\overset{\sim}{\mu_{t}}(z_{t}) μt(zt)未知

p θ ( x t − 1 ∣ x t ) ∼ N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) ) p_{\theta}(\mathrm{x_{t-1}|x_{t}})\sim\mathcal{N}(\mathrm{x_{t-1};\mu_{\theta}(x_{t},t)}, \Sigma_{\theta}(x_{t},t))) pθ(xt1xt)N(xt1;μθ(xt,t),Σθ(xt,t)))也为高斯分布;在论文中将其方差 Σ θ ( x t , t ) \Sigma_{\theta}(x_{t},t) Σθ(xt,t) 设置程一个与 β \beta β 相关的常数,因此 可训练的参数只存在于其均值 μ θ ( x t , t ) 中 \color{red}可训练的参数只存在于其均值 \mu_{\theta}(x_{t},t)中 可训练的参数只存在于其均值μθ(xt,t)

由于上面的 q , p θ q,p_{\theta} q,pθ均为高斯分布,所以它们的KL Divergence一定可以求出来。

上式中, L 0 L_{0} L0在DDPM原论文中由于选择了固定方差,故 L T L_{T} LT为常数,而 L 0 相当于从连续空间到离散空间的解码 l o s s ? ? ? ? 这里咋理解? \color{red}L_{0}相当于从连续空间到离散空间的解码loss\quad????这里咋理解? L0相当于从连续空间到离散空间的解码loss????这里咋理解?, 这里可以仿照VAE或自回归模型中的做法,将连续的高斯分布转换成离散的分布,具体公式见DDPM论文Section3.3或者见Improved Diffusion源码讲解那期视频。

对于两个单一变量的高斯分布 p p p q q q 而言,它们的KL散度为:

K L ( p , q ) = l o g σ 2 σ 1 + σ 2 + ( μ 1 − μ 2 ) 2 2 σ 2 2 − 1 2 ⑤ KL(p,q)=log\frac{\sigma_{2}}{\sigma_{1}}+\frac{\sigma^{2}+(\mu_{1}-\mu_{2})^{2}}{2\sigma_{2}^{2}}-\frac{1}{2}\quad\quad⑤ KL(p,q)=logσ1σ2+2σ22σ2+(μ1μ2)221
推导可以看这篇____高斯分布的KL散度公式

因为参数只在 μ t ∼ \overset{\sim}{\mu_{t}} μt μ θ \mu_{\theta} μθ中,所以我们只着重关注式⑤中间的那一项,其他的用常数C表示

L t − 1 = E q [ 1 2 σ t 2 ∣ ∣ μ t ∼ ( x t , x 0 ) − μ θ ( x t , t ) ∣ ∣ 2 ] + C L_{t-1}=\mathbb{E}_{q}\left[\frac{1}{2\sigma_{t}^{2}}||\overset{\sim}{\mu_{t}}(\mathbf{x}_{t},\mathbf{x}_{0})-\mu_{\theta}(\mathbf{x}_{t},t)||^{2}\right]+C Lt1=Eq[2σt21∣∣μt(xt,x0)μθ(xt,t)2]+C

所以我们现在的训练目标就是:最小化 L t − 1 L_{t-1} Lt1, 即 让 μ t ∼ 和 μ θ 尽可能地接近 \color{red}让\overset{\sim}{\mu_{t}}和\mu_{\theta}尽可能地接近 μtμθ尽可能地接近

既然这里的loss是从KL divergence出发的,或者说是与分布有关的,那我们可以设计一个黑箱子神经网络,把它称之为 D θ D_{\theta} Dθ网络。对于 D θ D_{\theta} Dθ网络,输入是 x t x_{t} xt和时间编码 t t t, ( x 0 x_{0} x0是数据集,是已知的),对于输出是什么,取决于我们的建模目标。

我的疑惑: \color{red}我的疑惑: 我的疑惑:
对于扩散过程,为什么要弄出来个 q ( x t − 1 ∣ x t , x 0 ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}}) q(xt1xt,x0),为啥不直接用 q ( x t ∣ x 0 ) q(\mathrm{x_{t}}|\mathrm{x_{0}}) q(xtx0)或者 q ( x t ∣ x t − 1 ) q(\mathrm{x_{t}}|\mathrm{x_{t-1}}) q(xtxt1)?难度是因为公式推导的过程中(式⑥)要用到 q ( x t − 1 ∣ x t , x 0 ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}}) q(xt1xt,x0)???

猜你喜欢

转载自blog.csdn.net/weixin_43845922/article/details/128383477
今日推荐