论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(三)
Understanding Diffusion Models: A Unified Perspective(三)
- 文章概括
文章概括
引用:
@article{luo2022understanding,title={Understanding diffusion models: A unified perspective},author={Luo, Calvin},journal={arXiv preprint arXiv:2208.11970},year={2022}
}
Luo, C., 2022. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970.
原文: https://arxiv.org/abs/2208.11970
代码、数据和视频:https://arxiv.org/abs/2208.11970
系列文章:
请在 《 《 《文章 》 》 》 专栏中查找
利用这一新公式,我们可以重新从公式 (37) 中的ELBO开始推导:
我们因此成功地推导出了一个可以用较低方差估计的ELBO解释,因为每一项最多是关于一个随机变量的期望。这种形式还有一个优雅的解释,当我们检查每个独立项时可以发现:
-
E q ( x 1 ∣ x 0 ) [ log p θ ( x 0 ∣ x 1 ) ] \mathbb{E}_{q(x_1|x_0)}[\log p_{\theta}(x_0|x_1)] Eq(x1∣x0)[logpθ(x0∣x1)]可以被解释为一个重构项;与普通VAE的ELBO中的类似项一样,该项可以通过蒙特卡洛估计进行近似和优化。
-
D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) D_{KL}(q(x_T|x_0) \| p(x_T)) DKL(q(xT∣x0)∥p(xT))表示最终加噪输入的分布与标准高斯先验的接近程度。在我们的假设下,该项没有可训练参数,并且也等于零。
-
E q ( x t ∣ x 0 ) [ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ] \mathbb{E}_{q(x_t|x_0)}[D_{KL}(q(x_{t-1}|x_t, x_0) \| p_{\theta}(x_{t-1}|x_t))] Eq(xt∣x0)[DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))]是一个去噪匹配项。我们学习期望的去噪转换步骤 p θ ( x t − 1 ∣ x t ) p_{\theta}(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)的近似。去噪步骤 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt−1∣xt,x0)可以作为一个真实信号,因为它定义了如何通过访问完全去噪的图像 x 0 x_0 x0,对噪声图像 x t x_t xt进行去噪。因此,当两个去噪步骤尽可能匹配时,该项的KL散度最小化。
需要补充注意的是,在两种ELBO推导(公式45和公式58)的过程中,只使用了马尔可夫假设;因此,这些公式对于任意的马尔可夫HVAE都适用。此外,当我们设置 T = 1 T=1 T=1时,两种对于VDM的ELBO解释都能准确重现普通VAE的ELBO公式,如公式19所示。
E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) p ( z ) q ϕ ( z ∣ x ) ] ( Chain Rule of Probability ) (17) = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] + E q ϕ ( z ∣ x ) [ log p ( z ) q ϕ ( z ∣ x ) ] ( Split the Expectation ) (18) = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] ⏟ reconstruction term − D K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ⏟ prior matching term ( Definition of KL Divergence ) (19) \begin{aligned} \mathbb{E}_{q_{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] &= \mathbb{E}_{q_{\phi}(z|x)} \left[ \log \frac{p_{\theta}(x|z) p(z)}{q_{\phi}(z|x)} \right] & \quad (\text{Chain Rule of Probability}) &\text{(17)} \\ &= \mathbb{E}_{q_{\phi}(z|x)} [\log p_{\theta}(x|z)] + \mathbb{E}_{q_{\phi}(z|x)} \left[ \log \frac{p(z)}{q_{\phi}(z|x)} \right] & \quad (\text{Split the Expectation}) &\text{(18)} \\ &= \underbrace{\mathbb{E}_{q_{\phi}(z|x)} [\log p_{\theta}(x|z)]}_\text{reconstruction term} - \underbrace{D_{KL}(q_{\phi}(z|x) \| p(z))}_\text{prior matching term} & \quad (\text{Definition of KL Divergence}) &\text{(19)} \end{aligned} Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=Eqϕ(z∣x)[logqϕ(z∣x)pθ(x∣z)p(z)]=Eqϕ(z∣x)[logpθ(x∣z)]+Eqϕ(z∣x)[logqϕ(z∣x)p(z)]=reconstruction term Eqϕ(z∣x)[logpθ(x∣z)]−prior matching term DKL(qϕ(z∣x)∥p(z))(Chain Rule of Probability)(Split the Expectation)(Definition of KL Divergence)(17)(18)(19)
在此ELBO推导中,大部分优化成本再次集中在求和项上,这一部分主导了重构项。对于任意复杂的马尔可夫HVAE,由于需要同时学习编码器,每个KL散度项 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) D_{KL}(q(x_{t-1}|x_t, x_0) \| p_{\theta}(x_{t-1}|x_t)) DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))都很难最小化。然而,在VDM中,我们可以利用高斯转换假设使优化变得可解。根据贝叶斯公式,我们有:
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-1}|x_t, x_0) = \frac{q(x_t|x_{t-1}, x_0) q(x_{t-1}|x_0)}{q(x_t|x_0)} q(xt−1∣xt,x0)=q(xt∣x0)q(xt∣xt−1,x0)q(xt−1∣x0)
正如我们已经知道的, q ( x t ∣ x t − 1 , x 0 ) = q ( x t ∣ x t − 1 ) = N ( x t ; α t x t − 1 , ( 1 − α t ) I ) q(x_t|x_{t-1}, x_0) = q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{\alpha_t}x_{t-1}, (1 - \alpha_t)\mathbf{I}) q(xt∣xt−1,x0)=q(xt∣xt−1)=N(xt;αtxt−1,(1−αt)I),这是基于我们关于编码器转换的假设(公式31: q ( x t ∣ x t − 1 ) = N ( x t ; α t x t − 1 , ( 1 − α t ) I ) q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{\alpha_t}x_{t-1}, (1 - \alpha_t)\mathbf{I}) q(xt∣xt−1)=N(xt;αtxt−1,(1−αt)I))。接下来需要推导的是 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)和 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)的形式。
幸运的是,由于VDM的编码器转换是线性高斯模型,这些推导也变得可行。回想一下,在重参数化技巧下,从 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xt∣xt−1)中采样的样本 x t ∼ q ( x t ∣ x t − 1 ) x_t \sim q(x_t|x_{t-1}) xt∼q(xt∣xt−1)可以被重写为:
x t = α t x t − 1 + 1 − α t ϵ with ϵ ∼ N ( ϵ ; 0 , I ) (59) x_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{1 - \alpha_t} \, \epsilon \quad \text{with} \quad \epsilon \sim \mathcal{N}(\epsilon; 0, \mathbf{I}) \tag{59} xt=αtxt−1+1−αtϵwithϵ∼N(ϵ;0,I)(59)
同样,从 q ( x t − 1 ∣ x t − 2 ) q(x_{t-1}|x_{t-2}) q(xt−1∣xt−2)中采样的样本 x t − 1 ∼ q ( x t − 1 ∣ x t − 2 ) x_{t-1} \sim q(x_{t-1}|x_{t-2}) xt−1∼q(xt−1∣xt−2)可以被重写为:
x t − 1 = α t − 1 x t − 2 + 1 − α t − 1 ϵ with ϵ ∼ N ( ϵ ; 0 , I ) (60) x_{t-1} = \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_{t-1}} \, \epsilon \quad \text{with} \quad \epsilon \sim \mathcal{N}(\epsilon; 0, \mathbf{I}) \tag{60} xt−1=αt−1xt−2+1−αt−1ϵwithϵ∼N(ϵ;0,I)(60)
然后, q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)的形式可以通过多次应用重参数化技巧递归推导出来。假设我们可以访问 2 T 2T 2T个随机噪声变量 { ϵ t ∗ , ϵ t } t = 0 T \{\epsilon_t^*, \epsilon_t\}_{t=0}^T {ϵt∗,ϵt}t=0T,且这些变量独立同分布, ϵ ∼ N ( ϵ ; 0 , I ) \epsilon \sim \mathcal{N}(\epsilon; 0, \mathbf{I}) ϵ∼N(ϵ;0,I)。那么,对于任意样本 x t ∼ q ( x t ∣ x 0 ) x_t \sim q(x_t|x_0) xt∼q(xt∣x0),我们可以将其重写为:
x t = α t x t − 1 + 1 − α t ϵ t − 1 ∗ (61) = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ t − 2 ∗ ) + 1 − α t ϵ t − 1 ∗ (62) = α t α t − 1 x t − 2 + α t − α t α t − 1 ϵ t − 2 ∗ + 1 − α t ϵ t − 1 ∗ (63) = α t α t − 1 x t − 2 + α t − α t α t − 1 2 + 1 − α t 2 ϵ t − 2 (64) = α t α t − 1 x t − 2 + α t − α t α t − 1 + 1 − α t ϵ t − 2 (65) = α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ t − 2 (66) = ⋯ (67) = ∏ i = 1 t α i x 0 + 1 − ∏ i = 1 t α i ϵ 0 (68) = α ˉ t x 0 + 1 − α ˉ t ϵ 0 (69) ∼ N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) (70) \begin{aligned} x_t &= \sqrt{\alpha_t} x_{t-1} + \sqrt{1 - \alpha_t} \epsilon_{t-1}^* &\text{(61)} \\ &= \sqrt{\alpha_t} \left( \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_{t-1}} \epsilon_{t-2}^* \right) + \sqrt{1 - \alpha_t} \epsilon_{t-1}^* &\text{(62)} \\ &= \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{\alpha_t - \alpha_t \alpha_{t-1}} \epsilon_{t-2}^* + \sqrt{1 - \alpha_t} \epsilon_{t-1}^* &\text{(63)} \\ &= \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{\sqrt{\alpha_t - \alpha_t \alpha_{t-1}}^2 + \sqrt{1 - \alpha_t}^2} \epsilon_{t-2} &\text{(64)} \\ &= \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{\alpha_t - \alpha_t \alpha_{t-1} + 1 - \alpha_t} \epsilon_{t-2} &\text{(65)} \\ &= \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_t \alpha_{t-1}} \epsilon_{t-2} &\text{(66)} \\ &= \cdots &\text{(67)} \\ &= \sqrt{\prod_{i=1}^t \alpha_i} x_0 + \sqrt{1 - \prod_{i=1}^t \alpha_i} \epsilon_0 &\text{(68)} \\ &= \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon_0 &\text{(69)} \\ &\sim \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1 - \bar{\alpha}_t) \mathbf{I}) &\text{(70)} \end{aligned} xt=αtxt−1+1−αtϵt−1∗=αt(αt−1xt−2+1−αt−1ϵt−2∗)+1−αtϵt−1∗=αtαt−1xt−2+αt−αtαt−1ϵt−2∗+1−αtϵt−1∗=αtαt−1xt−2+αt−αtαt−12+1−αt2ϵt−2=αtαt−1xt−2+αt−αtαt−1+1−αtϵt−2=αtαt−1xt−2+1−αtαt−1ϵt−2=⋯=i=1∏tαix0+1−i=1∏tαiϵ0=αˉtx0+1−αˉtϵ0∼N(xt;αˉtx0,(1−αˉt)I)(61)(62)(63)(64)(65)(66)(67)(68)(69)(70)
在公式(64)中,我们利用了以下事实:两个独立高斯随机变量的和仍然是一个高斯分布,其均值为两个均值的和,方差为两个方差的和。将 1 − α t ϵ t − 1 ∗ \sqrt{1 - \alpha_t} \epsilon_{t-1}^* 1−αtϵt−1∗解释为从高斯分布 N ( 0 , ( 1 − α t ) I ) \mathcal{N}(0, (1 - \alpha_t) \mathbf{I}) N(0,(1−αt)I)中采样的样本,将 α t − α t α t − 1 ϵ t − 2 ∗ \sqrt{\alpha_t - \alpha_t \alpha_{t-1}} \epsilon_{t-2}^* αt−αtαt−1ϵt−2∗解释为从高斯分布 N ( 0 , ( α t − α t α t − 1 ) I ) \mathcal{N}(0, (\alpha_t - \alpha_t \alpha_{t-1}) \mathbf{I}) N(0,(αt−αtαt−1)I)中采样的样本,则它们的和可以看作是一个从高斯分布 N ( 0 , ( 1 − α t + α t − α t α t − 1 ) I ) = N ( 0 , ( 1 − α t α t − 1 ) I ) \mathcal{N}(0, (1 - \alpha_t + \alpha_t - \alpha_t \alpha_{t-1}) \mathbf{I}) = \mathcal{N}(0, (1 - \alpha_t \alpha_{t-1}) \mathbf{I}) N(0,(1−αt+αt−αtαt−1)I)=N(0,(1−αtαt−1)I)中采样的随机变量。根据重参数化技巧,这一分布的样本可以表示为 1 − α t α t − 1 ϵ t − 2 \sqrt{1 - \alpha_t \alpha_{t-1}} \epsilon_{t-2} 1−αtαt−1ϵt−2,如公式(66)所示。
因此,我们已经推导出了 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)的高斯形式。此推导还可以被修改以得出描述 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)的高斯参数化形式。现在,知道 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)和 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)的形式后,我们可以通过代入贝叶斯公式展开来计算 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t, x_0) q(xt−1∣xt,x0)的形式:
在公式(75)中, C ( x t , x 0 ) C(x_t, x_0) C(xt,x0)是一个与 x t − 1 x_{t-1} xt−1无关的常数项,由 x t x_t xt、 x 0 x_0 x0和 α \alpha α值的组合计算得出;该常数项在公式(84)中被隐式返回,以完成平方形式的推导。
因此,我们已经证明,在每一步中, x t − 1 ∼ q ( x t − 1 ∣ x t , x 0 ) x_{t-1} \sim q(x_{t-1}|x_t, x_0) xt−1∼q(xt−1∣xt,x0)是服从正态分布的,其均值 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0)是 x t x_t xt和 x 0 x_0 x0的函数,而方差 Σ q ( t ) \Sigma_q(t) Σq(t)是 α \alpha α系数的函数。这些 α \alpha α系数在每个时间步都是已知且固定的;它们要么在建模为超参数时被永久设置,要么被视为试图对其建模的网络的当前推断输出。根据公式(84),我们可以将方差方程重写为 Σ q ( t ) = σ q 2 ( t ) I \Sigma_q(t) = \sigma_q^2(t)\mathbf{I} Σq(t)=σq2(t)I,其中:
σ q 2 ( t ) = ( 1 − α t ) ( 1 − α ˉ t − 1 ) 1 − α ˉ t (85) \sigma_q^2(t) = \frac{(1 - \alpha_t)(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} \tag{85} σq2(t)=1−αˉt(1−αt)(1−αˉt−1)(85)
为了使近似去噪转移步骤 p θ ( x t − 1 ∣ x t ) p_\theta(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),我们同样可以将其建模为一个高斯分布。此外,由于所有 α \alpha α项在每个时间步上都是已知且固定的,我们可以直接将近似去噪转移步骤的方差构造为 Σ q ( t ) = σ q 2 ( t ) I \Sigma_q(t) = \sigma_q^2(t)\mathbf{I} Σq(t)=σq2(t)I。然而,由于 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt−1∣xt)不以 x 0 x_0 x0为条件,我们必须将其均值 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t)参数化为 x t x_t xt的函数。
回忆一下,两高斯分布之间的KL散度为:
D K L ( N ( x ; μ x , Σ x ) ∣ ∣ N ( y ; μ y , Σ y ) ) = 1 2 [ log ∣ Σ y ∣ ∣ Σ x ∣ − d + tr ( Σ y − 1 Σ x ) + ( μ y − μ x ) T Σ y − 1 ( μ y − μ x ) ] (86) D_{KL}(\mathcal{N}(x; \mu_x, \Sigma_x) \,||\, \mathcal{N}(y; \mu_y, \Sigma_y)) = \frac{1}{2} \left[ \log \frac{|\Sigma_y|}{|\Sigma_x|} - d + \text{tr}(\Sigma_y^{-1} \Sigma_x) + (\mu_y - \mu_x)^T \Sigma_y^{-1} (\mu_y - \mu_x) \right] \tag{86} DKL(N(x;μx,Σx)∣∣N(y;μy,Σy))=21[log∣Σx∣∣Σy∣−d+tr(Σy−1Σx)+(μy−μx)TΣy−1(μy−μx)](86)
我们需要推导以下公式: D K L ( N ( x ; μ x , Σ x ) ∥ N ( y ; μ y , Σ y ) ) = 1 2 [ log ∣ Σ y ∣ ∣ Σ x ∣ − d + tr ( Σ y − 1 Σ x ) + ( μ y − μ x ) T Σ y − 1 ( μ y − μ x ) ] . D_{KL}(\mathcal{N}(x; \mu_x, \Sigma_x) \| \mathcal{N}(y; \mu_y, \Sigma_y)) = \frac{1}{2} \left[ \log \frac{|\Sigma_y|}{|\Sigma_x|} - d + \text{tr}(\Sigma_y^{-1} \Sigma_x) + (\mu_y - \mu_x)^T \Sigma_y^{-1} (\mu_y - \mu_x) \right]. DKL(N(x;μx,Σx)∥N(y;μy,Σy))=21[log∣Σx∣∣Σy∣−d+tr(Σy−1Σx)+(μy−μx)TΣy−1(μy−μx)].
1. KL 散度的定义
KL 散度定义为: D K L ( N ( x ; μ x , Σ x ) ∥ N ( y ; μ y , Σ y ) ) = ∫ N ( x ; μ x , Σ x ) log N ( x ; μ x , Σ x ) N ( x ; μ y , Σ y ) d x . D_{KL}(\mathcal{N}(x; \mu_x, \Sigma_x) \| \mathcal{N}(y; \mu_y, \Sigma_y)) = \int \mathcal{N}(x; \mu_x, \Sigma_x) \log \frac{\mathcal{N}(x; \mu_x, \Sigma_x)}{\mathcal{N}(x; \mu_y, \Sigma_y)} dx. DKL(N(x;μx,Σx)∥N(y;μy,Σy))=∫N(x;μx,Σx)logN(x;μy,Σy)N(x;μx,Σx)dx.
- N ( x ; μ x , Σ x ) \mathcal{N}(x; \mu_x, \Sigma_x) N(x;μx,Σx):分布 1 的概率密度函数。
- N ( x ; μ y , Σ y ) \mathcal{N}(x; \mu_y, \Sigma_y) N(x;μy,Σy):分布 2 的概率密度函数。
2. 多元高斯分布的概率密度函数
多元高斯分布的概率密度函数为: N ( x ; μ , Σ ) = 1 ( 2 π ) d ∣ Σ ∣ exp ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) . \mathcal{N}(x; \mu, \Sigma) = \frac{1}{\sqrt{(2\pi)^d |\Sigma|}} \exp\left( -\frac{1}{2} (x - \mu)^T \Sigma^{-1} (x - \mu) \right). N(x;μ,Σ)=(2π)d∣Σ∣1exp(−21(x−μ)TΣ−1(x−μ)).
- d d d:变量 x x x 的维度。
- ∣ Σ ∣ |\Sigma| ∣Σ∣:协方差矩阵的行列式,表示分布的范围大小。
- Σ − 1 \Sigma^{-1} Σ−1:协方差矩阵的逆,表示分布的形状。
3. KL 散度公式展开
将高斯分布的公式代入 KL 散度定义: D K L ( N ( x ; μ x , Σ x ) ∥ N ( x ; μ y , Σ y ) ) = ∫ N ( x ; μ x , Σ x ) log N ( x ; μ x , Σ x ) N ( x ; μ y , Σ y ) d x . D_{KL}(\mathcal{N}(x; \mu_x, \Sigma_x) \| \mathcal{N}(x; \mu_y, \Sigma_y)) = \int \mathcal{N}(x; \mu_x, \Sigma_x) \log \frac{\mathcal{N}(x; \mu_x, \Sigma_x)}{\mathcal{N}(x; \mu_y, \Sigma_y)} dx. DKL(N(x;μx,Σx)∥N(x;μy,Σy))=∫N(x;μx,Σx)logN(x;μy,Σy)N(x;μx,Σx)dx.
分子和分母的概率密度函数分别为: N ( x ; μ x , Σ x ) = 1 ( 2 π ) d ∣ Σ x ∣ exp ( − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ) , \mathcal{N}(x; \mu_x, \Sigma_x) = \frac{1}{\sqrt{(2\pi)^d |\Sigma_x|}} \exp\left( -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right), N(x;μx,Σx)=(2π)d∣Σx∣1exp(−21(x−μx)TΣx−1(x−μx)), N ( x ; μ y , Σ y ) = 1 ( 2 π ) d ∣ Σ y ∣ exp ( − 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) ) . \mathcal{N}(x; \mu_y, \Sigma_y) = \frac{1}{\sqrt{(2\pi)^d |\Sigma_y|}} \exp\left( -\frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) \right). N(x;μy,Σy)=(2π)d∣Σy∣1exp(−21(x−μy)TΣy−1(x−μy)).
因此,KL散度的积分为: D K L = ∫ N ( x ; μ x , Σ x ) log 1 ( 2 π ) d ∣ Σ x ∣ exp ( − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ) 1 ( 2 π ) d ∣ Σ y ∣ exp ( − 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) ) d x . D_{KL} = \int \mathcal{N}(x; \mu_x, \Sigma_x) \log \frac{\frac{1}{\sqrt{(2\pi)^d |\Sigma_x|}} \exp\left( -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right)}{\frac{1}{\sqrt{(2\pi)^d |\Sigma_y|}} \exp\left( -\frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) \right)} dx. DKL=∫N(x;μx,Σx)log(2π)d∣Σy∣1exp(−21(x−μy)TΣy−1(x−μy))(2π)d∣Σx∣1exp(−21(x−μx)TΣx−1(x−μx))dx.
4. 对数部分展开
分解对数部分的分子和分母: log N ( x ; μ x , Σ x ) N ( x ; μ y , Σ y ) = log 1 ( 2 π ) d ∣ Σ x ∣ 1 ( 2 π ) d ∣ Σ y ∣ + log exp ( − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ) exp ( − 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) ) . \log \frac{\mathcal{N}(x; \mu_x, \Sigma_x)}{\mathcal{N}(x; \mu_y, \Sigma_y)} = \log \frac{\frac{1}{\sqrt{(2\pi)^d |\Sigma_x|}}}{\frac{1}{\sqrt{(2\pi)^d |\Sigma_y|}}} + \log \frac{\exp\left( -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right)}{\exp\left( -\frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) \right)}. logN(x;μy,Σy)N(x;μx,Σx)=log(2π)d∣Σy∣1(2π)d∣Σx∣1+logexp(−21(x−μy)TΣy−1(x−μy))exp(−21(x−μx)TΣx−1(x−μx)).
第一部分:常数项 log 1 ( 2 π ) d ∣ Σ x ∣ 1 ( 2 π ) d ∣ Σ y ∣ = log ∣ Σ y ∣ ∣ Σ x ∣ = 1 2 log ∣ Σ y ∣ ∣ Σ x ∣ . \log \frac{\frac{1}{\sqrt{(2\pi)^d |\Sigma_x|}}}{\frac{1}{\sqrt{(2\pi)^d |\Sigma_y|}}} = \log \sqrt{\frac{|\Sigma_y|}{|\Sigma_x|}} = \frac{1}{2} \log \frac{|\Sigma_y|}{|\Sigma_x|}. log(2π)d∣Σy∣1(2π)d∣Σx∣1=log∣Σx∣∣Σy∣=21log∣Σx∣∣Σy∣.
第二部分:指数项 log exp ( − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ) exp ( − 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) ) = − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) + 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) . \log \frac{\exp\left( -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right)}{\exp\left( -\frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) \right)} = -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) + \frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y). logexp(−21(x−μy)TΣy−1(x−μy))exp(−21(x−μx)TΣx−1(x−μx))=−21(x−μx)TΣx−1(x−μx)+21(x−μy)TΣy−1(x−μy).
5. 将对数展开代入 KL 散度公式
KL 散度公式现在可以写为: D K L = ∫ N ( x ; μ x , Σ x ) [ 1 2 log ∣ Σ y ∣ ∣ Σ x ∣ − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) + 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) ] d x . D_{KL} = \int \mathcal{N}(x; \mu_x, \Sigma_x) \left[ \frac{1}{2} \log \frac{|\Sigma_y|}{|\Sigma_x|} -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) + \frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) \right] dx. DKL=∫N(x;μx,Σx)[21log∣Σx∣∣Σy∣−21(x−μx)TΣx−1(x−μx)+21(x−μy)TΣy−1(x−μy)]dx.
6. 分项计算 KL 散度
第一项:常数项 ∫ N ( x ; μ x , Σ x ) 1 2 log ∣ Σ y ∣ ∣ Σ x ∣ d x = 1 2 log ∣ Σ y ∣ ∣ Σ x ∣ . \int \mathcal{N}(x; \mu_x, \Sigma_x) \frac{1}{2} \log \frac{|\Sigma_y|}{|\Sigma_x|} dx = \frac{1}{2} \log \frac{|\Sigma_y|}{|\Sigma_x|}. ∫N(x;μx,Σx)21log∣Σx∣∣Σy∣dx=21log∣Σx∣∣Σy∣.
第二项: ( x − μ x ) T Σ x − 1 ( x − μ x ) (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) (x−μx)TΣx−1(x−μx) 的期望 在高斯分布 N ( x ; μ x , Σ x ) \mathcal{N}(x; \mu_x, \Sigma_x) N(x;μx,Σx) 中: E [ ( x − μ x ) T Σ x − 1 ( x − μ x ) ] = d , \mathbb{E}[(x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x)] = d, E[(x−μx)TΣx−1(x−μx)]=d, 其中 d d d 是高斯分布的维度。因此: ∫ N ( x ; μ x , Σ x ) [ − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ] d x = − 1 2 d . \int \mathcal{N}(x; \mu_x, \Sigma_x) \left[ -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right] dx = -\frac{1}{2} d. ∫N(x;μx,Σx)[−21(x−μx)TΣx−1(x−μx)]dx=−21d.
第三项: ( x − μ y ) T Σ y − 1 ( x − μ y ) (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) (x−μy)TΣy−1(x−μy) 的期望 我们将 ( x − μ y ) T Σ y − 1 ( x − μ y ) (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) (x−μy)TΣy−1(x−μy) 展开: ( x − μ y ) T Σ y − 1 ( x − μ y ) = ( x − μ x + μ x − μ y ) T Σ y − 1 ( x − μ x + μ x − μ y ) . (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) = (x - \mu_x + \mu_x - \mu_y)^T \Sigma_y^{-1} (x - \mu_x + \mu_x - \mu_y). (x−μy)TΣy−1(x−μy)=(x−μx+μx−μy)TΣy−1(x−μx+μx−μy).
展开后包含三项:
- E [ ( x − μ x ) T Σ y − 1 ( x − μ x ) ] = tr ( Σ y − 1 Σ x ) \mathbb{E}[(x - \mu_x)^T \Sigma_y^{-1} (x - \mu_x)] = \text{tr}(\Sigma_y^{-1} \Sigma_x) E[(x−μx)TΣy−1(x−μx)]=tr(Σy−1Σx)。
- 均值差项 ( μ x − μ y ) T Σ y − 1 ( μ x − μ y ) (\mu_x - \mu_y)^T \Sigma_y^{-1} (\mu_x - \mu_y) (μx−μy)TΣy−1(μx−μy)。
- 交叉项的期望为 0。
综合起来: ∫ N ( x ; μ x , Σ x ) 1 2 ( x − μ y ) T Σ y − 1 ( x − μ y ) d x = 1 2 [ tr ( Σ y − 1 Σ x ) + ( μ x − μ y ) T Σ y − 1 ( μ x − μ y ) ] . \int \mathcal{N}(x; \mu_x, \Sigma_x) \frac{1}{2} (x - \mu_y)^T \Sigma_y^{-1} (x - \mu_y) dx = \frac{1}{2} \left[ \text{tr}(\Sigma_y^{-1} \Sigma_x) + (\mu_x - \mu_y)^T \Sigma_y^{-1} (\mu_x - \mu_y) \right]. ∫N(x;μx,Σx)21(x−μy)TΣy−1(x−μy)dx=21[tr(Σy−1Σx)+(μx−μy)TΣy−1(μx−μy)].1. 积分和期望的关系
概率分布的期望定义是: E q ( x ) [ f ( x ) ] = ∫ f ( x ) q ( x ) d x . \mathbb{E}_{q(x)}[f(x)] = \int f(x) q(x) dx. Eq(x)[f(x)]=∫f(x)q(x)dx.
- f ( x ) f(x) f(x):对随机变量 x x x 的某个函数。
- q ( x ) q(x) q(x):概率密度函数,表示随机变量 x x x 的分布。
这说明,对于任意函数 f ( x ) f(x) f(x),其加权积分可以写成期望的形式。如果我们知道 q ( x ) q(x) q(x) 是一个高斯分布,那么积分可以简化为高斯分布的性质。
应用到 KL 散度公式中 KL 散度公式包含积分: D K L = ∫ q ( x ) log q ( x ) p ( x ) d x . D_{KL} = \int q(x) \log \frac{q(x)}{p(x)} dx. DKL=∫q(x)logp(x)q(x)dx. 其中, q ( x ) q(x) q(x) 是一个高斯分布: q ( x ) = N ( x ; μ x , Σ x ) . q(x) = \mathcal{N}(x; \mu_x, \Sigma_x). q(x)=N(x;μx,Σx).
任何积分项,例如: ∫ q ( x ) ( x − μ x ) T Σ x − 1 ( x − μ x ) d x , \int q(x) (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) dx, ∫q(x)(x−μx)TΣx−1(x−μx)dx, 都可以转换为期望: E q ( x ) [ ( x − μ x ) T Σ x − 1 ( x − μ x ) ] . \mathbb{E}_{q(x)} \left[(x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x)\right]. Eq(x)[(x−μx)TΣx−1(x−μx)].
2. 积分到期望的具体例子
我们来看 KL 散度中第二项: ∫ q ( x ) [ − 1 2 ( x − μ x ) T Σ x − 1 ( x − μ x ) ] d x . \int q(x) \left[ -\frac{1}{2} (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right] dx. ∫q(x)[−21(x−μx)TΣx−1(x−μx)]dx.
这可以转化为: − 1 2 E q ( x ) [ ( x − μ x ) T Σ x − 1 ( x − μ x ) ] . -\frac{1}{2} \mathbb{E}_{q(x)} \left[ (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) \right]. −21Eq(x)[(x−μx)TΣx−1(x−μx)].
3. 高斯分布的性质:二次型的期望值
在高斯分布 q ( x ) = N ( x ; μ x , Σ x ) q(x) = \mathcal{N}(x; \mu_x, \Sigma_x) q(x)=N(x;μx,Σx) 中,关于均值 μ x \mu_x μx 的二次型 ( x − μ x ) T A ( x − μ x ) (x - \mu_x)^T A (x - \mu_x) (x−μx)TA(x−μx) 的期望值有以下性质: E [ ( x − μ x ) T A ( x − μ x ) ] = tr ( A Σ x ) , \mathbb{E}[(x - \mu_x)^T A (x - \mu_x)] = \text{tr}(A \Sigma_x), E[(x−μx)TA(x−μx)]=tr(AΣx), 其中 A A A 是一个对称矩阵。
具体计算 对于 A = Σ x − 1 A = \Sigma_x^{-1} A=Σx−1,可以得出: E [ ( x − μ x ) T Σ x − 1 ( x − μ x ) ] = tr ( Σ x − 1 Σ x ) = tr ( I ) = d . \mathbb{E}[(x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x)] = \text{tr}(\Sigma_x^{-1} \Sigma_x) = \text{tr}(I) = d. E[(x−μx)TΣx−1(x−μx)]=tr(Σx−1Σx)=tr(I)=d.
- d d d 是高斯分布的维度。
因此,积分结果为: ∫ q ( x ) ( x − μ x ) T Σ x − 1 ( x − μ x ) d x = d . \int q(x) (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) dx = d. ∫q(x)(x−μx)TΣx−1(x−μx)dx=d.
4. 结果代入 KL 散度公式
将以上结果代入 KL 散度公式的第二项: − 1 2 ∫ q ( x ) ( x − μ x ) T Σ x − 1 ( x − μ x ) d x = − 1 2 d . -\frac{1}{2} \int q(x) (x - \mu_x)^T \Sigma_x^{-1} (x - \mu_x) dx = -\frac{1}{2} d. −21∫q(x)(x−μx)TΣx−1(x−μx)dx=−21d.
5. 总结
为什么积分可以转化为期望? 因为积分公式: ∫ f ( x ) q ( x ) d x = E q ( x ) [ f ( x ) ] , \int f(x) q(x) dx = \mathbb{E}_{q(x)}[f(x)], ∫f(x)q(x)dx=Eq(x)[f(x)], 本质上就是期望的定义,积分是以 q ( x ) q(x) q(x) 为权重的加权和。
高斯分布的二次型积分 对于高斯分布 q ( x ) = N ( x ; μ x , Σ x ) q(x) = \mathcal{N}(x; \mu_x, \Sigma_x) q(x)=N(x;μx,Σx),积分: ∫ q ( x ) ( x − μ x ) T A ( x − μ x ) d x , \int q(x) (x - \mu_x)^T A (x - \mu_x) dx, ∫q(x)(x−μx)TA(x−μx)dx, 等价于: E [ ( x − μ x ) T A ( x − μ x ) ] = tr ( A Σ x ) . \mathbb{E}[(x - \mu_x)^T A (x - \mu_x)] = \text{tr}(A \Sigma_x). E[(x−μx)TA(x−μx)]=tr(AΣx).
7. 合并结果
将所有项合并: D K L = 1 2 [ log ∣ Σ y ∣ ∣ Σ x ∣ − d + tr ( Σ y − 1 Σ x ) + ( μ y − μ x ) T Σ y − 1 ( μ y − μ x ) ] . D_{KL} = \frac{1}{2} \left[ \log \frac{|\Sigma_y|}{|\Sigma_x|} - d + \text{tr}(\Sigma_y^{-1} \Sigma_x) + (\mu_y - \mu_x)^T \Sigma_y^{-1} (\mu_y - \mu_x) \right]. DKL=21[log∣Σx∣∣Σy∣−d+tr(Σy−1Σx)+(μy−μx)TΣy−1(μy−μx)].
总结
每一步都基于 KL 散度定义、密度函数展开和高斯分布的积分性质:
- 常数项: 对数项直接得出。
- 二次型期望: 高斯分布的性质提供简化。
- 均值差异: 展开二次型并结合积分性质。
在我们的情况下,如果我们可以使两个高斯分布的方差完全相等,那么优化KL散度项就简化为最小化两个分布均值之间的差异:
arg min θ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) = arg min θ D K L ( N ( x t − 1 ; μ q , Σ q ( t ) ) ∣ ∣ N ( x t − 1 ; μ θ , Σ q ( t ) ) ) (87) = arg min θ 1 2 [ log ∣ Σ q ( t ) ∣ ∣ Σ q ( t ) ∣ − d + tr ( Σ q ( t ) − 1 Σ q ( t ) ) + ( μ θ − μ q ) T Σ q ( t ) − 1 ( μ θ − μ q ) ] (88) = arg min θ 1 2 [ log 1 − d + d + ( μ θ − μ q ) T Σ q ( t ) − 1 ( μ θ − μ q ) ] (89) = arg min θ 1 2 [ ( μ θ − μ q ) T Σ q ( t ) − 1 ( μ θ − μ q ) ] (90) = arg min θ 1 2 [ ( μ θ − μ q ) T ( σ q 2 ( t ) I ) − 1 ( μ θ − μ q ) ] (91) = arg min θ 1 2 σ q 2 ( t ) ∥ μ θ − μ q ∥ 2 2 (92) \begin{aligned} \arg \min_\theta \, & D_{KL}(q(x_{t-1}|x_t, x_0) \,||\, p_\theta(x_{t-1}|x_t)) \\ &= \arg \min_\theta \, D_{KL}(\mathcal{N}(x_{t-1}; \mu_q, \Sigma_q(t)) \,||\, \mathcal{N}(x_{t-1}; \mu_\theta, \Sigma_q(t))) &\text{(87)} \\ &= \arg \min_\theta \, \frac{1}{2} \left[ \log \frac{|\Sigma_q(t)|}{|\Sigma_q(t)|} - d + \text{tr}(\Sigma_q(t)^{-1} \Sigma_q(t)) + (\mu_\theta - \mu_q)^T \Sigma_q(t)^{-1} (\mu_\theta - \mu_q) \right] &\text{(88)} \\ &= \arg \min_\theta \, \frac{1}{2} \left[ \log 1 - d + d + (\mu_\theta - \mu_q)^T \Sigma_q(t)^{-1} (\mu_\theta - \mu_q) \right] &\text{(89)} \\ &= \arg \min_\theta \, \frac{1}{2} \left[ (\mu_\theta - \mu_q)^T \Sigma_q(t)^{-1} (\mu_\theta - \mu_q) \right] &\text{(90)} \\ &= \arg \min_\theta \, \frac{1}{2} \left[ (\mu_\theta - \mu_q)^T (\sigma_q^2(t)\mathbf{I})^{-1} (\mu_\theta - \mu_q) \right] &\text{(91)} \\ &= \arg \min_\theta \, \frac{1}{2\sigma_q^2(t)} \left\| \mu_\theta - \mu_q \right\|_2^2 &\text{(92)} \end{aligned} argθminDKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))=argθminDKL(N(xt−1;μq,Σq(t))∣∣N(xt−1;μθ,Σq(t)))=argθmin21[log∣Σq(t)∣∣Σq(t)∣−d+tr(Σq(t)−1Σq(t))+(μθ−μq)TΣq(t)−1(μθ−μq)]=argθmin21[log1−d+d+(μθ−μq)TΣq(t)−1(μθ−μq)]=argθmin21[(μθ−μq)TΣq(t)−1(μθ−μq)]=argθmin21[(μθ−μq)T(σq2(t)I)−1(μθ−μq)]=argθmin2σq2(t)1∥μθ−μq∥22(87)(88)(89)(90)(91)(92)
tr ( Σ q ( t ) − 1 Σ q ( t ) ) = tr ( I ) = d . \text{tr}(\Sigma_q(t)^{-1} \Sigma_q(t)) = \text{tr}(I) = d. tr(Σq(t)−1Σq(t))=tr(I)=d.
tr ( ⋅ ) \text{tr}(\cdot) tr(⋅) 是 矩阵的迹(trace)的符号。
1. 什么是迹?一个方阵 A A A 的迹定义为其主对角线元素的和。数学上表示为: tr ( A ) = ∑ i = 1 n A i i , \text{tr}(A) = \sum_{i=1}^n A_{ii}, tr(A)=i=1∑nAii, 其中:
- A i i A_{ii} Aii 是矩阵 A A A 的第 i i i 行第 i i i 列元素。
- n n n 是矩阵 A A A 的维度。
例子: 若矩阵 A A A 为: A = [ 2 1 3 0 4 5 6 7 8 ] , A = \begin{bmatrix} 2 & 1 & 3 \\ 0 & 4 & 5 \\ 6 & 7 & 8 \end{bmatrix}, A= 206147358 , 则 tr ( A ) \text{tr}(A) tr(A) 为主对角线元素之和: tr ( A ) = 2 + 4 + 8 = 14. \text{tr}(A) = 2 + 4 + 8 = 14. tr(A)=2+4+8=14.
2. 迹的性质
可加性: tr ( A + B ) = tr ( A ) + tr ( B ) . \text{tr}(A + B) = \text{tr}(A) + \text{tr}(B). tr(A+B)=tr(A)+tr(B).
标量因子: tr ( c A ) = c tr ( A ) , \text{tr}(cA) = c \, \text{tr}(A), tr(cA)=ctr(A), 其中 c c c 是一个常数。
迹的循环性质: 对于两个矩阵 A A A 和 B B B,如果 A B AB AB 和 B A BA BA 都定义良好(即矩阵的维度兼容),则: tr ( A B ) = tr ( B A ) . \text{tr}(AB) = \text{tr}(BA). tr(AB)=tr(BA).
这在推导高斯分布的 KL 散度时非常重要。迹与矩阵的特征值: tr ( A ) \text{tr}(A) tr(A) 等于矩阵 A A A 所有特征值的和。
3. 迹在 KL 散度中的作用
在高斯分布的 KL 散度公式中,迹用于衡量两个分布在协方差矩阵上的差异: D K L ( N ( x ; μ q , Σ q ) ∥ N ( x ; μ p , Σ p ) ) = 1 2 [ log ∣ Σ p ∣ ∣ Σ q ∣ − d + tr ( Σ p − 1 Σ q ) + ( μ p − μ q ) T Σ p − 1 ( μ p − μ q ) ] . D_{KL}(\mathcal{N}(x; \mu_q, \Sigma_q) \| \mathcal{N}(x; \mu_p, \Sigma_p)) = \frac{1}{2} \left[ \log \frac{|\Sigma_p|}{|\Sigma_q|} - d + \text{tr}(\Sigma_p^{-1} \Sigma_q) + (\mu_p - \mu_q)^T \Sigma_p^{-1} (\mu_p - \mu_q) \right]. DKL(N(x;μq,Σq)∥N(x;μp,Σp))=21[log∣Σq∣∣Σp∣−d+tr(Σp−1Σq)+(μp−μq)TΣp−1(μp−μq)].
- tr ( Σ p − 1 Σ q ) \text{tr}(\Sigma_p^{-1} \Sigma_q) tr(Σp−1Σq):表示协方差矩阵 Σ q \Sigma_q Σq 和 Σ p \Sigma_p Σp 在空间变换上的关系。
- 如果 Σ p = Σ q \Sigma_p = \Sigma_q Σp=Σq,则 tr ( Σ p − 1 Σ q ) = tr ( I ) = d \text{tr}(\Sigma_p^{-1} \Sigma_q) = \text{tr}(I) = d tr(Σp−1Σq)=tr(I)=d。
4. 直观理解迹的作用
空间几何解释:
- 矩阵的迹反映了该矩阵在空间中拉伸变换的规模。
- 在 KL 散度中, tr ( Σ p − 1 Σ q ) \text{tr}(\Sigma_p^{-1} \Sigma_q) tr(Σp−1Σq) 衡量了从 Σ p \Sigma_p Σp 到 Σ q \Sigma_q Σq 的变换是否一致。
在优化中的意义:
- 当 Σ q ≈ Σ p \Sigma_q \approx \Sigma_p Σq≈Σp 时,迹项会趋近于 d d d,表示两个分布的协方差矩阵非常接近。
这里我们将 μ q \mu_q μq简写为 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0),将 μ θ \mu_\theta μθ简写为 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t)以简化表达。换句话说,我们希望优化一个 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t),使其匹配 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0),而根据我们推导的公式(84), μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0)的形式为:
μ q ( x t , x 0 ) = α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t (93) \mu_q(x_t, x_0) = \frac{\sqrt{\alpha_t} (1 - \bar{\alpha}_{t-1}) x_t + \sqrt{\bar{\alpha}_{t-1}} (1 - \alpha_t) x_0}{1 - \bar{\alpha}_t} \tag{93} μq(xt,x0)=1−αˉtαt(1−αˉt−1)xt+αˉt−1(1−αt)x0(93)
由于 μ θ ( x t , t ) \mu_\theta(x_t, t) μθ(xt,t)同样以 x t x_t xt为条件,我们可以通过将其设置为以下形式,使其与 μ q ( x t , x 0 ) \mu_q(x_t, x_0) μq(xt,x0)尽可能接近:
μ θ ( x t , t ) = α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x ^ θ ( x t , t ) 1 − α ˉ t (94) \mu_\theta(x_t, t) = \frac{\sqrt{\alpha_t} (1 - \bar{\alpha}_{t-1}) x_t + \sqrt{\bar{\alpha}_{t-1} }(1 - \alpha_t) \hat{x}_\theta(x_t, t)}{1 - \bar{\alpha}_t} \tag{94} μθ(xt,t)=1−αˉtαt(1−αˉt−1)xt+αˉt−1(1−αt)x^θ(xt,t)(94)
其中, x ^ θ ( x t , t ) \hat{x}_\theta(x_t, t) x^θ(xt,t)由一个神经网络参数化,该神经网络试图从噪声图像 x t x_t xt和时间索引 t t t中预测 x 0 x_0 x0。然后,优化问题简化为:
arg min θ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) = arg min θ D K L ( N ( x t − 1 ; μ q , Σ q ( t ) ) ∣ ∣ N ( x t − 1 ; μ θ , Σ q ( t ) ) ) (95) = arg min θ 1 2 σ q 2 ( t ) [ ∥ α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x ^ θ ( x t , t ) 1 − α ˉ t − α t ( 1 − α ˉ t − 1 ) x t + α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t ∥ 2 2 ] (96) = arg min θ 1 2 σ q 2 ( t ) [ ∥ α ˉ t − 1 ( 1 − α t ) x ^ θ ( x t , t ) 1 − α ˉ t − α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t ∥ 2 2 ] (97) = arg min θ 1 2 σ q 2 ( t ) [ ∥ α ˉ t − 1 ( 1 − α t ) 1 − α ˉ t ( x ^ θ ( x t , t ) − x 0 ) ∥ 2 2 ] (98) = arg min θ 1 2 σ q 2 ( t ) α ˉ t − 1 ( 1 − α t ) 2 ( 1 − α ˉ t ) 2 [ ∥ x ^ θ ( x t , t ) − x 0 ∥ 2 2 ] (99) \begin{aligned} \arg \min_\theta \, & D_{KL}(q(x_{t-1}|x_t, x_0) \,||\, p_\theta(x_{t-1}|x_t)) \\ &= \arg \min_\theta \, D_{KL}(\mathcal{N}(x_{t-1}; \mu_q, \Sigma_q(t)) \,||\, \mathcal{N}(x_{t-1}; \mu_\theta, \Sigma_q(t))) &\text{(95)} \\ &= \arg \min_\theta \, \frac{1}{2\sigma_q^2(t)} \Bigg[\left\| \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1}) x_t + \sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t) \hat{x}_\theta(x_t, t)}{1 - \bar{\alpha}_t} - \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1}) x_t + \sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t) x_0}{1 - \bar{\alpha}_t} \right\|_2^2 \Bigg] &\text{(96)} \\ &= \arg \min_\theta \, \frac{1}{2\sigma_q^2(t)} \Bigg[ \left\| \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)\hat{x}_\theta(x_t, t)}{1 - \bar{\alpha}_t}- \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)x_0}{1 - \bar{\alpha}_t} \right\|_2^2 \Bigg] &\text{(97)} \\ &= \arg \min_\theta \, \frac{1}{2\sigma_q^2(t)} \Bigg[ \left\| \frac{\sqrt{\bar{\alpha}_{t-1}}(1 - \alpha_t)}{1 - \bar{\alpha}_t} \left( \hat{x}_\theta(x_t, t) - x_0 \right) \right\|_2^2 \Bigg] &\text{(98)} \\ &= \arg \min_\theta \, \frac{1}{2\sigma_q^2(t)} \frac{\bar{\alpha}_{t-1}(1 - \alpha_t)^2}{(1 - \bar{\alpha}_t)^2 } \Big[ \left\| \hat{x}_\theta(x_t, t) - x_0 \right\|_2^2 \Big]&\text{(99)} \end{aligned} argθminDKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))=argθminDKL(N(xt−1;μq,Σq(t))∣∣N(xt−1;μθ,Σq(t)))=argθmin2σq2(t)1[ 1−αˉtαt(1−αˉt−1)xt+αˉt−1(1−αt)x^θ(xt,t)−1−αˉtαt(1−αˉt−1)xt+αˉt−1(1−αt)x0 22]=argθmin2σq2(t)1[ 1−αˉtαˉt−1(1−αt)x^θ(xt,t)−1−αˉtαˉt−1(1−αt)x0 22]=argθmin2σq2(t)1[ 1−αˉtαˉt−1(1−αt)(x^θ(xt,t)−x0) 22]=argθmin2σq2(t)1(1−αˉt)2αˉt−1(1−αt)2[∥x^θ(xt,t)−x0∥22](95)(96)(97)(98)(99)
因此,优化VDM归结为学习一个神经网络,从任意加噪的图像版本中预测原始的真实图像 [5]。此外,最小化我们推导出的ELBO目标(公式58)中关于所有噪声水平的求和项,可以通过最小化关于所有时间步的期望来近似实现:
arg min θ E t ∼ U { 2 , T } [ E q ( x t ∣ x 0 ) [ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ) ] ] (100) \arg \min_\theta \, \mathbb{E}_{t \sim \mathcal{U}\{2, T\}} \left[ \mathbb{E}_{q(x_t|x_0)} \left[ D_{KL}(q(x_{t-1}|x_t, x_0) \,||\, p_\theta(x_{t-1}|x_t)) \right] \right] \tag{100} argθminEt∼U{2,T}[Eq(xt∣x0)[DKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))]](100)
这可以通过对时间步的随机采样进行优化。
相关文章:

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(三)
Understanding Diffusion Models: A Unified Perspective(三) 文章概括 文章概括 引用: article{luo2022understanding,title{Understanding diffusion models: A unified perspective},author{Luo, Calvin},journal{arXiv preprint arXiv:…...

利用机器学习创建基于位置的推荐程序
推荐系统被广泛应用于不同的应用程序中,用于预测用户对产品或服务的偏好或评价。在过去的几分钟或几小时里,你很可能在网上遇到过或与某种类型的推荐系统进行过互动。这些推荐系统有不同的类型,其中最突出的包括基于内容的过滤和协作过滤。在…...

每日一题 429. N 叉树的层序遍历
429. N 叉树的层序遍历 /*class Solution { public:vector<vector<int>> levelOrder(Node* root) {queue<Node*> que;que.push(root);vector<vector<int>> ans;if(root nullptr){return ans;}while(!que.empty()){int sizeQue que.size();vec…...

AIP-132 标准方法:List
编号132原文链接AIP-132: Standard methods: List状态批准创建日期2019-01-21更新日期2022-06-02 在许多API中,通常会向集合URI(例如 /v1/publishers/1/books )发出GET请求,获取集合中资源的列表。 面向资源设计(AIP…...

CSAPP学习:前言
前言 本书简称CS:APP。 背景知识 一些基础的C语言知识 如何阅读 Do-做系统 在真正的系统上解决具体的问题,或是编写和运行程序。 章节 2025-1-27 个人认为如下章节将会对学习408中的操作系统与计算机组成原理提供帮助,于是先凭借记忆将其简单…...
【统计的思想】假设检验(二)
假设检验是根据人为设定的显著水平,对被测对象的总体质量特性进行统计推断的方法。 如果我们通过假设检验否定了零假设,只是说明在设定的显著水平下,零假设成立的概率比较小,并不是说零假设就肯定不成立。如果零假设事实上是成立…...

KNN算法学习实践
1.理论学习 原文链接 ShowMeAI知识社区 2.案例实践 假如一套房子打算出租,但不知道市场价格,可以根据房子的规格(面积、房间数量、厕所数量、容纳人数等),在已有数据集中查找相似(K近邻)规格…...

数据可视化的图表
1.折线图反映了一段时间内事物连续的动态变化规律,适用于描述一个变量随另一个变量变化的趋势,通常用于绘制连续数据,适合数据点较多的情况。 2.散点图是以直角坐标系中各点的密集程度和变化趋势来表示两种现象间的相关关系,常用于显示和比较数值。当要在不考虑时间…...

动手学深度学习-卷积神经网络-3填充和步幅
目录 填充 步幅 小结 在上一节的例子(下图) 中,输入的高度和宽度都为3,卷积核的高度和宽度都为2,生成的输出表征的维数为22。 正如我们在 上一节中所概括的那样,假设输入形状为nhnw,卷积核形…...

【JS|第28期】new Event():前端事件处理的利器
日期:2025年1月24日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方…...

Spring Boot 中的事件发布与监听:深入理解 ApplicationEventPublisher(附Demo)
目录 前言1. 基本知识2. Demo3. 实战代码 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全&am…...

【Spring】Spring启示录
目录 前言 一、示例程序 二、OCP开闭原则 三、依赖倒置原则DIP 四、控制反转IOC 总结 前言 在软件开发的世界里,随着项目的增长和需求的变化,如何保持代码的灵活性、可维护性和扩展性成为了每个开发者必须面对的问题。传统的面向过程或基于类的设计…...

ospf动态路由配置,cost路径调整,ospf认证实验
一、实验拓扑如图: 接口ip配置网络 :10.17.12.* 10.17.13.* ,10.17.23.* 回环接口配置分别为 10.0.1.1 ,10.0.1.2,10.0.1.3对应三台路由器 ar1配置接口ip interface GigabitEthernet0/0/0 ip address 10.17.12.1…...

在Rust应用中访问.ini格式的配置文件
在Rust应用中访问.ini格式的配置文件,你可以使用第三方库,比如 ini 或 config. 下面是一个使用 ini 库的示例,该库允许你读取和解析.ini文件。 使用 ini 库 添加依赖 首先,你需要在你的 Cargo.toml 文件中添加 ini 库的依赖&am…...

批量处理多个模型的预测任务
#!/bin/bash# 检查是否传入必要的参数,若未传入参数则打印用法并退出 if [ "$#" -lt 1 ]; thenecho "用法: $0 <file_path>"echo "示例: $0 /home/aistudio/work/PaddleSeg/city/cityscapes_urls_extracted.txt"exit 1 fi# 读取…...

Java 编程初体验
Java学习资料 Java学习资料 Java学习资料 一、引言 在当今数字化的时代,编程已然成为一项极具价值的技能。而 Java 作为一门广泛应用于企业级开发、移动应用、大数据等众多领域的编程语言,吸引着无数初学者投身其中。当我们初次踏入 Java 编程的世界&…...

element-plus 的table section如何实现单选
如果是单选那么全新的按钮应该隐藏或者不可编辑的状态。但是我没找到改变成不可编辑的方法,只能采取隐藏 <template><!-- 注意要包一层div根元素,否则css样式可能会不生效,原因不详 --><div><el-table ref"proTab…...

【JavaEE进阶】图书管理系统 - 壹
目录 🌲序言 🌴前端代码的引入 🎋约定前后端交互接口 🚩接口定义 🍃后端服务器代码实现 🚩登录接口 🚩图书列表接口 🎄前端代码实现 🚩登录页面 🚩…...

牛客周赛 Round 77 题解
文章目录 A-时间表B-数独数组D-隐匿社交网络E-1or0 A-时间表 签到题 #include <bits/stdc.h> using namespace std;int main() {int a[6] {20250121,20250123,20250126,20250206,20250208,20250211};int n; cin >> n;cout << a[n - 1];return 0; }B-数独数…...

Mybatis配置文件详解
MyBatis通过XML或注解的方式将Java对象与数据库中的记录进行映射,极大地简化了数据访问层的开发。而在MyBatis的核心组成部分中,配置文件扮演着举足轻重的角色。它不仅定义了MyBatis的运行环境,还配置了数据源、事务管理、映射器等关键元素&a…...

《深度揭秘:TPU张量计算架构如何重塑深度学习运算》
在深度学习领域,计算性能始终是推动技术发展的关键因素。从传统CPU到GPU,再到如今大放异彩的TPU(张量处理单元),每一次硬件架构的革新都为深度学习带来了质的飞跃。今天,就让我们深入探讨TPU的张量计算架构…...

Java基础知识总结(二十二)--List接口
List本身是Collection接口的子接口,具备了Collection的所有方法。现在学习List体系特有的共性方法,查阅方法发现List的特有方法都有索引,这是该集合最大的特点。 List:有序(元素存入集合的顺序和取出的顺序一致),元素都…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器
一、定时器简介 STM32 中的定时器(TIM,Timer)是其最重要的外设之一,广泛用于时间管理、事件计数和控制等应用。 1.1 基本功能 定时功能:TIM定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中…...

算法随笔_27:最大宽度坡
上一篇:算法随笔_26: 按奇偶排序数组-CSDN博客 题目描述如下: 给定一个整数数组 nums,坡是元组 (i, j),其中 i < j 且 nums[i] < nums[j]。这样的坡的宽度为 j - i。 找出 nums 中的坡的最大宽度,如果不存在,返回 0 。 …...

无公网IP 外网访问本地部署 llamafile 大语言模型
llamafile 是一种AI大模型部署(或者说运行)的方案,它的特点就是可以将模型和运行环境打包成一个独立的可执行文件,这样就简化了部署流程。用户只需要下载并执行该文件,无需安装运行环境或依赖库,这大大提高…...

使用PC版本剪映制作照片MV
目录 制作MV模板时长调整拖动边缘缩短法分割删除法变速法整体调整法 制作MV 导入音乐 导入歌词 点击歌词 和片头可以修改字体: 还可以给字幕添加动画效果: 导入照片,自动创建照片轨: 修改片头字幕:增加两条字幕轨&…...

搭建 docxify 静态博客教程
首先,安装 node 环境安装 docxify ,参考官网:https://docsify.js.org/#/zh-cn/ npm i docsify-cli -g新建docs文件夹专门用来放文章,初始化命令 docsify init ./docs就会生成如下两个文件,index.html 入口文件&#…...

汽车OEMs一般出于什么目的来自定义Autosar CP一些内容
汽车OEMs在使用AUTOSAR CP(Classic Platform)协议时,可能会根据自身的特定需求对标准协议进行修改,形成自己的企业标准(企标)。这种修改通常是为了满足特定的硬件平台、功能需求、安全要求或优化性能。以下是一些常见的修改场景和例子: 1. 硬件平台适配 企业可能会根据…...

Vue.js Vuex 模块化管理
Vue.js Vuex 模块化管理 今天咱们来聊聊如何在 Vuex 中进行模块化管理。当你的 Vue.js 应用变得越来越庞大时,单一的状态管理可能会让人头疼。这时候,Vuex 的模块化功能就派上用场了。 为什么需要模块化? 想象一下,如果把所有的…...

分布式光纤应变监测是一种高精度、分布式的监测技术
一、土木工程领域 桥梁结构健康监测 主跨应变监测:在大跨度桥梁的主跨部分,如悬索桥的主缆、斜拉桥的斜拉索和主梁,分布式光纤应变传感器可以沿着这些关键结构部件进行铺设。通过实时监测应变情况,能够精确捕捉到车辆荷载、风荷…...