08.Diffusion Model数学原理分析(上)


部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索。

Diffusion Model回顾

前情回顾[07.Diffusion Model概述](https://blog.csdn.net/oldmao_2001/article/details/1341964 78)
在这里插入图片描述
VAE和Diffusion Model在构架上比较相似:
在这里插入图片描述

Diffusion Model算法

Training

在这里插入图片描述
第一行的repeat代表循环,执行2~5行,直到收敛停止。
第二行的 x 0 ∼ q ( x 0 ) x_0\sim q(x_0) x0q(x0)中的 x 0 x_0 x0表示清晰的图片,整个语句表示采样一张图片。
第三行表示从 { 1 , ⋯   , T } \{1,\cdots,T\} {1,,T}中采样一个整数 t t t T T T是一个很大的数字。
第四行表示从Normal Distribution中采样一个噪音 ϵ \epsilon ϵ
在这里插入图片描述
第五行比较复杂,先看:
α ˉ t x 0 + 1 − α ˉ t ϵ \sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon αˉt x0+1αˉt ϵ

这里表示将清晰的图片与噪音按权重进行相加得到的结果:
在这里插入图片描述

这里的权重: α ˉ t ∈ → s m a l l e r { α ˉ 1 , α ˉ 2 , ⋯   , α ˉ T } \bar{\alpha}_t \in \xrightarrow[smaller]{\{\bar{\alpha}_1,\bar{\alpha}_2,\cdots,\bar{\alpha}_T\}} αˉt{αˉ1,αˉ2,,αˉT} smaller
这里的 α ˉ 1 \bar{\alpha}_1 αˉ1 α ˉ T \bar{\alpha}_T αˉT是从大到小的关系。若从 T T T中采样到的 t t t越大,则 α ˉ t \sqrt{\bar{\alpha}_t} αˉt 越小, 1 − α ˉ t \sqrt{1-\bar{\alpha}_t} 1αˉt 越大,表示二者相加时噪音占的权重就越大。
然后将权重相加结果丢进Noise predictor: ϵ θ \epsilon_\theta ϵθ
ϵ θ ( α ˉ t x 0 + 1 − α ˉ t ϵ , t ) \epsilon_\theta(\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\epsilon,t) ϵθ(αˉt x0+1αˉt ϵ,t)
然后计算预测结果与真实噪音的差异,并更新Noise predictor参数,使其预测结果越接近真实噪音越好。
需要注意的是,和上节课程中讲的有亿点点不一样,之前原理课中介绍Diffusion模型加噪音是逐步加的,在论文的具体实作上却是一步到位的,后面有推导为什么可以这样做:
在这里插入图片描述

Inference

在这里插入图片描述
第一步,先从Normal Distribution中采样一个噪音 x T x_T xT
在这里插入图片描述
第二步,循环执行3,4步,共 T T T
第三步,再从Normal Distribution中采样一个噪音 z z z
第四步中:
x t x_t xt是第 t t t个步骤得到的结果:
在这里插入图片描述
第四步 x t − 1 x_{t-1} xt1的公式可用下图表示,黄色部分忘记标上 δ t \delta_t δt,此外还有两组权重: { α ˉ 1 , α ˉ 2 , ⋯   , α ˉ T } \{\bar{\alpha}_1,\bar{\alpha}_2,\cdots,\bar{\alpha}_T\} {αˉ1,αˉ2,,αˉT} { α 1 , α 2 , ⋯   , α T } \{{\alpha}_1,{\alpha}_2,\cdots,{\alpha}_T\} {α1,α2,,αT}

在这里插入图片描述
在开始数学推导之前,先简单回顾图像生成模型的本质(上节课其实有讲)。

图像生成模型的本质目标

从一个已知的简单分布,例如:mean是0,每个维度的variance是1的高斯分布,采样出一个向量 z z z,丢进网络 G G G,得到一张图片:
在这里插入图片描述
我们希望找到一个网络 G G G,使其生成的x与实际图片的分布越接近越好
在这里插入图片描述
对于文字生成图片任务也类似,只不过是多加了一个文字输入作为限制条件:
在这里插入图片描述
这里一段文字对应的图片可以有无数种答案,因此也是一个分布,比较上面两种模型,有没有其实差异并不大,因此后面的数学推导为了简便,先不考虑文字的输入。

MLE vs KL

上面考虑两个分布越接近越好,在数学上求解一种思路就是使用MLE(Maximum Likelihood Estimation),将网络 G G G的参数记为 θ \theta θ,则生成图片的结果记为: P θ ( x ) P_\theta(x) Pθ(x),而实际图片(训练数据)记为: P d a t a ( x ) P_{data}(x) Pdata(x)
在这里插入图片描述
则任务可以描述为:
从训练数据 P d a t a ( x ) P_{data}(x) Pdata(x)采样得到: { x 1 , x 2 , ⋯   , x m } \{x^1,x^2,\cdots,x^m\} {x1,x2,,xm},若可计算 P θ ( x i ) P_\theta(x^i) Pθ(xi),则根据MLE可知,我们要找到一组参数 θ ∗ \theta^* θ,使得:
θ ∗ = a r g max ⁡ θ ∏ i = 1 m P θ ( x i ) \theta^*=arg\max_\theta \prod_{i=1}^m P_\theta(x^i) θ=argθmaxi=1mPθ(xi)
也就是参数 θ ∗ \theta^* θ让网络产生这些真实图片 { x 1 , x 2 , ⋯   , x m } \{x^1,x^2,\cdots,x^m\} {x1,x2,,xm}的几率最大。
注:这里的 P θ ( x i ) P_\theta(x^i) Pθ(xi)实际上无法计算,因为它不是简单几个高斯叠加的GMM,而非常复杂。


证明:最大化MLE与最小化KL等价。
θ ∗ = a r g max ⁡ θ ∏ i = 1 m P θ ( x i ) = a r g max ⁡ θ log ⁡ ∏ i = 1 m P θ ( x i ) = a r g max ⁡ θ ∑ i = 1 m log ⁡ P θ ( x i ) ≈ a r g max ⁡ θ E x ∼ P d a t a [ log ⁡ P θ ( x ) ] = a r g max ⁡ θ ∫ x P d a t a ( x ) log ⁡ P θ ( x ) d x \begin{aligned}\theta^*&=arg\max_\theta \prod_{i=1}^m P_\theta(x^i)\\ &=arg\max_\theta \log\prod_{i=1}^m P_\theta(x^i)\\ &=arg\max_\theta \sum_{i=1}^m \log P_\theta(x^i)\\ &\approx arg\max_\theta E_{x\sim P_{data}}[\log P_\theta(x)]\\ &= arg\max_\theta \int_x P_{data}(x)\log P_\theta(x)dx \end{aligned} θ=argθmaxi=1mPθ(xi)=argθmaxlogi=1mPθ(xi)=argθmaxi=1mlogPθ(xi)argθmaxExPdata[logPθ(x)]=argθmaxxPdata(x)logPθ(x)dx
先取对数,然后连乘变累加,结果与求期望值相近似,再根据期望的定义写成积分形式。这里将积分项减去一个与 θ \theta θ无关的项,不影响求最大值:
∫ x P d a t a ( x ) log ⁡ P d a t a ( x ) d x \int_x P_{data}(x)\log P_{data}(x)dx xPdata(x)logPdata(x)dx
这里 P d a t a ( x ) P_{data}(x) Pdata(x)只和训练数据有关,与 θ \theta θ无关,减去积分项后就可以合并,然后就写成了最小化两个分布KL散度的形式。
= a r g max ⁡ θ ∫ x P d a t a ( x ) log ⁡ P θ ( x ) d x = a r g max ⁡ θ ( ∫ x P d a t a ( x ) log ⁡ P θ ( x ) d x   − ∫ x P d a t a ( x ) log ⁡ P d a t a ( x ) d x ) = a r g max ⁡ θ ∫ x P d a t a ( x ) log ⁡ P θ ( x ) P d a t a ( x ) d x = a r g min ⁡ θ K L ( P d a t a ( x ) ∣ ∣ P θ ( x ) ) \begin{aligned} &= arg\max_\theta \int_x P_{data}(x)\log P_\theta(x)dx\\ &=arg\max_\theta \left(\int_x P_{data}(x)\log P_\theta(x)dx\ - \int_x P_{data}(x)\log P_{data}(x)dx\right)\\ &=arg\max_\theta \int_x P_{data}(x)\log \cfrac{P_\theta(x)}{P_{data}(x)}dx\\ &=arg\min_\theta KL\left(P_{data}(x)||P_\theta(x)\right) \end{aligned} =argθmaxxPdata(x)logPθ(x)dx=argθmax(xPdata(x)logPθ(x)dx xPdata(x)logPdata(x)dx)=argθmaxxPdata(x)logPdata(x)Pθ(x)dx=argθminKL(Pdata(x)∣∣Pθ(x))


VAE

先回顾 VAE的计算,因为VAE和Diffusion很像,有些推导的过程也可以借鉴。

计算 P θ ( x ) P_\theta(x) Pθ(x)

在这里插入图片描述
VAE的 P θ ( x ) P_\theta(x) Pθ(x)可以写成:
P θ ( x ) = ∫ z P ( z ) P θ ( x ∣ z ) d z P_\theta(x)=\int_z P(z)P_\theta(x|z)dz Pθ(x)=zP(z)Pθ(xz)dz
先求 z z z产生的概率,然后求在 z z z条件下产生 x x x的概率,然后是针对所有 z z z进行积分,就得到了 P θ ( x ) P_\theta(x) Pθ(x)
其中 P ( z ) P(z) P(z)是已知的简单分布,对应上图中的粉红色圈圈。
P θ ( x ∣ z ) P_\theta(x|z) Pθ(xz)如果采用如下定义:
P θ ( x ∣ z ) = { 1 , G ( z ) = x 0 , G ( z ) ≠ x P_\theta(x|z)=\begin{cases} 1,\quad G(z)=x \\ 0,\quad G(z)\neq x \end{cases} Pθ(xz)={1,G(z)=x0,G(z)=x
表示 z z z通过网络刚好与我们要的图片完全相同,那么就记为1,否则记为0。在图像生成任务这样做会使得上面的表达大概率是0,因为图片即使有1个像素不同也会使得 P θ ( x ∣ z ) = 0 P_\theta(x|z)=0 Pθ(xz)=0
解决的方法就是用一个范围来表示网络的输出,如下图所示, G ( z ) G(z) G(z)表示一个高斯分布的Mean:
在这里插入图片描述
P θ ( x ∣ z ) P_\theta(x|z) Pθ(xz)的定义就变成:
P θ ( x ∣ z ) ∝ exp ⁡ ( − ∣ ∣ G ( z ) − x ∣ ∣ 2 ) P_\theta(x|z)\propto \exp(-||G(z)-x||_2) Pθ(xz)exp(∣∣G(z)x2)
表示 x x x与高斯分布中心越近,产生它的概率越大。

Lower bound of log ⁡ P ( x ) \log P(x) logP(x)

这里讲得比较简略,详细可以看这里:李宏毅学习笔记27.Unsupervised Learning.05: Deep Generative Model (Part II)
需要说明的是:概率 P θ ( x ) P_\theta(x) Pθ(x)需要网络的参数 θ \theta θ才能计算出来,因此把其作为下标,后面很多地方都把下标 θ \theta θ进行了省略。
上来直接从损失函数那里往后推:
log ⁡ P θ ( x ) = ∫ z q ( z ∣ x ) log ⁡ P ( x ) d z \log P_\theta(x)=\int_zq(z|x)\log P(x)dz logPθ(x)=zq(zx)logP(x)dz
由于 log ⁡ P ( x ) \log P(x) logP(x)和z无关,由于 ∫ z q ( z ∣ x ) d z = 1 \int_zq(z|x)dz=1 zq(zx)dz=1(这里的 q ( z ∣ x ) q(z|x) q(zx)是任意一个分布,积分起来就是1),所以等式成立。
= ∫ z q ( z ∣ x ) log ⁡ ( P ( z , x ) P ( z ∣ x ) ) d z = ∫ z q ( z ∣ x ) log ⁡ ( P ( z , x ) q ( z ∣ x ) q ( z ∣ x ) P ( z ∣ x ) ) d z = ∫ z q ( z ∣ x ) log ⁡ ( P ( z , x ) q ( z ∣ x ) ) d z + ∫ z q ( z ∣ x ) log ⁡ ( q ( z ∣ x ) P ( z ∣ x ) ) d z ≥ ∫ z q ( z ∣ x ) log ⁡ ( P ( z , x ) q ( z ∣ x ) ) d z = E q ( z ∣ x ) [ log ⁡ ( P ( x , z ) q ( z ∣ x ) ) ] \begin{aligned}&=\int_zq(z|x)\log\left(\frac{P(z,x)}{P(z|x)}\right)dz\\ &=\int_zq(z|x)\log\left(\frac{P(z,x)}{{\color{Blue} q(z|x)}}\frac{{\color{Blue} q(z|x)} }{P(z|x)}\right)dz\\ &=\int_zq(z|x)\log\left(\frac{P(z,x)}{q(z|x)}\right)dz+\int_zq(z|x)\log\left(\frac{q(z|x)}{P(z|x)}\right)dz\\ &\ge \int_zq(z|x)\log\left(\frac{P(z,x)}{q(z|x)}\right)dz=E_{q(z|x)}\left[\log\left(\frac{P(x,z)}{q(z|x)}\right)\right] \end{aligned} =zq(zx)log(P(zx)P(z,x))dz=zq(zx)log(q(zx)P(z,x)P(zx)q(zx))dz=zq(zx)log(q(zx)P(z,x))dz+zq(zx)log(P(zx)q(zx))dzzq(zx)log(q(zx)P(z,x))dz=Eq(zx)[log(q(zx)P(x,z))]
上面倒数第二行中的最后一项可以看成是两个分布的KL散度,两个分布由于不可能相似,所以该项大于0,所以就写成:
K L ( q ( z ∣ x ) ∣ ∣ P ( z ∣ x ) ) ≥ 0 KL(q(z|x)||P(z|x))\geq0 KL(q(zx)∣∣P(zx))0
所以才推导出整个式子的下限,最后可以写成期望的形式,其中的 q ( z ∣ x ) q(z|x) q(zx)就是VAE中的Encoder。

DDPM

计算 P θ ( x ) P_\theta(x) Pθ(x)

Diffusion模型生成图片理论上是从一张噪音图片 x T x_T xT开始,不断经过Denoise模块后得到最终结果。
在这里插入图片描述
中间第 t t t个单步的输入输出可以表示为:
在这里插入图片描述
数学上可以写为:
P θ ( x t − 1 ∣ x t ) ∝ exp ⁡ ( − ∣ ∣ G ( x t ) − x t − 1 ∣ ∣ 2 ) P_\theta(x_{t-1}|x_t)\propto \exp(-||G(x_t)-x_{t-1}||_2) Pθ(xt1xt)exp(∣∣G(xt)xt12)
那么某张图片 x 0 x_0 x0产生的概率可以写为:
P θ ( x 0 ) = ∫ x 1 : x T P ( x t ) P θ ( x T − 1 ∣ x T ) ⋯ P θ ( x t − 1 ∣ x t ) ⋯ P θ ( x 0 ∣ x 1 ) d x 1 : x T P_\theta(x_0)=\int_{x_1:x_T}P(x_t)P_\theta(x_{T-1}|x_T)\cdots P_\theta(x_{t-1}|x_t)\cdots P_\theta(x_{0}|x_1)dx_1:x_T Pθ(x0)=x1:xTP(xt)Pθ(xT1xT)Pθ(xt1xt)Pθ(x0x1)dx1:xT
积分号下面的 x 1 : x T x_1:x_T x1:xT表示从 x 1 x_1 x1 x T x_T xT逐个计算,上式中的第一个 P P P没有下标 θ \theta θ,因为噪音 x T x_T xT产生是从简单的高斯分布从采样的,没有经过Denoise模块,与参数 θ \theta θ无关。

Lower bound of log ⁡ P ( x ) \log P(x) logP(x)

原理

DDPM中 log ⁡ P ( x ) \log P(x) logP(x)的下界与VAE的推导一样,VAE的推导已省略,要想
Maximize log ⁡ P θ ( x 0 ) \text{Maximize} \log P_\theta(x_0) MaximizelogPθ(x0)
则要提高 log ⁡ P ( x ) \log P(x) logP(x)的下界:
Maximize E q ( x 1 : x T ∣ x 0 ) [ log ⁡ ( P ( x 0 : x T ) q ( x 1 : x T ∣ x 0 ) ) ] \text{Maximize} E_{q(x_1:x_T|x_0)}\left[\log\left(\frac{P(x_0:x_T)}{q(x_1:x_T|x_0)}\right)\right] MaximizeEq(x1:xTx0)[log(q(x1:xTx0)P(x0:xT))]
其中,表示Forward Process的 q ( x 1 : x T ∣ x 0 ) q(x_1:x_T|x_0) q(x1:xTx0)可以写为:
q ( x 1 : x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 ) ⋯ q ( x T ∣ x T − 1 ) q(x_1:x_T|x_0)=q(x_1|x_0)q(x_2|x_1)\cdots q(x_T|x_{T-1}) q(x1:xTx0)=q(x1x0)q(x2x1)q(xTxT1)

VAE与DDPM二者的下界对比如下图,就不画表格了。
在这里插入图片描述
下面来看上面公式中Forward Process中的通项 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)如何计算,在DDPM中, x t x_t xt x t − 1 x_{t-1} xt1的关系如下图所示:
在这里插入图片描述
β 1 , β 2 ⋯   , β T \beta_1,\beta_2\cdots,\beta_T β1,β2,βT是预先定义好的权重值(超参数),用来调整noise的占比,最右边的noise是从 N ( 0 , I ) \mathcal{N}(0,I) N(0,I)中采样得来。
整个 q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xtxt1)是一个高斯分布,其Mean为: 1 − β t x t \sqrt{1-\beta_t}x_t 1βt xt,各个维度的Variance都一样,是: β t \sqrt{\beta_t} βt

Reverse Process的通项 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0)在理论上应该是一步步计算的:
在这里插入图片描述
注: q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0)的意思是给定清晰图片 x 0 x_0 x0的情况下,得到 x t x_t xt的分布概率。
但是实际上可以选择一步到位,看下图:
在这里插入图片描述
第一行是 x 0 x_0 x0 x 1 x_1 x1的过程,第二行是 x 1 x_1 x1 x 2 x_2 x2的过程,两次加的噪音都是从同一个高斯分布中采样出来的,但是是两次独立的采样(红色箭头),然后可以把第一行红框处的部分带入第二行的 x 1 x_1 x1,得到:
在这里插入图片描述
由于两次采样是从同一个高斯分布而来,虽然乘了不同的系数,我们还是可以将两次采样合并为一个采样(如下图的红框合并为黄色采样结果):
在这里插入图片描述
这样一来,本来两次的采样就合并为一次了,同理,如果有多次采样,也可以用相同的方法合并为一步到位,只不过前面的系数有变化而已。
在这里插入图片描述
如上图所示,第 t t t步的 q ( x t ∣ x 0 ) q(x_t|x_0) q(xtx0)系数分别为: 1 − β 1 ⋯ 1 − β t \sqrt{1-\beta_1}\cdots\sqrt{1-\beta_t} 1β1 1βt 1 − ( 1 − β 1 ) ⋯ ( 1 − β t ) \sqrt{1-(1-\beta_1)\cdots(1-\beta_t)} 1(1β1)(1βt)
为了简化表达,令:
α t = 1 − β t α ˉ t = α 1 α 2 ⋯ α t \alpha_t=1-\beta_t\\ \bar\alpha_t=\alpha_1\alpha_2\cdots\alpha_t αt=1βtαˉt=α1α2αt
上面的系数就可写成:
α ˉ t 1 − α ˉ t \sqrt{\bar\alpha_t}\\ \sqrt{1-\bar\alpha_t} αˉt 1αˉt

数学推导

然后就是从论文Understanding Diffusion Models: A Unified Perspective中摘抄过来的下限的推导:
log ⁡ P ( x ) ≥ E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ∏ t = 1 T q ( x t ∣ x t − 1 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x 1 ∣ x 0 ) ∏ t = 2 T q ( x t ∣ x t − 1 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x 1 ∣ x 0 ) ∏ t = 2 T q ( x t ∣ x t − 1 , x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ⁡ ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 , x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ⁡ ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ⁡ ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ⁡ q ( x 1 ∣ x 0 ) q ( x T ∣ x 0 ) + log ⁡ ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x T ∣ x 0 ) + ∑ t = 2 T log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = E q ( x 1 : T ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] + E q ( x 1 : T ∣ x 0 ) [ log ⁡ p ( x T ) q ( x T ∣ x 0 ) ] + ∑ t = 2 T E q ( x 1 : T ∣ x 0 ) [ log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = E q ( x 1 ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] + E q ( x T ∣ x 0 ) [ log ⁡ p ( x T ) q ( x T ∣ x 0 ) ] + ∑ t = 2 T E q ( x t , x t − 1 ∣ x 0 ) [ log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = E q ( x 1 ∣ x 0 ) [ log ⁡ p θ ( x 0 ∣ x 1 ) ] ⏟ reconstruction term − D K L ( q ( x T ∣ x 0 ) ∣ ∣ p ( x T ) ) ⏟ prior matching term − ∑ t = 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 ) ) ] ⏟ denoising matching term \begin{align*} \log P(x)&\ge E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_{0:T})}{q(x_{1:T}|x_0)}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)\prod_{t=1}^Tp_\theta(x_{t-1}|x_t)}{\prod_{t=1}^Tq(x_t|x_{t-1})}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)\prod_{t=2}^Tp_\theta(x_{t-1}|x_t)}{q(x_1|x_0)\prod_{t=2}^Tq(x_t|x_{t-1})}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)\prod_{t=2}^Tp_\theta(x_{t-1}|x_t)}{q(x_1|x_0)\prod_{t=2}^Tq(x_t|x_{t-1},x_0)}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)}{q(x_1|x_0)}+\log\prod_{t=2}^T\cfrac{p_\theta(x_{t-1}|x_t)}{q(x_t|x_{t-1},x_0)}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)}{q(x_1|x_0)}+\log\prod_{t=2}^T\cfrac{p_\theta(x_{t-1}|x_t)}{\cfrac{q(x_{t-1}|x_t,x_0)q(x_t|x_0)}{q(x_{t-1}|x_0)}}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)}{q(x_1|x_0)}+\log\prod_{t=2}^T\cfrac{p_\theta(x_{t-1}|x_t)}{\cfrac{q(x_{t-1}|x_t,x_0)\cancel{q(x_t|x_0)}}{\cancel{q(x_{t-1}|x_0)}}}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)}{\cancel{q(x_1|x_0)}}+\log\cfrac{\cancel{q(x_1|x_0)}}{q(x_T|x_0)}+\log\prod_{t=2}^T\cfrac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t,x_0)}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)p_\theta(x_0|x_1)}{q(x_T|x_0)}+\sum_{t=2}^T\log\cfrac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t,x_0)}\right]\\ &=E_{q(x_{1:T}|x_0)}\left[\log p_\theta(x_0|x_1)\right] +E_{q(x_{1:T}|x_0)}\left[\log\frac{p(x_T)}{q(x_T|x_0)}\right] +\sum_{t=2}^TE_{q(x_{1:T}|x_0)}\left[\log\cfrac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t,x_0)}\right]\\ &=E_{q(x_1|x_0)}\left[\log p_\theta(x_0|x_1)\right] +E_{q(x_T|x_0)}\left[\log\frac{p(x_T)}{q(x_T|x_0)}\right] +\sum_{t=2}^TE_{q(x_t,x_{t-1}|x_0)}\left[\log\cfrac{p_\theta(x_{t-1}|x_t)}{q(x_{t-1}|x_t,x_0)}\right]\\ &=\underset{\text{reconstruction term}}{\underbrace{E_{q(x_1|x_0)}\left[\log p_\theta(x_0|x_1)\right]}} -\underset{\text{prior matching term}}{\underbrace{D_{KL}(q(x_T|x_0)||p(x_T))}} -\sum_{t=2}^T\underset{\text{denoising matching term}}{\underbrace{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]}} \end{align*} logP(x)Eq(x1:Tx0)[logq(x1:Tx0)p(x0:T)]=Eq(x1:Tx0)[logt=1Tq(xtxt1)p(xT)t=1Tpθ(xt1xt)]=Eq(x1:Tx0)[logq(x1x0)t=2Tq(xtxt1)p(xT)pθ(x0x1)t=2Tpθ(xt1xt)]=Eq(x1:Tx0)[logq(x1x0)t=2Tq(xtxt1,x0)p(xT)pθ(x0x1)t=2Tpθ(xt1xt)]=Eq(x1:Tx0)[logq(x1x0)p(xT)pθ(x0x1)+logt=2Tq(xtxt1,x0)pθ(xt1xt)]=Eq(x1:Tx0) logq(x1x0)p(xT)pθ(x0x1)+logt=2Tq(xt1x0)q(xt1xt,x0)q(xtx0)pθ(xt1xt) =Eq(x1:Tx0) logq(x1x0)p(xT)pθ(x0x1)+logt=2Tq(xt1x0) q(xt1xt,x0)q(xtx0) pθ(xt1xt) =Eq(x1:Tx0)[logq(x1x0) p(xT)pθ(x0x1)+logq(xTx0)q(x1x0) +logt=2Tq(xt1xt,x0)pθ(xt1xt)]=Eq(x1:Tx0)[logq(xTx0)p(xT)pθ(x0x1)+t=2Tlogq(xt1xt,x0)pθ(xt1xt)]=Eq(x1:Tx0)[logpθ(x0x1)]+Eq(x1:Tx0)[logq(xTx0)p(xT)]+t=2TEq(x1:Tx0)[logq(xt1xt,x0)pθ(xt1xt)]=Eq(x1x0)[logpθ(x0x1)]+Eq(xTx0)[logq(xTx0)p(xT)]+t=2TEq(xt,xt1x0)[logq(xt1xt,x0)pθ(xt1xt)]=reconstruction term Eq(x1x0)[logpθ(x0x1)]prior matching term DKL(q(xTx0)∣∣p(xT))t=2Tdenoising matching term Eq(xtx0)[DKL(q(xt1xt,x0)∣∣pθ(xt1xt))]
原文公式51的第一个 p p p多了一个 θ \theta θ
在这里插入图片描述

上面的结果中的第二项prior matching term可以忽略,原文中直接给0值,这项是衡量两个分布的相似度,一个分布是从搞屎采样出来的噪音 x T x_T xT,另外是给定清晰图片 x 0 x_0 x0进行diffusion process得到 x T x_T xT的过程,该过程由我们自己操控,两个分布毫无相似度,因此为0。李老师在这里的解释是因为该表达式中没有包含网络参数 θ \theta θ,因此与要最大化的下限无关,可以忽略。
现在的下限等于第一项(reconstruction term)减去第三项(denoising matching term),要使得整体最大化,就是要第一项越大越好,第三项越接近0越好,这里推导第一项的过程与第三项相似,因此只推导第三项。

写到这里由于字数太多,需要令开一篇。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值