《Understanding Diffusion Models: A Unified Perspective》阅读笔记1

《Understanding Diffusion Models: A Unified Perspective》阅读笔记1

原文链接

Pre1:条件独立与马尔科夫性

P(ABC)=P(AC)P(BC)P(BAC)=P(BC)P( AB| C) = P( A| C) P( B| C) \Rightarrow P( B| AC) = P( B| C)

  • C:事件表示现在;
  • A: 事件表示过去;
  • B: 事件表示未来;
    这样在条件独立的前提下,P(BAC)=P(BC)P(B|AC)=P(B|C)未来发生的概率只有现在有关,而与过去无关;

未来和过去并非绝对独立,但是当有现在作为条件时,未来与过去则无关系

条件独立无法得到绝对独立,绝对独立也无法得到条件独立!

Pre2:KL散度与高斯KL散度的表示

KL散度的定义,也是相对熵,可以表示为交叉熵(用QQ去拟合PP所需要的字节数)减去QQ自己的熵值(最小编码数量)

KL(PQ)=p(x)logp(x)q(x)dxKL(P||Q)=\int p(x)\log\frac{p(x)}{q(x)}dx

KL(PQ)=p(x)logp(x)q(x)dx=p(x)log(q(x))dx+p(x)log(p(x))dx=H(P,Q)H(P)KL(P||Q)=\int p(x)\log\frac{p(x)}{q(x)}dx=-\int p(x)\log(q(x))dx+\int p(x)\log(p(x))dx=H(P,Q)-H(P)

两个高斯分布的KL散度计算公式:

DKL(N(x;μx,Σx)N(y;μy,Σy))=12[logΣyΣxd+tr(Σy1Σx)+(μyμx)TΣy1(μyμx)]D_{\mathrm{KL}}(\mathcal{N}(\boldsymbol{x};\boldsymbol{\mu}_x,\boldsymbol{\Sigma}_x)\parallel\mathcal{N}(\boldsymbol{y};\boldsymbol{\mu}_y,\boldsymbol{\Sigma}_y))=\frac12\left[\log\frac{|\boldsymbol{\Sigma}_y|}{|\boldsymbol{\Sigma}_x|}-d+\mathrm{tr}(\boldsymbol{\Sigma}_y^{-1}\boldsymbol{\Sigma}_x)+(\boldsymbol{\mu}_y-\boldsymbol{\mu}_x)^T\boldsymbol{\Sigma}_y^{-1}(\boldsymbol{\mu}_y-\boldsymbol{\mu}_x)\right]

其中dd为随机变量xxyy的维度。

Pre3:Tweedie公式

特威迪公式指出, 指数族分布 的真值可以用样本的最大似然估计值(又称理论平均值)加上一定的修正最小值来估计。

例如,当只有一个样本的时候,经验均值会是其自己。评分函数会修正朴素最大似然的估计值朝向真正的均值移动(对最大似然估计方法的一种修正)。

当$$z\sim\mathcal{N}(z;\boldsymbol{\mu}_z,\boldsymbol{\Sigma}_z)$$时,特威迪公式可以表示为:

E[μzz]=z+Σzzlogp(z)\mathbb{E}\left[\boldsymbol{\mu}_z|\boldsymbol{z}\right]=\boldsymbol{z}+\boldsymbol{\Sigma}_z\nabla_{z}\log p(\boldsymbol{z})

Pre4:两个独立的高斯分布相加

XN(μ1,σ12)YN(μ2,σ22)\begin{aligned}X&\sim\mathcal{N}(\mu_1,\sigma_1^2)\\Y&\sim\mathcal{N}(\mu_2,\sigma_2^2)\end{aligned}

Z=X+YZ = X + Y

ZN(μ1+μ2,σ12+σ22)Z\sim\mathcal{N}(\mu_1+\mu_2,\sigma_1^2+\sigma_2^2)

扩散模型

主要流程:

  1. 层级VAE模型(引入变分后验,参数ϕ\phi,重要性采样)
  2. 引入ELBO(这里等于对数似然),优化
  3. 假设从样本到隐变量的过程均为高斯分布
  4. 类似的推导得到,重建项、先验匹配项、一致性项
  5. 通过条件独立,推导仅需要在一个变量上做采样估计期望的形式(重建项、先验匹配项、去噪匹配项)
  6. 通过贝叶斯公式计算去噪匹配项中真实的似然(xtx_t的重参数化技巧)
  7. 优化去噪匹配项中的KL散度等价于优化从xtx_tx0x_0的预测
  8. 第二种等价的解释:上式中的μ\mu转而参数化ϵ\epsilon
  9. 第三种等价的解释:通过Tweedie公式将μ\mu转而去参数化分数函数
  10. 条件生成:条件注入、Classifier Guidance 和 Classifier-Free Guidance

Note:

三种等价解释,是在KL散度优化中关于μq\mu_qμθ\mu_{\theta}(主要流程中第五项的对数似然ELBO形式可参见)表示方法不同而导致的神经网络建模对象不同。但,使用的输入都是一样的xtx_t和t$。

这三种分别为μθ\mu_{\theta}使用xtx_t预测x0x_0ϵ\epsilon和分数函数。

层级VAE

层级VAE模型

四个主要限制(假设):

  1. 隐变量维度与数据维度相同
  2. 前向的编码器为线性高斯
  3. 在最终时间步TT,隐变量为标准高斯分布
  4. 层级之间的马尔可夫性

首先,分层变分自编码器转换层级之间定义的马尔可夫性,而后验可以得到:

q(x1:Tx0)=t=1Tq(xtxt1)q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)=\prod_{t=1}^Tq(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})

前向的编码器(后验)被定义为:

q(xtxt1)=N(xt;αtxt1,(1αt)I)q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})=\mathcal{N}(\boldsymbol{x}_t;\sqrt{\alpha_t}\boldsymbol{x}_{t-1},(1-\alpha_t)\mathbf{I})

这样设计,使其可以保持方差:

xt=αtxt1+1αtϵt1=αt(αt1xt2+1αt1ϵt2)+1αtϵt1=αtαt1xt2+αtαtαt1ϵt2+1αtϵt1=αtαt1xt2+αtαtαt12+1αt2ϵt2=αtαt1xt2+αtαtαt1+1αtϵt2=αtαt1xt2+1αtαt1ϵt2==i=1tαix0+1i=1tαiϵ0=αˉtx0+1αˉtϵ0N(xt;αˉtx0,(1αˉt)I)\begin{aligned} \boldsymbol{x}_{t}& =\sqrt{\alpha_t}\boldsymbol{x}_{t-1}+\sqrt{1-\alpha_t}\boldsymbol{\epsilon}_{t-1}^* \\ &=\sqrt{\alpha_t}\left(\sqrt{\alpha_{t-1}}\boldsymbol{x}_{t-2}+\sqrt{1-\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2}^*\right)+\sqrt{1-\alpha_t}\boldsymbol{\epsilon}_{t-1}^* \\ &=\sqrt{\alpha_t\alpha_{t-1}}\boldsymbol{x}_{t-2}+\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2}^*+\sqrt{1-\alpha_t}\boldsymbol{\epsilon}_{t-1}^* \\ &=\sqrt{\alpha_t\alpha_{t-1}}\boldsymbol{x}_{t-2}+\sqrt{\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}^2+\sqrt{1-\alpha_t}^2}\boldsymbol{\epsilon}_{t-2} \\ &=\sqrt{\alpha_t\alpha_{t-1}}\boldsymbol{x}_{t-2}+\sqrt{\alpha_t-\alpha_t\alpha_{t-1}+1-\alpha_t}\boldsymbol{\epsilon}_{t-2} \\ &=\sqrt{\alpha_t\alpha_{t-1}}\boldsymbol{x}_{t-2}+\sqrt{1-\alpha_t\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2} \\ &=\ldots \\ &=\sqrt{\prod_{i=1}^t\alpha_i}\boldsymbol{x}_0+\sqrt{1-\prod_{i=1}^t\alpha_i}\boldsymbol{\epsilon}_0 \\ &=\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0+\sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon}_0 \\ &\sim\mathcal{N}(\boldsymbol{x}_t;\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0,(1-\bar{\alpha}_t) \mathbf{I}) \end{aligned}

无论如何设计α\alpha,为了达到隐变量最终为0均值高斯分布的目标。当tt逐渐到TT时,αˉt\sqrt{\bar{\alpha}_t}应当接近0。这样方差项就会接近为1。这样,保证了在整个过程中,每一步的方差都都不会大于1。

并且,最终隐变量将为标准高斯分布:

p(xT)=N(xT;0,I)p(\boldsymbol{x}_T)=\mathcal{N}(\boldsymbol{x}_T;\mathbf{0},\mathbf{I})

由于前向的编码过程(后验)是完全定义好的,因此相较于VAE,扩散模型只需要优化θ\theta这一部分的参数。

logp(x0)=Ezq(x1xTx0)[logp(x0)]不涉及对x0的积分,可以直接套期望=Ezq(x1xTx0)[logp(x0xT)p(x1xTx0)]=Ezq(x1xTx0)[logp(x0xT)q(x1xTx0)p(x1xTx0)q(x1xTx0)] =Ezq(x1xTx0)[logp(x0xT)q(x1xTx0)]+Ezq(x1xTx0)[logq(x1xTx0)p(x1xTx0)]=ELBO+DKL(q(x1xTx0)p(x1xTx0))没有近似过程,KL散度为0Eq(x1:Tx0)[logp(x0:T)q(x1:Tx0)](这里实际是相等)=Eq(x1:Tx0)[logp(xT)t=1Tpθ(xt1xt)t=1Tq(xtxt1)]马尔可夫性拆分=Eq(x1:Tx0)[logp(xT)pθ(x0x1)t=2Tpθ(xt1xt)q(xTxT1)t=1T1q(xtxt1)]提出来第一项和最后一项=Eq(x1:Tx0)[logp(xT)pθ(x0x1)t=1T1pθ(xtxt+1)q(xTxT1)t=1T1q(xtxt1)]统一标注=Eq(x1:Tx0)[logp(xT)pθ(x0x1)q(xTxT1)]+Eq(x1:Tx0)[logt=1T1pθ(xtxt+1)q(xtxt1)]从后推前的似然过程需要用参数拟合=Eq(x1:Tx0)[logpθ(x0x1)]+Eq(x1:Tx0)[logp(xT)q(xTxT1)]+Eq(x1:Tx0)[t=1T1logpθ(xtxt+1)q(xtxt1)]拆分=Eq(x1:Tx0)[logpθ(x0x1)]+Eq(x1:Tx0)[logp(xT)q(xTxT1)]+t=1T1Eq(x1:Tx0)[logpθ(xtxt+1)q(xtxt1)]期望的线性性=Eq(x1x0)[logpθ(x0x1)]+Eq(xT1,xTx0)[logp(xT)q(xTxT1)]+t=1T1Eq(xt1,xt,xt+1x0)[logpθ(xtxt+1)q(xtxt1)]Post1证明=Eq(x1x0)[logpθ(x0x1)]reconstruction termEq(xT1x0)[DKL(q(xTxT1)p(xT))]prior matching termt=1T1Eq(xt1,xt+1x0)[DKL(q(xtxt1)pθ(xtxt+1))]consistency term第二项类似于上面,是把与内测积分无关的提出来,变换到该形式\begin{aligned} \operatorname{log}p(\boldsymbol{x_0})& = E_{z\sim q(x_{1}\ldots x_{T}|x_{0})}[\log p(x_{0})] && \mathrm{不涉及对x_0的积分,可以直接套期望}\\ &=E_{z\sim q(x_{1}\ldots x_{T}|x_{0})}[\log\frac{p(x_{0}\ldots x_{T})}{p(x_{1}\ldots x_{T}|x_{0})}]\\ &=E_{z\sim q(x_{1}\ldots x_{T}|x_{0})}[\log\frac{p(x_{0}\ldots x_{T})q(x_{1}\ldots x_{T}|x_0)}{p(x_{1}\ldots x_{T}|x_{0})q(x_{1}\ldots x_{T}|x_0)}]\ \\ &=E_{z\sim q(x_{1}\ldots x_{T}|x_{0})}[\log\frac{p(x_{0}\ldots x_{T})}{q(x_{1}\ldots x_{T}|x_0)}] + E_{z\sim q(x_{1}\ldots x_{T}|x_{0})}[\log\frac{q(x_{1}\ldots x_{T}|x_0)}{p(x_{1}\ldots x_{T}|x_{0})}]\\ &=ELBO+D_{KL}(q(x_{1}\ldots x_{T}|x_0)||p(x_{1}\ldots x_{T}|x_{0}))&&\mathrm{没有近似过程,KL散度为0}\\ &\geq\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_{0:T})}{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\right] && \mathrm{(这里实际是相等)}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)\prod_{t=1}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{\prod_{t=1}^Tq(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{马尔可夫性拆分}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\prod_{t=2}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})\prod_{t=1}^{T-1}q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{提出来第一项和最后一项}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\prod_{t=1}^{T-1}p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})\prod_{t=1}^{T-1}q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{统一标注}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})}\right]+\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\prod_{t=1}^{T-1}\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{从后推前的似然过程需要用参数拟合}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]+\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})}\right]+\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\sum_{t=1}^{T-1}\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{拆分}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]+\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})}\right]+\sum_{t=1}^{T-1}\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{期望的线性性}\\ &=\mathbb{E}_{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]+\mathbb{E}_{q(\boldsymbol{x}_{T-1},\boldsymbol{x}_T|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_{T-1})}\right]+\sum_{t=1}^{T-1}\mathbb{E}_{q(\boldsymbol{x}_{t-1},\boldsymbol{x}_t,\boldsymbol{x}_{t+1}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_t|\boldsymbol{x}_{t+1})}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] && \mathrm{见Post1证明}\\ &=\underbrace{\mathbb{E}_{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}\left[\log p_\theta(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]}_{\text{reconstruction term}} -\underbrace{\mathbb{E}_{q(\boldsymbol{x}_{T-1}|\boldsymbol{x}_{0})}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_{T}|\boldsymbol{x}_{T-1})\parallel p(\boldsymbol{x}_{T}))\right]}_{\text{prior matching term}} \\ &-\sum_{t=1}^{T-1}\underbrace{\mathbb{E}_{q(\boldsymbol{x}_{t-1},\boldsymbol{x}_{t+1}|\boldsymbol{x}_0)}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})\parallel p_\theta(\boldsymbol{x}_t|\boldsymbol{x}_{t+1}))\right]}_{\text{consistency term}} \\ & \mathrm{第二项类似于上面,是把与内测积分无关的提出来,变换到该形式} \end{aligned}

这里注意到,对数似然等于变分下界加上变分后验与真实后验的KL散度。当这个KL散度为0,对数似然等于ELBO。

这里第一项为重建期望,从x0x_0对应的隐变量x1x_1里采样出x1x_1,通过神经网络θ\theta重建出x0x_0,可以通过与VAE类似的训练方法优化。

第二项衡量从xT1x_{T-1}xTx_T是否为高斯先验,由于这里的条件概率均为前向的,因此全部已经定义好了。只要T足够大,最后一项条件概率即为普通的(0,1)高斯分布。因此,可以直接计算为0。

第三项反映的是无论是前向过程还是反向过程都应该保持xtx_t的一致性。

但是,一致性项是定义在两个随机变量上的,使用蒙特卡罗估计带来的方差会很大。尤其是,这项需要累加,如果TT的值较大,估计值的方差会较大。

当前目标:优化对数似然,但是希望采样估计期望都是定义在一个变量上。

重新推导ELBO,此次表示后验的时候额外加上冗余的x0x_0重新推导:

q(xtxt1,x0)=q(xt1xt,x0)q(xtx0)q(xt1x0)q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)=\frac{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)q(\boldsymbol{x}_t|\boldsymbol{x}_0)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}

原本的x0x_0由于马尔可夫性质都是不必要的。

logp(x)Eq(x1:Tx0)[logp(x0:T)q(x1:Tx0)]这里应是相等=Eq(x1:Tx0)[logp(xT)t=1Tpθ(xt1xt)t=1Tq(xtxt1)]=Eq(x1:Tx0)[logp(xT)pθ(x0x1)t=2Tpθ(xt1xt)q(x1x0)t=2Tq(xtxt1)]拆分=Eq(x1:Tx0)[logp(xT)pθ(x0x1)t=2Tpθ(xt1xt)q(x1x0)t=2Tq(xtxt1,x0)]替换后验=Eq(x1:Tx0)[logpθ(xT)pθ(x0x1)q(x1x0)+logt=2Tpθ(xt1xt)q(xtxt1,x0)]拆分=Eq(x1:Tx0)[logp(xT)pθ(x0x1)q(x1x0)+logt=2Tpθ(xt1xt)q(xt1xt,x0)q(xtx0)q(xt1x0)]贝叶斯公式=Eq(x1:Tx0)logp(xT)pθ(x0x1)q(x1x0)+logt=2Tpθ(xt1xt)q(xt1xt,x0)q(xtx0)q(xt1x0)相加时前后相消=Eq(x1:Tx0)[logp(xT)pθ(x0x1)q(x1x0)+logq(x1x0)q(xTx0)+logt=2Tpθ(xt1xt)q(xt1xt,x0)]前后还各有剩余,并与第一项相消=Eq(x1:Tx0)[logp(xT)pθ(x0x1)q(xTx0)+t=2Tlogpθ(xt1xt)q(xt1xt,x0)]=Eq(x1:Tx0)[logpθ(x0x1)]+Eq(x1:Tx0)[logp(xT)q(xTx0)]+t=2TEq(x1:Tx0)[logpθ(xt1xt)q(xt1xt,x0)]拆分和期望的线性性=Eq(x1x0)[logpθ(x0x1)]+Eq(xTx0)[logp(xT)q(xTx0)]+t=2TEq(xt,xt1x0)[logpθ(xt1xt)q(xt1xt,x0)]Post1,消除与项内无关的变量=Eq(x1x0)[logpθ(x0x1)]reconstruction termDKL(q(xTx0)p(xT))prior matching termt=2TEq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]denoising matching term\begin{aligned} \log p(\boldsymbol{x})& \geq\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_{0})}\left[\log\frac{p(\boldsymbol{x}_{0:T})}{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_{0})}\right] && \mathrm{这里应是相等}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)\prod_{t=1}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{\prod_{t=1}^Tq(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right] \\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\prod_{t=2}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_1|\boldsymbol{x}_0)\prod_{t=2}^Tq(\boldsymbol{x}_t|\boldsymbol{x}_{t-1})}\right]&& \mathrm{拆分} \\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\prod_{t=2}^Tp_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_1|\boldsymbol{x}_0)\prod_{t=2}^Tq(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)}\right] && \mathrm{替换后验}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}+\log\prod_{t=2}^T\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)}\right] && \mathrm{拆分} \\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}+\log\prod_{t=2}^T\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{\frac{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)q(\boldsymbol{x}_t|\boldsymbol{x}_0)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}}\right] && \mathrm{贝叶斯公式} \\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left\lfloor\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}+\log\prod_{t=2}^T\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{\frac{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)\cancel{q(\boldsymbol{x}_t|\boldsymbol{x}_0)}}{\cancel{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}}}\right\rfloor && \mathrm{相加时前后相消}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{\cancel{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}}+\log\frac{\cancel{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}}{q(\boldsymbol{x}_T|\boldsymbol{x}_0)}+\log\prod_{t=2}^T\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)}\right] && \mathrm{前后还各有剩余,并与第一项相消}\\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)}{q(\boldsymbol{x}_T|\boldsymbol{x}_0)}+\sum_{t=2}^T\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)}\right] \\ &=\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]+\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_0)}\right]+\sum_{t=2}^T\mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)}\right] && \mathrm{拆分和期望的线性性}\\ &=\mathbb{E}_{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]+\mathbb{E}_{q(\boldsymbol{x}_T|\boldsymbol{x}_0)}\left[\log\frac{p(\boldsymbol{x}_T)}{q(\boldsymbol{x}_T|\boldsymbol{x}_0)}\right]+\sum_{t=2}^T\mathbb{E}_{q(\boldsymbol{x}_t,\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)}{q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)}\right] && \mathrm{见Post1,消除与项内无关的变量}\\ &=\underbrace{\mathbb{E}_{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right]}_{\text{reconstruction term}}-\underbrace{D_{\mathrm{KL}}(q(\boldsymbol{x}_T|\boldsymbol{x}_0)\parallel p(\boldsymbol{x}_T))}_{\text{prior matching term}}-\sum_{t=2}^T\underbrace{\mathbb{E}_{q(\boldsymbol{x}_t|\boldsymbol{x}_0)}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)\parallel p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t))\right]}_{\text{denoising matching term}} \end{aligned}

去噪扩散模型

这里第一项和上面第一项一样,均为可以通过蒙特卡洛估计和VAE一样优化。

第二项,不存在可以训练的参数,并且在基本假设下,这一项应当为0。

第三项为 去噪匹配项,这项期望参数化的似然反向过程pθ(xt1xt)p_{\theta}(x_{t-1}|x_t)可以作为真实的去噪步骤q(xt1xt,x0)q(x_{t-1}|x_t,x_0)的估计。这两个过程被尽可能地近似,通过最小化他们之间的KL散度。

由于以上关于ELBO地推导仅用到了马尔科夫假设。所以,对于任意的马尔可夫层级VAE模型,以上表达式都会是正确的。

然而,如果马尔可夫层级VAE模型的后验p(xtxt1)p(x_t|x_{t-1})是任意的(需要参数拟合),则由于要同时优化编码器与解码器,优化将会变得很困难。这也就是为什么,变分扩散模型会选择将编码确定为高斯过程(仅需要优化解码器)

主要目标:优化对数似然->优化ELBO->优化重建项(可直接计算)与去噪匹配项。
当前目标:计算去噪匹配项中的真实似然去噪过程,作为解码器的Ground Truth去优化。

q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)=\frac{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}{q(\boldsymbol{x}_t|\boldsymbol{x}_0)}

其中,q(xtxt1,x0)=q(xtxt1)=N(xt;αtxt1,(1αt)I)q(\boldsymbol{x}_t|\boldsymbol{x}_{t\boldsymbol{-}1},\boldsymbol{x}_0)=q(\boldsymbol{x}_t|\boldsymbol{x}_{t\boldsymbol{-}1})=\mathcal{N}(\boldsymbol{x}_t;\sqrt{\alpha_t}\boldsymbol{x}_{t\boldsymbol{-}1},(1-\alpha_t)\mathbf{I})是已经定好的。

在保方差证明中,已经得到

xtq(xtx0)N(xt;αˉtx0,(1αˉt)I)x_t\sim q(\boldsymbol{x}_t|\boldsymbol{x}_0) \sim \mathcal{N}(\boldsymbol{x}_t;\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0,(1-\bar{\alpha}_t) \mathbf{I})

同样地可以得到

q(xt1x0)q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)

因此,可以得到:

当前目标:求得真实去噪过程的分布
虽然高斯相除不一定是合法的概率分布,但是这里已经假设了其为概率密度
通过构造exp12(xμ)2σ2exp^{-\frac{1}{2}\frac{(x-\mu)^2}{\sigma^2}}的形式,求解其参数(保证其正比于正态分布)

q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)=N(xt;αtxt1,(1αt)I)N(xt1;αˉt1x0,(1αˉt1)I)N(xt;αˉtx0,(1αˉt)I)exp{[(xtαtxt1)22(1αt)+(xt1αˉt1x0)22(1αˉt1)(xtαˉtx0)22(1αˉt)]}σ仅与α有关,为常数,变正比=exp{12[(xtαtxt1)21αt+(xt1αˉt1x0)21αˉt1(xtαˉtx0)21αˉt]}=exp{12[(2αtxtxt1+αtxt12)1αt+(xt122αˉt1xt1x0)1αˉt1+C(xt,x0)]}xt1xt2x02项无关,也是常数exp{12[2αtxtxt11αt+αtxt121αt+xt121αˉt12αˉt1xt1x01αˉt1]}直接舍掉常数部分,变正比=exp{12[(αt1αt+11αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}归并一阶项和二阶项=exp{12[αt(1αˉt1)+1αt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12[αtαˉt+1αt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12[1αˉt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12(1αˉt(1αt)(1αˉt1))[xt122(αtxt1αt+αˉt1x01αˉt1)1αˉt(1αt)(1αˉt1)xt1]}提出来方差=exp{12(1αˉt(1αt)(1αˉt1))[xt122(αtxt1αt+αˉt1x01αˉt1)(1αt)(1αˉt1)1αˉtxt1]}提出来均值=exp{12(1(1αt)(1αˉt1)1αˉt)[xt122αt(1αˉt1)xt+αˉt1(1αt)x01αˉtxt1]}N(xt1;αt(1αˉt1)xt+αˉt1(1αt)x01αˉtμq(xt,x0),(1αt)(1αˉt1)1αˉtIΣq(t)x0xt为条件的均值和常数方差\begin{aligned} q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)& =\frac{q(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{x}_0)q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_0)}{q(\boldsymbol{x}_t|\boldsymbol{x}_0)} \\ &=\frac{\mathcal{N}(\boldsymbol{x}_t;\sqrt{\alpha_t}\boldsymbol{x}_{t-1},(1-\alpha_t)\mathbf{I})\mathcal{N}(\boldsymbol{x}_{t-1};\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0,(1-\bar{\alpha}_{t-1})\mathbf{I})}{\mathcal{N}(\boldsymbol{x}_t;\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0,(1-\bar{\alpha}_t)\mathbf{I})} \\ &\propto\exp\left\{-\left[\frac{(\boldsymbol{x}_t-\sqrt{\alpha_t}\boldsymbol{x}_{t-1})^2}{2(1-\alpha_t)}+\frac{(\boldsymbol{x}_{t-1}-\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0)^2}{2(1-\bar{\alpha}_{t-1})}-\frac{(\boldsymbol{x}_t-\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0)^2}{2(1-\bar{\alpha}_t)}\right]\right\} && \mathrm{\sigma 仅与 \alpha 有关,为常数,变正比}\\ &=\exp\left\{-\frac12\left[\frac{(\boldsymbol{x}_t-\sqrt{\alpha_t}\boldsymbol{x}_{t-1})^2}{1-\alpha_t}+\frac{(\boldsymbol{x}_{t-1}-\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0)^2}{1-\bar{\alpha}_{t-1}}-\frac{(\boldsymbol{x}_t-\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0)^2}{1-\bar{\alpha}_t}\right]\right\} \\ &=\exp\left\{-\frac12\left[\frac{(-2\sqrt{\alpha_t}\boldsymbol{x}_t\boldsymbol{x}_{t-1}+\alpha_t\boldsymbol{x}_{t-1}^2)}{1-\alpha_t}+\frac{(\boldsymbol{x}_{t-1}^2-2\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_{t-1}\boldsymbol{x}_0)}{1-\bar{\alpha}_{t-1}}+C(\boldsymbol{x}_t,\boldsymbol{x}_0)\right]\right\} && \mathrm{x_{t-1}与x_{t}^2和x_{0}^2项无关,也是常数}\\ &\propto\exp\left\{-\frac12\left[-\frac{2\sqrt{\alpha_t}\boldsymbol{x}_t\boldsymbol{x}_{t-1}}{1-\alpha_t}+\frac{\alpha_t\boldsymbol{x}_{t-1}^2}{1-\alpha_t}+\frac{\boldsymbol{x}_{t-1}^2}{1-\bar{\alpha}_{t-1}}-\frac{2\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_{t-1}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right]\right\} && \mathrm{直接舍掉常数部分,变正比} \\ & =\exp\left\{-\frac{1}{2}\left[(\frac{\alpha_t}{1-\alpha_t}+\frac{1}{1-\bar{\alpha}_{t-1}})\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} && \mathrm{归并一阶项和二阶项}\\ &=\exp\left\{-\frac{1}{2}\left[\frac{\alpha_t(1-\bar{\alpha}_{t-1})+1-\alpha_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac{1}{2}\left[\frac{\alpha_t-\bar{\alpha}_t+1-\alpha_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac{1}{2}\left[\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\boldsymbol{x}_{t-1}^2-2\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)\boldsymbol{x}_{t-1}\right]\right\} \\ &=\exp\left\{-\frac{1}{2}\left(\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\right)\left[\boldsymbol{x}_{t-1}^2-2\frac{\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)}{\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}}\boldsymbol{x}_{t-1}\right]\right\} && \mathrm{提出来方差}\\ &=\exp\left\{-\frac{1}{2}\left(\frac{1-\bar{\alpha}_t}{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}\right)\left[\boldsymbol{x}_{t-1}^2-2\frac{\left(\frac{\sqrt{\alpha_t}\boldsymbol{x}_t}{1-\alpha_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}\boldsymbol{x}_0}{1-\bar{\alpha}_{t-1}}\right)(1-\alpha_t)(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\boldsymbol{x}_{t-1}\right]\right\} && \mathrm{提出来均值}\\ &=\exp\left\{-\frac12\left(\frac1{\frac{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}}\right)\left[\boldsymbol{x}_{t-1}^2-2\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\boldsymbol{x}_0}{1-\bar{\alpha}_t}\boldsymbol{x}_{t-1}\right]\right\} \\ &\propto\mathcal{N}(\boldsymbol{x}_{t-1};\underbrace{\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\boldsymbol{x}_0}{1-\bar{\alpha}_t}}_{\mu_q(\boldsymbol{x}_t,\boldsymbol{x}_0)},\underbrace{\frac{(1-\alpha_t)(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\mathbf{I}}_{\Sigma_q(t)} && \mathrm{以x_0和x_t为条件的均值和常数方差}\\ \end{aligned}

正比于正态分布,且 自己本身也是概率分布(需要满足非负性和归一化的要求),这里也就是正态分布。也就是无论如何要有一样的趋势(相对大小是一样的)。所以下面替换的时候,直接用的这个正比于的正态分布作为真实的去噪分布。

μq(xt,x0)\mu_q(x_t,x_0)xtx_tx0x_0的函数。Σq(t)\Sigma_q(t)是关于时间的函数(每一个时间步的α\alpha已经被确定)。

当前目标:优化pθ(xt,t)p_{\theta} (x_t,t)尽可能接近真实似然去噪过程q(xt1xt,x0)q(x_{t-1}|x_t,x_0)

  1. 首先将pθp_{\theta}建模为高斯分布。
  2. 由于真实的去噪过程,方差已知,只建模均值。

argminDKL(q(xt1xt,x0)pθ(xt1xt))=argminDKL(N(xt1;μq,Σq(t))N(xt1;μθ,Σq(t)))=argminθ12[logΣq(t)Σq(t)d+tr(Σq(t)1Σq(t))+(μθμq)TΣq(t)1(μθμq)]参考高斯分布之间KL散度的计算公式=argminθ12[log1d+d+(μθμq)TΣq(t)1(μθμq)]=argminθ12[(μθμq)TΣq(t)1(μθμq)]=argminθ12[(μθμq)T(σq2(t)I)1(μθμq)]对角矩阵的逆为对角元素都取倒数=argminθ12σq2(t)[μθμq22]乘对角矩阵=向量每一项分别乘以对角元素\begin{aligned} &\arg\min D_{\mathrm{KL}}(q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)\parallel p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)) \\ &=\arg\min D_{\mathrm{KL}}(\mathcal{N}(\boldsymbol{x}_{t-1};\boldsymbol{\mu}_q,\boldsymbol{\Sigma}_q(t))\parallel\mathcal{N}(\boldsymbol{x}_{t-1};\boldsymbol{\mu}_{\boldsymbol{\theta}},\boldsymbol{\Sigma}_q(t))) \\ &\begin{aligned}=\arg\min_{\boldsymbol{\theta}}\frac{1}{2}\left[\log\frac{|\boldsymbol{\Sigma}_q(t)|}{|\boldsymbol{\Sigma}_q(t)|}-d+\operatorname{tr}(\boldsymbol{\Sigma}_q(t)^{-1}\boldsymbol{\Sigma}_q(t))+(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)^T\boldsymbol{\Sigma}_q(t)^{-1}(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)\right]\end{aligned} && \mathrm{参考高斯分布之间KL散度的计算公式}\\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2}\begin{bmatrix}\log1-d+d+(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)^T\boldsymbol{\Sigma}_q(t)^{-1}(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)\end{bmatrix} \\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2}\left[(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)^T\boldsymbol{\Sigma}_q(t)^{-1}(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q)\right] \\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2}\left[(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_{q})^{T}\left(\sigma_{q}^{2}(t)\mathbf{I}\right)^{-1}(\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_{q})\right] && \mathrm{对角矩阵的逆为对角元素都取倒数}\\ &\begin{aligned}&=\arg\min_{\boldsymbol{\theta}}\frac{1}{2\sigma_q^2(t)}\left[\left\|\boldsymbol{\mu}_{\boldsymbol{\theta}}-\boldsymbol{\mu}_q\right\|_2^2\right]\end{aligned} && \mathrm{乘对角矩阵=向量每一项分别乘以对角元素} \\ \end{aligned}

因此,优化KL散度的目标转换为优化两个概率分布的均值之间距离的二范数。由于真实的去噪分布的均值如下:

μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x01αˉt\boldsymbol{\mu}_q(\boldsymbol{x}_t,\boldsymbol{x}_0)=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\boldsymbol{x}_0}{1-\bar{\alpha}_t}

这里,我们优化的均值为μθ(xt,t)\mu_{\theta}(x_t,t)。为了尽可能使得优化准确,可以把μθ(xt,t)\mu_{\theta}(x_t,t)设置为:(这里xtx_t是已知的。所以我们用神经网络建模x0x_0的部分。)

μθ(xt,t)=αt(1αˉt1)xt+αˉt1(1αt)x^θ(xt,t)1αˉt\boldsymbol{\mu}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)=\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)}{1-\bar{\alpha}_t}

所以,我们仅需要使用神经网络参数化x^θ(xt,t)\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)(神经网络需要有额外输入tt去告网络输入是哪个xtx_t,尽可能实现参数共享)

argminθDKL(q(xt1xt,x0)pθ(xt1xt))=argminθDKL(N(xt1;μq,Σq(t))N(xt1;μθ,Σq(t)))=argminθ12σq2(t)[αt(1αˉt1)xt+αˉt1(1αt)x^θ(xt,t)1αˉtαt(1αˉt1)xt+αˉt1(1αt)x01αˉt22]=argminθ12σq2(t)[αˉt1(1αt)x^θ(xt,t)1αˉtαˉt1(1αt)x01αˉt22]=argminθ12σq2(t)[αˉt1(1αt)1αˉt(x^θ(xt,t)x0)22]=argminθ12σq2(t)αˉt1(1αt)2(1αˉt)2[x^θ(xt,t)x022]\begin{aligned} &\arg\min_{\boldsymbol{\theta}}D_{\mathrm{KL}}(q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)\parallel p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t)) \\ &=\arg\min_{\boldsymbol{\theta}}D_{\mathrm{KL}}(\mathcal{N}\left(\boldsymbol{x}_{t-1};\boldsymbol{\mu}_q,\boldsymbol{\Sigma}_q\left(t\right)\right)\parallel\mathcal{N}\left(\boldsymbol{x}_{t-1};\boldsymbol{\mu}_{\boldsymbol{\theta}},\boldsymbol{\Sigma}_q\left(t\right)\right)) \\ &=\underset{\boldsymbol{\theta}}{\arg\min}\frac{1}{2\sigma_q^2(t)}\left[\left\|\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_t,t)}{1-\bar{\alpha}_t}-\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})\boldsymbol{x}_t+\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)\boldsymbol{x}_0}{1-\bar{\alpha}_t}\right\|_2^2\right] \\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2\sigma_{q}^{2}(t)}\left[\left\|\frac{\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_{t})\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_{t},t)}{1-\bar{\alpha}_{t}}-\frac{\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_{t})\boldsymbol{x}_{0}}{1-\bar{\alpha}_{t}}\right\|_{2}^{2}\right] \\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2\sigma_{q}^{2}(t)}\left[\left\|\frac{\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_{t})}{1-\bar{\alpha}_{t}}\left(\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_{t},t)-\boldsymbol{x}_{0}\right)\right\|_{2}^{2}\right] \\ &=\arg\min_{\boldsymbol{\theta}}\frac{1}{2\sigma_{q}^{2}(t)}\frac{\bar{\alpha}_{t-1}(1-\alpha_{t})^{2}}{(1-\bar{\alpha}_{t})^{2}}\left[\left\|\hat{\boldsymbol{x}}_{\boldsymbol{\theta}}(\boldsymbol{x}_{t},t)-\boldsymbol{x}_{0}\right\|_{2}^{2}\right] \end{aligned}

此时,最小化KL散度的任务变成从xtx_t预测x0x_0的问题(推理时应当还是计算出后一步到前一步似然过程的均值和方差再做采样和去噪)。

argminθEtU{2,T}[Eq(xtx0)[DKL(q(xt1xt,x0)pθ(xt1xt))]]\arg\min_{\boldsymbol{\theta}}\mathbb{E}_{t\sim U\{2,T\}}\left[\mathbb{E}_{q(\boldsymbol{x}_t|\boldsymbol{x}_0)}\left[D_{\mathrm{KL}}(q(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t,\boldsymbol{x}_0)\parallel p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1}|\boldsymbol{x}_t))\right]\right]

最终,为了优化从第二步到第TT步期望的加和。可以优化以上表达式,先随机抽取样本,每个样本再随机抽取一个时间步,做梯度下降(将加和视为期望蒙特卡洛梯度估计,采样本顺序的问题还需要进一步考虑)。

结论

Post1:

Eq(x1:Tx0)[logpθ(x0x1)]=logpθ(x0x1)q(x1:Tx0)dx1dx2dxT=logpθ(x0x1)q(x2:Tx0,x1)q(x1x0)dx1dx2dxT=logpθ(x0x1)q(x1x0)(q(x2:Tx0,x1)dx2dxT)dx1提出来的部分与x2xT的积分无关=logpθ(x0x1)q(x1x0)dx1概率密度积分为1=Eq(x1x0)[logpθ(x0x1)]\begin{aligned} \mathbb{E}_{q(\boldsymbol{x}_{1:T}|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right] & = \int_{\ldots}\int \log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1) q(x_{1:T}|x_0)dx_1 dx_2\ldots dx_T \\ & =\int_{\ldots}\int \log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1) q(x_{2:T}|x_0,x_1)q(x_1|x_0)dx_1dx_2\ldots dx_T \\ & = \int \log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)q(x_{1}|x_0) (\int_{\ldots}\int q(x_{2:T}|x_{0},x_1)dx_2\ldots dx_T)dx_1 && \mathrm{提出来的部分与x_2到x_T的积分无关}\\ &= \int\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1) q(x_{1}|x_0)dx_1 && \mathrm{概率密度积分为1}\\ &= \mathbb{E}_{q(\boldsymbol{x}_1|\boldsymbol{x}_0)}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0|\boldsymbol{x}_1)\right] \end{aligned}

Post2:

对于积分或者求和的优化问题,可以转而将其视为对于其积分内部函数的期望的优化。这时,使用蒙特卡洛估计,使用单点或者小batch的数据去做梯度上升或者下降,减小单次计算的计算量。


《Understanding Diffusion Models: A Unified Perspective》阅读笔记1
https://fengxiang777.github.io/2024/08/05/《Understanding-Diffusion-Models-A-Unified-Perspective》/
作者
FengXiang777
发布于
2024年8月5日
许可协议