逆过程是从高斯噪声中恢复原始数据,我们可以假设它也是一个高斯分布,但是无法逐步地去拟合分布,所以需要构建一个参数分布来取做估计。逆扩散过程仍然是一个马尔科夫链过程。
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=1∏Tpθ(xt−1∣xt)pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)))
因为在加噪的过程中 β t ∈ ( 0 , 1 ) \beta_{t}\in(0,1) βt∈(0,1) 是一个很小的数,所以有理由假设逆扩散过程,即从 x T → x 0 x_{T}\rightarrow x_{0} xT→x0 也是一个高斯分布,即假设 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θ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))), 但是无法去逐步拟合这个分布(需要生成一堆的 x t x_{t} xt, 用类似于GMM那样去拟合 x t − 1 x_{t-1} xt−1, 同样的方法,依次拟合出 x t − 2 ⋯ x 0 x_{t-2}\cdots x_{0} xt−2⋯x0,则整个过程需要遍历整个数据集,会比较麻烦), 所以我们希望 构建一个参数网络来做估计 \color{red}构建一个参数网络来做估计 构建一个参数网络来做估计。
假设现有含参 θ \theta θ这样的一个网络 p θ ( x t − 1 ∣ x t ) p_{\theta}(\mathrm{x_{t-1}|x_{t}}) pθ(xt−1∣xt):
或者也可以叫:后验的扩散条件概率 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt−1∣xt,x0)分布是可以用公式表达的
也就是说,给定 x t x_{t} xt和 x 0 x_{0} x0,我们是可以计算出 x t − 1 x_{t-1} xt−1的, 并且我们假设它也是服从高斯分布的。
即正常的扩散过程的条件概率为 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_{0}) q(xt−1∣x0), 现在我们又知道了 x t x_{t} xt 的信息,所以有后验的扩散条件概率 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt−1∣xt,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π1e−2σ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(xt−1∣xt,x0)=N(xt−1;μ∼(xt,x0),βt∼I)
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(xt∣xt−1)=N(xt;1−βtxt−1,β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(xt∣x0)=N(x;αˉtx0,(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(xt−1∣xt,x0)=q(xt∣xt−1,x0)q(xt∣x0)q(xt−1∣x0)(q(xt∣xt−1,x0)MarkovPropertyq(xt∣xt−1))∝exp(−21(βt(xt−αtxt−1)2+1−αˉt−1(xt−1−αˉt−1x0)2−1−αˉt(xt−αˉtx0)2))=exp(−21((βtαt+1−αˉt−11)xt−12−(βt2αtxt+1−αˉt−12αˉt−1x0)xt−1+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}} xt−1 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−αˉt−11)=1−αˉt1−αˉt−1.β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αtxt+1−αˉt−1αˉt−1x0)/(βtαt+1−αˉt−11)=1−αˉtαt(1−αˉt−1)xt+1−αˉtβtαˉt−1x0
由上式可知,求得的 β 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=αˉtx0+1−αˉtzt,我们可以知道: 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=αˉt1(xt−1−αˉtzt)
将 x 0 x_{0} x0的表达式带入到 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_{t},x_{0}) q(xt−1∣xt,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−αˉt−1)xt+1−αˉtαˉt−1βt.αˉt1(xt−zt1−αˉt)=αt1(xt−1−αˉ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=1∏tαi
α ˉ t − 1 α ˉ t = 1 α t \frac{\sqrt{\bar\alpha_{t-1}}}{\sqrt{\bar\alpha_{t}}}=\frac{1}{\sqrt{\alpha_{t}}} αˉtαˉt−1=αt1
所以现在我们得到了:
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(xt−1∣xt,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 LVLB≤−logpθ(x0)+DKL(q(x1:T∣x0)∥pθ(x1:T∣x0))=−logpθ(x0)+Ex1:T∼q(x1:T∣x0)[logpθ(x0:T)/pθ(x0)q(x1:T∣x0)]=−logpθ(x0)+Eq[logpθ(x0:T)q(x1:T∣x0)+logpθ(x0)]=Eq[logpθ(x0:T)q(x1:T∣x0)]=交叉熵的上界 Eq(x0:T)[logpθ(x0:T)q(x1:T∣x0)]≥交叉熵 −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:T∼q(x1:T∣x0)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(xt∣xt−1)MarkovPropertyq(xt∣xt−1,x0)=q(xt−1,x0)q(xt,xt−1,x0)=q(xt−1,x0)q(xt−1∣xt,x0)q(xt∣x0)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:T∣x0)]=Eq[logpθ(xT)∏t=1Tpθ(xt−1∣xt)∏t=1Tq(xt∣xt−1)]=Eq[−logpθ(xT)+log∏t=1Tpθ(xt−1∣xt)∏t=1Tq(xt∣xt−1)]=Eq[−logpθ(xT)+t=1∑Tlogpθ(xt−1∣xt)q(xt∣xt−1)]=Eq[−logpθ(xT)+t=2∑Tlogpθ(xt−1∣xt)q(xt∣xt−1)+logpθ(x0∣x1)q(x1∣x0)]=Eq[−logpθ(xT)+t=2∑Tlog(pθ(xt−1∣xt)q(xt−1∣xt,x0).q(xt−1∣x0)q(xt∣x0))+logpθ(x0∣x1)q(x1∣x0)]=Eq[−logpθ(xT)+t=2∑Tlogpθ(xt−1∣xt)q(xt−1∣xt,x0)+t=2∑Tlogq(xt−1∣x0)q(xt∣x0)+logpθ(x0∣x1)q(x1∣x0)]=Eq[−logpθ(xT)+t=2∑Tlogpθ(xt−1∣xt)q(xt−1∣xt,x0)+logq(x1∣x0)q(xT∣x0)+logpθ(x0∣x1)q(x1∣x0)]=Eq[logpθ(xT)q(xT∣x0)+t=2∑Tlogpθ(xt−1∣xt)q(xt−1∣xt,x0)−logpθ(x0∣x1)]=DKL(q(xT∣x0)∣∣pθ(xT)) Eq[logpθ(xT)q(xT∣x0)]+t=2∑TDKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt)) Eq[t=2∑Tlogpθ(xt−1∣xt)q(xt−1∣xt,x0)]−L0 Eq[logpθ(x0∣x1)]=LT DKL(q(xT∣x0)∣∣pθ(xT))+t=2∑TLt−1 DKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))−L0 Eq[logpθ(x0∣x1)]=LT DKL(q(xT∣x0)∣∣pθ(xT))+t=1∑TLt−1 DKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))⑥
上面第五行说明:
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(xt∣xt−1)MarkovPropertyq(xt∣xt−1,x0)=q(xt−1∣x0)q(xt,xt−1∣x0)=q(xt−1∣x0)q(xt−1∣xt,x0).q(xt∣x0)
分析:
- L T L_{T} LT项 完全不含参:因为 q q q分布是完全无参的,而 p θ ( x T ) p_{\theta}(\mathbf{x}_{T}) pθ(xT)最后是标准的正态分布(各向同性的高斯分布),也不含参数
- 在倒数第2行的化简中, L 0 L_{0} L0可以放入 L t − 1 L_{t-1} Lt−1中,因为在 L t − 1 L_{t-1} Lt−1中, 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(x0∣x1,x0)∣∣pθ(x0∣x1))KLDivergenceDefinition−logpθ(x0∣x1)=−L0
q ( x 0 ∣ x 1 , x 0 ) = 1 q(x_{0}|x_{1},x_{0})=1 q(x0∣x1,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(xt−1∣xt,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θ(xt−1∣xt)∼N(xt−1;μθ(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)2−21⑤
推导可以看这篇____高斯分布的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 Lt−1=Eq[2σt21∣∣μt∼(xt,x0)−μθ(xt,t)∣∣2]+C
所以我们现在的训练目标就是:最小化 L t − 1 L_{t-1} Lt−1, 即 让 μ 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(xt−1∣xt,x0),为啥不直接用 q ( x t ∣ x 0 ) q(\mathrm{x_{t}}|\mathrm{x_{0}}) q(xt∣x0)或者 q ( x t ∣ x t − 1 ) q(\mathrm{x_{t}}|\mathrm{x_{t-1}}) q(xt∣xt−1)?难度是因为公式推导的过程中(式⑥)要用到 q ( x t − 1 ∣ x t , x 0 ) q(\mathrm{x_{t-1}}|\mathrm{x_{t}},\mathrm{x_{0}}) q(xt−1∣xt,x0)???