Understanding Diffusion Objectives as the ELBO with Simple Data Augmentation

news2024/11/13 9:42:28

Understanding Diffusion Objectives as the ELBO with Simple Data Augmentation

引言

本文前作 VDM 已经推导出了扩散模型可以将优化 ELBO 作为目标函数。然而现在 FID (也就是感知质量)最好的模型还是用的其他目标函数(如 DDPM 的噪声预测和 Score-base Model 的得分匹配),本文证明了这些其他目标函数实际上也与 ELBO 相关。具体来说,本文证明了所有这些其他的扩散模型目标函数都可以写为 ELBO 在所有噪声等级上的加权积分,不同的目标函数决定了不同的加权函数。如果这个加权函数是单调的(许多扩散模型目标函数都满足这一点),本文进一步证明了不同的目标函数等价于 ELBO 目标搭配上简单的数据扩增(加性高斯噪声)。

方法

记真实数据分布为 q ( x ) q(\mathbf{x}) q(x) ,生成模型要做的事情是学习一个参数化分布 p θ ( x ) p_\theta(\mathbf{x}) pθ(x) 来近似 q ( x ) q(\mathbf{x}) q(x) ,以下简记 p : = p θ p:=p_\theta p:=pθ

除了观测变量 x \mathbf{x} x,扩散模型中还有一系列隐变量 z t ,   t ∈ [ 0 , 1 ] \mathbf{z}_t,\ t\in[0,1] zt, t[0,1] ,可记为 z 0 , … , 1 : = z 0 , … , z 1 \mathbf{z}_{0,\dots,1}:=\mathbf{z}_0,\dots,\mathbf{z}_1 z0,,1:=z0,,z1。扩散生成模型包含两部分:1)前向过程,表示为一个条件联合分布 q ( z 0 , … , 1 ∣ x ) q(\mathbf{z}_{0,\dots,1}|\mathbf{x}) q(z0,,1x);2)参数化生成模型,表示为一个联合分布 p ( z 0 , … , 1 ) p(\mathbf{z}_{0,\dots,1}) p(z0,,1)

前向过程和 noise schedule

前向过程是一个高斯扩散过程,表示为一个条件联合分布 q ( z 0 , . . . , 1 ∣ x ) q(\mathbf{z}_{0,...,1}|\mathbf{x}) q(z0,...,1x)。对于每个 t ∈ [ 0 , 1 ] t \in[0, 1] t[0,1],边缘分布 q ( z t ∣ x ) q(\mathbf{z}_t|\mathbf{x}) q(ztx) 由以下公式给出:
z t = α λ x + σ λ ϵ ,     ϵ ∼ N ( 0 , I ) \mathbf{z}_t=\alpha_\lambda\mathbf{x}+\sigma_\lambda\epsilon,\ \ \ \epsilon\sim\mathcal{N}(0,\mathbf{I}) zt=αλx+σλϵ,   ϵN(0,I)
可以看到,扩散模型前向过程的 “规格” 由 α λ , σ λ \alpha_\lambda,\sigma_\lambda αλ,σλ 两组参数确定。如果是常用的 variance preserving 的前向过程,有 α λ 2 = sigmoid ( λ t ) \alpha^2_\lambda=\text{sigmoid}(\lambda_t) αλ2=sigmoid(λt) σ λ 2 = sigmoid ( − λ t ) \sigma^2_\lambda=\text{sigmoid}(-\lambda_t) σλ2=sigmoid(λt) 。但也有很多其他的扩散模型规格,本文的研究对于不同规格的扩散模型均成立。

定义时间步 t t t 的对数信噪比(log signal to noise ratio, log SNR)为 λ = log ⁡ ( α t 2 / σ t 2 ) \lambda=\log(\alpha_t^2/\sigma_t^2) λ=log(αt2/σt2) 。noise schedule f λ f_\lambda fλ 是一个将时间步 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1] 映射为对应的 log SNR λ \lambda λ 的函数,即有 λ = f λ ( t ) \lambda=f_\lambda(t) λ=fλ(t) f λ f_\lambda fλ 是严格单调递减的。log SNR λ \lambda λ 是一个关于 t t t 的函数,因此有时会将 log SNR 记为 λ t \lambda_t λt。noise schedule 的两端点为 λ max : = f λ ( 0 ) \lambda_\text{max}:=f_\lambda(0) λmax:=fλ(0) λ min : = f λ ( 1 ) \lambda_\text{min}:=f_\lambda(1) λmin:=fλ(1)。由于 f λ f_\lambda fλ 的单调性,因此其也是可逆的,有 t = f λ − 1 ( λ ) t=f^{-1}_\lambda(\lambda) t=fλ1(λ)。进一步基于这种双射,我们可以进行变量变换,一个关于 t t t 的函数可以改写为关于 λ \lambda λ 的函数,反之亦然。在接下来的研究中会用到这一点。

在这里插入图片描述

上图左侧展示了一些常见的 noise schedule。在训练阶段,我们均匀地采样时间 t t t t ∼ U ( 0 , 1 ) t\sim\mathcal{U}(0,1) tU(0,1) ,然后计算 λ = f λ ( t ) \lambda=f_\lambda(t) λ=fλ(t) 。进一步可以推导出噪声等级的分布 p ( λ ) = − d t / d λ = − 1 / f λ ′ ( t ) p(\lambda)=-dt/d\lambda=-1/f'_\lambda(t) p(λ)=dt/dλ=1/fλ(t) 。绘制在上图右侧。

有时在采样时使用与训练时不同的 noise schedule 会更好。在采样过程中,密度函数 p ( λ ) p(\lambda) p(λ) 表示采样器在不同噪声水平上花费的相对时间量。

生成模型

真实数据 x ∼ D \mathbf{x}\sim \mathcal{D} xD ,其分布密度为 q ( x ) q(\mathbf{x}) q(x) 。刚才介绍前向过程定义了一个联合分布 q ( z 0 , … , z 1 ) = ∫ ( q ( z 0 , … , 1 ) ∣ x ) ) d x q(\mathbf{z}_0,\dots,\mathbf{z}_1)=\int(q(\mathbf{z}_{0,\dots,1})|\mathbf{x}))d\mathbf{x} q(z0,,z1)=(q(z0,,1)x))dx ,记边缘分布 q t ( z ) = q ( z t ) q_t(\mathbf{z})=q(\mathbf{z}_t) qt(z)=q(zt) 。生成模型则定义了一个对应的隐变量的联合分布 p ( z 0 , … , z 1 ) p(\mathbf{z}_0,\dots,\mathbf{z}_1) p(z0,,z1)

在扩散模型中, λ max \lambda_\text{max} λmax 足够大, z 0 \mathbf{z}_0 z0 与数据 x \mathbf{x} x 几乎相等,所以学习 p ( z 0 ) p(\mathbf{z}_0) p(z0) 等价于学习 p ( x ) p(\mathbf{x}) p(x) λ min \lambda_\text{min} λmin 足够小, z 1 \mathbf{z}_1 z1 中几乎没有与 x \mathbf{x} x 有关的信息,从而分布 p ( z 1 ) p(\mathbf{z}_1) p(z1) 满足 D K L ( q ( z 1 ∣ x ) ∣ ∣ p ( z 1 ) ) ≈ 0 D_{KL}(q(\mathbf{z}_1|\mathbf{x})||p(\mathbf{z}_1))\approx 0 DKL(q(z1x)∣∣p(z1))0 。 因此一般有 p ( z 1 ) = N ( 0 , I ) p(\mathbf{z}_1)=\mathcal{N}(0,\mathbf{I}) p(z1)=N(0,I)

s θ ( z ; λ ) \mathbf{s}_\theta(\mathbf{z};\lambda) sθ(z;λ) 为得分模型(score model),我们用该模型来估计得分 ∇ z log ⁡ q t ( z ) \nabla_\mathbf{z}\log q_t(\mathbf{z}) zlogqt(z) ,具体训练目标我们在下一节介绍。如果模型训练得足够好,可以完美完成估计任务,即有 s θ ( z ; λ ) = ∇ z log ⁡ q t ( z ) \mathbf{s}_\theta(\mathbf{z};\lambda)=\nabla_\mathbf{z}\log q_t(\mathbf{z}) sθ(z;λ)=zlogqt(z) ,那么生成模型就可以完全地反转(reverse)前向过程,生成新的数据。

如果有 D K L ( q ( z 1 ) ∣ ∣ p ( z 1 ) ) ≈ 0 D_{KL}(q(\mathbf{z}_1)||p(\mathbf{z}_1))\approx 0 DKL(q(z1)∣∣p(z1))0 s θ ( z ; λ ) ≈ ∇ z log ⁡ q t ( z ) \mathbf{s}_\theta(\mathbf{z};\lambda)\approx\nabla_\mathbf{z}\log q_t(\mathbf{z}) sθ(z;λ)zlogqt(z) ,我们就有一个好的生成模型能够做到 D K L ( q ( z 0 , … , 1 ) ∣ ∣ p ( z 0 , … , 1 ) ) ≈ 0 D_{KL}(q(\mathbf{z}_{0,\dots,1})||p(\mathbf{z}_{0,\dots,1}))\approx 0 DKL(q(z0,,1)∣∣p(z0,,1))0 ,从而就能实现我们的最终目标 ,拟合出真实数据分布,即 D K L ( q ( z 0 ) ∣ ∣ p ( z 0 ) ) ≈ 0 D_{KL}(q(\mathbf{z}_0)||p(\mathbf{z}_0))\approx 0 DKL(q(z0)∣∣p(z0))0 。因此,我们生成式建模的任务就转换为学习一个网络 s θ ( z ; λ ) \mathbf{s}_\theta(\mathbf{z};\lambda) sθ(z;λ) 来拟合得分 ∇ z log ⁡ q t ( z ) \nabla_\mathbf{z}\log q_t(\mathbf{z}) zlogqt(z)

采样时,我们首先采样一个 z 1 ∼ p ( z 1 ) \mathbf{z}_1\sim p(\mathbf{z}_1) z1p(z1) ,然后使用估计的 s θ ( z ; λ ) \mathbf{s}_\theta(\mathbf{z};\lambda) sθ(z;λ) 来(近似)解反向 SDE。最近的扩散模型使用了越来越复杂的方法来解反向 SDE,本文实验中采用了 DDPM 的采样器和 Karras 等人提出的 Heun 二阶采样器。

不同的扩散模型训练目标

去噪得分匹配

Song 等人提出一种去噪得分匹配(denoising score matching)的方式来训练 s θ \mathbf{s}_\theta sθ 估计得分 ∇ z log ⁡ q t ( z ) \nabla_\mathbf{z}\log q_t(\mathbf{z}) zlogqt(z)
L DSM = E t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) [ w ~ ( t ) ⋅ ∣ ∣ s θ ( z t ; λ t ) − ∇ z t log ⁡ q ( z t ∣ x ) ∣ ∣ 2 2 ] \mathcal{L}_{\text{DSM}}=\mathbb{E}_{t\sim\mathcal{U}(0,1),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[\textcolor{brown}{\tilde{w}(t)}\cdot||\textcolor{red}{\mathbf{s}_\theta(\mathbf{z}_t;\lambda_t)}-\textcolor{purple}{\nabla_{\mathbf{z}_t}\log q(\mathbf{z}_t|\mathbf{x})}||^2_2] LDSM=EtU(0,1),ϵN(0,I)[w~(t)∣∣sθ(zt;λt)ztlogq(ztx)22]
其中 z t = α λ x + σ λ ϵ \mathbf{z}_t=\alpha_\lambda\mathbf{x}+\sigma_\lambda\epsilon zt=αλx+σλϵ

ϵ \epsilon ϵ-prediction 训练目标

大多数扩散模型的训练目标时 DDPM 中提出的噪声预测损失。这种情形下,得分模型一般被参数化为一个噪声预测(noise prediction, ϵ \epsilon ϵ-prediction)网络: s θ ( z ; λ ) = − ϵ ^ θ ( z ; λ ) / σ λ \mathbf{s}_\theta(\mathbf{z};\lambda)=-\hat{\epsilon}_\theta(\mathbf{z};\lambda)/\sigma_\lambda sθ(z;λ)=ϵ^θ(z;λ)/σλ 。噪声预测损失可表示为:
L ϵ ( x ) = 1 2 E t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) [ ∣ ∣ ϵ ^ θ ( z t ; λ t ) − ϵ ∣ ∣ 2 2 ] \mathcal{L}_\epsilon(\mathbf{x})=\frac{1}{2}\mathbb{E}_{t\sim\mathcal{U}(0,1),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[||\textcolor{red}{\hat{\epsilon}_\theta(\mathbf{z}_t;\lambda_t)-\textcolor{purple}{\epsilon}}||_2^2] Lϵ(x)=21EtU(0,1),ϵN(0,I)[∣∣ϵ^θ(zt;λt)ϵ22]

由于有 ∣ ∣ s θ ( z t ; λ t ) − ∇ z t log ⁡ q ( z t ∣ x ) ∣ ∣ 2 2 = σ λ − 2 ∣ ∣ ϵ ^ θ ( z t ; λ t ) − ϵ ∣ ∣ 2 2 ||\mathbf{s}_\theta(\mathbf{z}_t;\lambda_t)-\nabla_{\mathbf{z}_t}\log q(\mathbf{z}_t|\mathbf{x})||^2_2=\sigma_\lambda^{-2}||\hat{\epsilon}_\theta(\mathbf{z}_t;\lambda_t)-\epsilon||^2_2 ∣∣sθ(zt;λt)ztlogq(ztx)22=σλ2∣∣ϵ^θ(zt;λt)ϵ22 ,所以这其实可以看作是去噪得分匹配目标函数在 w ~ ( t ) = σ λ 2 \tilde{w}(t)=\sigma_\lambda^2 w~(t)=σλ2 时的一种特殊情况。DDPM 中的实验结果显示,噪声预测这种目标函数训练出的模型可以产生非常高质量的生成结果,iDDPM 中将 noise schedule λ t \lambda_t λt 从线性换成了余弦,进一步提高了生成结果的质量。如今噪声预测损失+余弦 noise schedule 的扩散模型应用非常广泛。

与噪声预测目标 ϵ \epsilon ϵ-prediction 类似的,还有 x \mathbf{x} x-prediction、 v \mathbf{v} v-prediction、 o \mathbf{o} o-prediction、 F \mathbf{F} F-prediction 等形式。

ELBO 训练目标

本文前作 VDM 中提出了连续时间情形下的扩散模型的 ELBO 优化目标:
− ELBO ( x ) = 1 2 E t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) [ − d λ d t ∣ ∣ ϵ ^ θ ( z t ; λ t ) − ϵ ∣ ∣ 2 2 ] + c -\text{ELBO}(\mathbf{x})=\frac{1}{2}\mathbb{E}_{t\sim\mathcal{U}(0,1),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[-\textcolor{brown}{\frac{d\lambda}{dt}}||\textcolor{red}{\hat{\epsilon}_\theta(\mathbf{z}_t;\lambda_t)-\textcolor{purple}{\epsilon}}||_2^2]+c ELBO(x)=21EtU(0,1),ϵN(0,I)[dtdλ∣∣ϵ^θ(zt;λt)ϵ22]+c
其中 c c c 是与网络参数 θ \theta θ 无关的常数。

加权损失

上述讨论的各种目标函数,其实都可以看作是 VDM 中的加权损失选择不同加权函数 w ( λ t ) w(\lambda_t) w(λt) 的某种特殊情况。一般地,有:
L w ( x ) = 1 2 E t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) [ w ( λ t ) ⋅ − d λ d t ∣ ∣ ϵ ^ θ ( z t ; λ t ) − ϵ ∣ ∣ 2 2 ] + c \mathcal{L}_w(\mathbf{x})=\frac{1}{2}\mathbb{E}_{t\sim\mathcal{U}(0,1),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[\textcolor{green}{w(\lambda_t)}\cdot-\textcolor{brown}{\frac{d\lambda}{dt}}||\textcolor{red}{\hat{\epsilon}_\theta(\mathbf{z}_t;\lambda_t)-\textcolor{purple}{\epsilon}}||_2^2]+c Lw(x)=21EtU(0,1),ϵN(0,I)[w(λt)dtdλ∣∣ϵ^θ(zt;λt)ϵ22]+c
显然 ELBO 目标是上式在未进行加权,即 w ( λ t ) = 1 w(\lambda_t)=1 w(λt)=1 时的情况;而噪声预测目标则是在 w ( λ t ) = − d t / d λ w(\lambda_t)=-dt/d\lambda w(λt)=dt/dλ 时的情况,或者更简洁地 w ( λ t ) = p ( λ t ) w(\lambda_t)=p(\lambda_t) w(λt)=p(λt),训练时噪声水平 λ \lambda λ 的隐含分布的 PDF。下面的图表展示了推导出的其他常用的扩散模型的隐式加权函数 w ( λ ) w(\lambda) w(λ) 及其曲线。

在这里插入图片描述

在这里插入图片描述

加权损失关于 noise shedule 的不变性

VDM 中已经证明了 ELBO 目标函数关于 noise schedule (除开两端点 λ max , λ min \lambda_\text{max},\lambda_\text{min} λmax,λmin 外)的不变性。这个结论在本文中进一步泛化到所有的加权扩散损失(上式)中。根据变量变换,将变量 t t t 变换为 λ \lambda λ ,有:
KaTeX parse error: Got function '\textcolor' with no arguments as subscript at position 44: …frac{1}{2}\int_\̲t̲e̲x̲t̲c̲o̲l̲o̲r̲{brown}{\lambda…
可以看到,上式这个积分(除了 λ max , λ min \lambda_\text{max},\lambda_\text{min} λmax,λmin 之外)与 f λ f_\lambda fλ (从 t t t λ \lambda λ 的映射)无关。即,扩散损失不会受到 f λ f_\lambda fλ 两端点 λ min \lambda_\text{min} λmin λ max \lambda_\text{max} λmax 之间的函数形状的影响,而只会受到加权函数 w ( λ ) w(\lambda) w(λ) 的影响。也就是说,给定一个加权函数 w ( λ ) w(\lambda) w(λ) 之后,扩散损失是确定的,与 t = 0 t=0 t=0 t = 1 t=1 t=1 之间的 noise shedule λ t \lambda_t λt 无关的。从而我们有一个重要结论:不同扩散模型目标函数之间真正的区别,只在加权函数 w ( λ ) w(\lambda) w(λ)

当然,这种不变性对于训练时使用的,基于随机样本 t ∼ U ( 0 , 1 ) , ϵ ∼ N ( 0 , I ) t\sim\mathcal{U}(0,1),\epsilon\sim\mathcal{N}(0,\mathbf{I}) tU(0,1),ϵN(0,I) 的蒙特卡洛估计器是不成立的。noise schedule 仍然会影响估计器的方差和梯度,从而会影响训练的效率。具体来说,noise schedule 可以看做是估计上述损失的一个重要性采样分布。结合 p ( λ ) = − 1 ( d λ / d t ) p(\lambda)=-1(d\lambda/dt) p(λ)=1(dλ/dt),我们可以将上式改写为:
L w ( x ) = 1 2 E λ ∼ p ( λ ) , ϵ ∼ N ( 0 , I ) [ w ( λ ) p ( λ ) ∣ ∣ ϵ ^ θ ( z λ ; λ ) − ϵ ∣ ∣ 2 2 ] \mathcal{L}_w(\mathbf{x})=\frac{1}{2}\mathbb{E}_{\lambda\sim p(\lambda),\epsilon\sim\mathcal{N}(0,\mathbf{I})}[\frac{\textcolor{green}{w(\lambda)}}{\textcolor{brown}{p(\lambda)}}||\textcolor{red}{\hat{\epsilon}_\theta(\mathbf{z}_\lambda;\lambda)}-\textcolor{purple}{\epsilon}||_2^2] Lw(x)=21Eλp(λ),ϵN(0,I)[p(λ)w(λ)∣∣ϵ^θ(zλ;λ)ϵ22]
从上式中可以清楚地看到 p ( λ ) p(\lambda) p(λ) 作为重要性采样分布的角色。基于上述讨论的 noise schedule 特性,本文提出了一种自适应的 noise schedule,通过降低估计器的方差,有效提高了训练效率。

将加权损失看作是带数据扩增的 ELBO

结论:如果加权函数 w ( λ t ) w(\lambda_t) w(λt) 是单调的,那么加权扩散目标函数等价于带数据扩增(加性高斯噪声)的 ELBO。

这里 w ( λ t ) w(\lambda_t) w(λt) 是单调的,指的是其关于时间 t t t 是单调递增的,从而其关于 λ \lambda λ 是单调递减的。这在现如今很多扩散模型中都是成立的。

以下使用 L ( t , x ) \mathcal{L}_(t,\mathbf{x}) L(t,x) 来简记前向过程联合分布 q ( z 0 , … , 1 ∣ x ) q(\mathbf{z}_{0,\dots,1}|\mathbf{x}) q(z0,,1x) 与反向过程对于时间步子集从 t t t 到 1 下的生成模型 p ( z t , … , 1 ) p(\mathbf{z}_{t,\dots,1}) p(zt,,1) 的 KL 散度,即:
L ( t , x ) : = D K L ( q ( z t , … , 1 ∣ x ) ∣ ∣ p ( z t , … , 1 ) ) \mathcal{L}(t,\mathbf{x}):=D_{KL}(q(\mathbf{z}_{t,\dots,1}|\mathbf{x})||p(\mathbf{z}_{t,\dots,1})) L(t,x):=DKL(q(zt,,1x)∣∣p(zt,,1))
可以证明,有:
d d t L ( t ; x ) = 1 2 d λ d t E ϵ ∼ N ( 0 , I ) [ ∣ ∣ ϵ − ϵ θ ( z λ ; λ ) ∣ ∣ 2 2 ] \textcolor{blue}{\frac{d}{dt}\mathcal{L}(t;\mathbf{x})}=\textcolor{red}{\frac{1}{2}\frac{d\lambda}{dt}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I})}[||\epsilon-\epsilon_\theta(\mathbf{z}_\lambda;\lambda)||_2^2]} dtdL(t;x)=21dtdλEϵN(0,I)[∣∣ϵϵθ(zλ;λ)22]

从而,可以将加权损失重写为:
L w ( x ) = − ∫ 0 1 d d t L ( t ; x ) w ( λ t ) d t \mathcal{L}_w(\mathbf{x})=-\int_0^1\textcolor{blue}{\frac{d}{dt}\mathcal{L}(t;\mathbf{x})}\textcolor{green}{w(\lambda_t)}dt Lw(x)=01dtdL(t;x)w(λt)dt
再通过分部积分,可写为:
L w ( x ) = ∫ 0 1 d d t w ( λ t ) L ( t ; x ) + w ( λ max ) L ( 0 ; x ) + constant \mathcal{L}_w(\mathbf{x})=\int_0^1\textcolor{green}{\frac{d}{dt}w(\lambda_t)}\textcolor{blue}{\mathcal{L}(t;\mathbf{x})}+w(\lambda_\text{max})\mathcal{L}(0;\mathbf{x})+\text{constant} Lw(x)=01dtdw(λt)L(t;x)+w(λmax)L(0;x)+constant
然后,由于我们假设 w ( λ t ) w(\lambda_t) w(λt) 关于 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1] 是单调递增的。同时,不是一般性地,假设 w ( λ t ) w(\lambda_t) w(λt) 以经过归一化,有 w ( λ 1 ) = 1 w(\lambda_1)=1 w(λ1)=1 。我们可以进一步将加权损失简化为我们定义的 KL 散度的期望的形式:
L w ( x ) = E p w ( t ) [ L ( t ; x ) ] + constant \mathcal{L}_w(\mathbf{x})=\mathbb{E}_{\textcolor{green}{p_w(t)}}[\textcolor{blue}{\mathcal{L}(t;\mathbf{x})}]+\text{constant} Lw(x)=Epw(t)[L(t;x)]+constant
其中 p w ( t ) p_w(t) pw(t) 是由加权函数决定的一个概率分布,即 p w ( t ) : = ( d / d t   w ( λ t ) ) p_w(t):=(d/dt\ w(\lambda_t)) pw(t):=(d/dt w(λt))。在 t ∈ [ 0 , 1 ] t\in[0,1] t[0,1] 上,分布 p w ( t ) p_w(t) pw(t) t = 0 t=0 t=0 处达到狄拉克函数峰值 w ( λ max ) w(\lambda_\text{max}) w(λmax) ,该质量值一般非常小。

注意有:
L ( t ; x ) = D K L ( q ( z t … , 1 ∣ x ) ∣ ∣ p ( z t … , 1 ) ) ≥ D K L ( q ( z t ∣ x ) ∣ ∣ p ( z t ) ) = E q ( z t ∣ x ) [ log ⁡ p ( z t ) ] + constant \begin{align} \mathcal{L}(t;\mathbf{x})&=D_{KL}(q(\mathbf{z}_{t\dots,1}|\mathbf{x})||p(\mathbf{z}_{t\dots,1}))\\ &\ge D_{KL}(q(\mathbf{z}_t|\mathbf{x})||p(\mathbf{z}_t))\\ &=\mathbb{E}_{q(\mathbf{z}_t|\mathbf{x})}[\log p(\mathbf{z}_t)]+\text{constant} \end{align} L(t;x)=DKL(q(zt,1x)∣∣p(zt,1))DKL(q(ztx)∣∣p(zt))=Eq(ztx)[logp(zt)]+constant
也就是说, L ( t ; x ) \mathcal{L}(t;\mathbf{x}) L(t;x) 等于噪声扰动数据的负 ELBO 预期加上一个常数。至此,本节开头处的结论得证。

这个结论带给我们一个全新的理解视角:带(隐式)单调加权函数的训练目标,都可以等价于带简单的数据扩增(加性高斯噪声)的 ELBO 目标。这其实是一种形式的分布扩增(Distribution Augmentation, DistAug),其模型在训练时指定了对应的数据扩增条件,在采样时指定 “无扩增” 的条件。

加权函数对于感知质量的影响

对于扩散模型训练目标中的加权函数,也就是我们刚证明的单调加权函数下的带数据扩增的 ELBO,对于生成结果感知质量的影响,本节提出几个可能的解释。

与低比特训练的联系

Glow 中发现,移除 8bit 数据中最不重要的 3 个比特,使用 5bit 数据上,能训练处保真度更高的模型。一个可能的原因是,更关键的比特,对于人类的感知质量的影响也越大,移除不重要的 3 个比特能够使得模型更加聚焦于更重要的 5 个比特。Glow 中对低比特数据添加均匀噪声,然后送入模型,作者发现添加高斯噪声也有类似的作用。添加单一等级的高斯噪声,可以看作是加权损失在加权函数为阶跃函数时的一种特殊情况。均匀噪声的影响可以近似为一个经过 sigmoid 的加权函数。

傅里叶分析

为了更好地理解为什么加性高斯噪声能够提升生成图像的感知质量,我们从对一张带噪图片进行傅里叶变换(Fourier Transforme,FT)的角度来考虑。由于 FT 是一种线性变换,所以真实图像和高斯噪声的加和的 FT 等于二者各自高斯噪声的加和。自然图像的功率谱(即作为空间频率函数的 FT 平均幅度)会随着频率的增加而快速下降,这意味着最低频率的幅度最高。另一方面,高斯白噪声的功率谱大致恒定。当向干净的自然图像添加噪声时,高频区域的信噪比(即干净图像和高斯噪声图像的功率谱之比)会降低。因此,相比于低频信息,加性高斯噪声会更快地有效地破坏数据中的高频信息,从而迫使模型更多地关注数据的低频分量,而这些低频分量通常对应于对感知更为关键的高级内容和全局结构。

总结

VDM++ 在其前作 VDM 的基础上进一步在理论上分析了扩散模型中的 ELBO 目标。将得分匹配、噪声估计等训练目标通过不同的加权函数统一到 ELBO 目标中,并进一步掲示了当加权函数是单调函数时,不同的扩散模型训练目标相当于 ELBO 目标搭配上简单的数据扩增(加性高斯)。对后续许多扩散模型(如 SD3)的训练策略设计产生了重大影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1807532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql使用中的性能优化——索引数对插入操作性能的影响

表的索引可以给数据检索提升效率,但是也给表的增删改操作带来代价。本文我们将关注,索引数量对INSERT操作的影响。 结论 索引数的新增会造成INSERT操作效率下降,约每增一个索引会降低10%效率。 实验数据 可以看到0个索引的效率是7个索引效…

【Linux】 安装rz 和sz

在 Linux 系统中,rz 和 sz 是两个用于在本地计算机与远程计算机之间安全传输文件的命令行工具。它们是 lrzsz 包的一部分,通常用于通过 SSH 连接传输文件。 打开终端: 首先,打开你的 CentOS 机器上的终端。 执行sz 提示下面信息…

【数据结构(邓俊辉)学习笔记】图05——优先级搜索

文章目录 0. 概述1. BAG2. ADT 0. 概述 学习下优先级搜索 1. BAG 优先级搜索是非常广义的,概况来说,无论DFS 还是BFS从逻辑上来都属于这种搜索。 回忆下什么叫搜索或者遍历,对于像图这种数据结构里的元素逐一的没有重复的也没有遗漏的对它们…

开发uniapp 小程序时遇到的问题

1、【微信开发者工具报错】routeDone with a webviewId XXX that is not the current page 解决方案: 在app.json 中添加 “lazyCodeLoading”: “requiredComponents” uniapp的话加到manifest.json下的mp-weixin 外部链接文章:解决方案文章1 解决方案文章2 &qu…

vs2019 c++20规范 全局函数 ref 及模板类 reference_wrapper<_Ty> 的源码分析

这是个引用&#xff0c;可以包裹一个对象&#xff0c;相当于引用该对象&#xff0c;而不是在作为函数形参时产生值传递。因为模板 reference_wrapper<_Ty> 其实是封装了该对象的地址。下面以图示形式给出其重要的成员函数。模板其实都差不多&#xff0c;跟人也一样&#…

使用Redis的优势以及会引发的问题

优势 ①使用redis代表着高性能还有高并发&#xff0c;高性能很好理解&#xff0c;redis会缓存我们访问的数据。他是基于内存的&#xff0c;第一次访问数据库我们可能需要800ms&#xff0c;但是访问后如果使用redis进行缓存&#xff0c;第二次乃至后面访问相同的数据就只需要去…

Flutter基础 -- Dart 语言 -- 进阶使用

目录 1. 泛型 generics 1.1 泛型使用 1.2 泛型函数 1.3 构造函数泛型 1.4 泛型限制 2. 异步 async 2.1 异步回调 then 2.2 异步等待 await 2.3 异步返回值 3. 生成器 generate &#xff08;了解&#xff09; 3.1 同步生成器 sync* 使用 sync* 的场景 总结 3.2 异…

软件项目调研三部曲(调研计划,调研大纲,调研报告)原件获取

软件项目详细调研的目的是依据项目合同的要求&#xff0c;能够通过在客户现场&#xff0c;并通过访谈的方式&#xff0c;尽可能的了解客户的需求和业务现状&#xff0c;包括客户涉及到的业务部门的岗位设置、岗位职责、工作内容、工作流程、管理难点以及通过实施信息化系统的期…

Silanna UV光荣推出了一款革命性的高功率远紫外线LED

这款令人瞩目的光源&#xff0c;拥有令人震撼的235nm波长&#xff0c;并被巧妙地封装在紧凑的6.8mm结构中&#xff0c;其魅力与实力兼具。 今年六月&#xff0c;在苏格兰圣安德鲁斯大学举行的盛大2024年远紫外科学和技术国际大会&#xff08;ICFUST&#xff09;上&#xff0c;S…

深度剖析AI机会,数字人智能对话系统:未来的人机交互新范式

Datawhale干货 作者&#xff1a;邓恺俊&#xff0c;Datawhale成员 随着人工智能时代的到来&#xff0c;大模型的技术日新月异&#xff0c;我们不仅仅满足于文字之间的交互&#xff0c;希望能够有更近一步的交流。既然现在文字已经能够很好的模拟人类了&#xff0c;那随之而来的…

牛客网刷题 | BC120 争夺前五名

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 期中考试开始了&am…

基于非下采样小波包分析的滚动轴承故障诊断(MATLAB R2021B)

小波变换具有良好的时频局部化特性和多分辨率特性&#xff0c;可准确定位信号的突变点并可在不同尺度上描述信号的局部细节特征&#xff0c;被广泛应用于信号降噪。但标准正交小波变换不具有平移不变性&#xff0c;采用标准正交小波对信号消噪后&#xff0c;会在脉冲尖峰处产生…

Dubbo 3.x源码(21)—Dubbo服务引用源码(4)

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了createInvokerForRemote方法中的Wrapper有哪些以及作用&#xff0c;接下来我们将会的学习真正的本地、应用级别、接口级别的Protocol的引入逻辑&#xff0c;以及创建Proxy服务接口代理对象的逻…

UI学习的案例——照片墙

照片墙案例 在实现照片墙案例之前先讲一下userInteractionEnable这个属性。 首先这个属性属于UIView&#xff0c;这个属性是bool类型&#xff0c;如果为YES的话&#xff0c;这个UIView会接受有关touch和keyboard的相关操作&#xff0c;然后UIView就可以通过相应的一些方法来处…

Hive日志介绍

日志描述 日志路径&#xff1a;Hive相关日志的默认存储路径为“/var/log/Bigdata/hive/角色名”&#xff0c;Hive1相关日志的默认存储路径为“/var/log/Bigdata/hive1/角色名”&#xff0c;以此类推。 HiveServer&#xff1a;“/var/log/Bigdata/hive/hiveserver”&#xff0…

# log.info(“消息发送成功“); 红色报错 解决方案

log.info(“消息发送成功”); 红色报错 解决方案 一、错误描述&#xff1a; 在使用 idea 创建 maven 项目导入 lombok 依赖时&#xff0c;出现 log.info 报红错误&#xff0c;检查导入依赖正确&#xff0c;网络正常&#xff0c;错误依旧。 二、解决方案&#xff1a; 1、在 i…

MATLAB入门知识

目录 原教程链接&#xff1a;数学建模清风老师《MATLAB教程新手入门篇》https://www.bilibili.com/video/BV1dN4y1Q7Kt/ 前言 历史记录 脚本文件&#xff08;.m&#xff09; Matlab帮助系统 注释 ans pi inf无穷大 -inf负无穷大 i j虚数单位 eps浮点相对精度 0/&a…

架构设计-加密解决的基本工具方法

软件工程实施过程中&#xff0c;经常会用到加密解密相关的工具类&#xff0c;整理如下&#xff1a; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;import javax.crypto.Cipher; import java.security.*; import java.security.interfaces.RSAPrivateKey; imp…

利用CSS隐藏HTML元素并插入替代内容

在创建一个支持切换阅读模式和答题模式的Anki问答题模板中&#xff0c;我创建了一个支持切换阅读模式和答题模式的问答题模板&#xff0c;该文最终利用JavaScript将Anki输出的向下箭头删除&#xff0c;并插入自定义的提示语。经过进一步测试&#xff0c;发现实现上述功能完全不…

一步一学!如何通过SOLIDWORKS曲面放样绘制花瓶?

SOLIDWORKS中&#xff0c;我们对放样凸台的操作已经非常熟悉。现在&#xff0c;我们将进一步探索曲面菜单栏中的放样成型功能。 1、绘制草图 首先&#xff0c;同普通放样凸台建模相同&#xff0c;绘制放样轮廓及引导线段。 可通过创建基准面布置轮廓&#xff0c;利用穿透选项将…