DDPM公式推导(六)

news2024/10/6 18:25:07

为了整篇文章的完整性,给出文章剩余部分的翻译。这篇博客没有公式推导部分。

4 Experiments

我们在所有实验中设置 T = 1000 T=1000 T=1000,以使采样过程中神经网络评估的次数与之前的工作 [53, 55] 相匹配。我们将前向过程的方差设置为从 β 1 = 1 0 − 4 \beta_1=10^{-4} β1=104 β T = 0.02 \beta_T=0.02 βT=0.02 线性增加的常数。这些常数被选择为相对于缩放到 [ − 1 , 1 ] [-1,1] [1,1] 的数据较小,确保逆过程和前向过程具有大致相同的函数形式,同时将 x T \mathbf{x}_T xT 的信噪比保持在尽可能小的范围内(在我们的实验中 L T = L_T= LT= D K L ( q ( x T ∣ x 0 ) ∥ N ( 0 , I ) ) ≈ 每维 1 0 − 5 D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T \mid \mathbf{x}_0\right) \| \mathcal{N}(\mathbf{0}, \mathbf{I})\right) \approx 每维 10^{-5} DKL(q(xTx0)N(0,I))每维105 比特)。

为了表示逆过程,我们使用一个类似于未掩码 PixelCNN++ [52, 48] 的 U-Net 主干,整个过程中使用组归一化 [66]。参数在时间上是共享的,使用 Transformer 正弦位置嵌入 [60] 指定时间。我们在 16 × 16 16 \times 16 16×16 特征图分辨率上使用自注意力机制 [63, 60]。详情见附录 B。

4.1 Sample quality


表1

表 1 显示了 CIFAR10 上的 Inception 分数、FID 分数和负对数似然(无损代码长度)。我们的 FID 得分为 3.17,我们的无条件模型比文献中的大多数模型(包括类条件模型)实现了更好的样本质量。我们的 FID 分数是根据训练集计算的,这是标准做法;当我们针对测试集进行计算时,得分为 5.24,这仍然优于文献中的许多训练集 FID 得分。

我们发现,使用真实变分下界训练模型在代码长度上比使用简化目标更好,这与预期一致,但后者在样本质量上表现最佳。具体请参见图1中的 CIFAR10 和 CelebA-HQ 256 × 256 256 \times 256 256×256 样本,图3 和 图4 中的 LSUN 256 × 256 256 \times 256 256×256 样本 [71],更多内容见附录 D。

图3

图 3:LSUN 教堂样本。 FID=7.89

图4

图 4:LSUN 卧室样品。 FID=4.90

4.2 Reverse process parameterization and training objective ablation


在表2中,我们展示了逆过程参数化和训练目标(第3.2节)对样本质量的影响。我们发现,基线选项预测 μ ~ \tilde{\boldsymbol{\mu}} μ~ 仅在真实变分下界训练时效果良好,而不是在未加权的均方误差上进行训练,这是一种类似于公式(14)的简化目标。我们还发现,通过在变分下界中引入参数化的对角 Σ θ ( x t ) \boldsymbol{\Sigma}_\theta\left(\mathbf{x}_t\right) Σθ(xt) 来学习逆过程方差,会导致训练不稳定和样本质量下降,而固定方差则效果更好。我们提出的预测 ϵ \epsilon ϵ 方法,在使用固定方差的变分下界训练时,表现与预测 μ ~ \tilde{\boldsymbol{\mu}} μ~ 差不多,但在使用我们的简化目标训练时,表现要好得多。

表2

4.3 Progressive coding


表 1 还显示了我们的 CIFAR10 模型的代码长度。训练和测试之间的差距最多为每个维度 0.03 位,这与其他基于可能性的模型报告的差距相当,表明我们的扩散模型没有过拟合(有关最近邻可视化,请参阅附录 D)。尽管如此,虽然我们的无损码长优于基于能量的模型和使用退火重要性采样的分数匹配报告的大估计[11],但它们与其他类型的基于可能性的生成模型[7]不具有竞争力。

由于我们的样本质量依然很高,我们得出结论,扩散模型具有使其成为优秀有损压缩器的归纳偏置。将变分下界项 L 1 + ⋯ + L T L_1+\cdots+L_T L1++LT 视为码率,将 L 0 L_0 L0 视为失真,我们的 CIFAR10 模型在最高质量样本下的码率为 1.78 \mathbf{1.78} 1.78 bits/dim,失真为 1.97 b i t s / d i m \mathbf{1.97} \mathrm{bits} / \mathrm{dim} 1.97bits/dim,相当于在0到255的范围内均方根误差为0.95。超过一半的无损码长描述了不可察觉的失真。

图5

逐步有损压缩。我们可以通过引入逐步有损编码进一步探讨模型的率失真行为,这种编码形式类似于公式(5):参见算法3和4,它们假设访问某种过程,例如最小随机编码 [ 19 , 20 ] [19,20] [19,20],可以使用大约 D K L ( q ( x ) ∥ p ( x ) ) D_{\mathrm{KL}}(q(\mathbf{x}) \| p(\mathbf{x})) DKL(q(x)p(x)) bits 来传输样本 x ∼ q ( x ) \mathbf{x} \sim q(\mathbf{x}) xq(x),适用于任何 p p p q q q 分布,其中只有 p p p 是预先提供给接收者的。当应用于 x 0 ∼ q ( x 0 ) \mathbf{x}_0 \sim q\left(\mathbf{x}_0\right) x0q(x0) 时,算法3和4按顺序传输 x T , … , x 0 \mathbf{x}_T, \ldots, \mathbf{x}_0 xT,,x0,使用的总期望码长等于公式(5)。接收者在任何时刻 t t t,都有完全可用的部分信息 x t \mathbf{x}_t xt,并可以逐步估计:
x 0 ≈ x ^ 0 = ( x t − 1 − α ˉ t ϵ θ ( x t ) ) / α ˉ t \mathbf{x}_0 \approx \hat{\mathbf{x}}_0 = \left(\mathbf{x}_t - \sqrt{1 - \bar{\alpha}_t} \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t\right)\right) / \sqrt{\bar{\alpha}_t} x0x^0=(xt1αˉt ϵθ(xt))/αˉt
根据公式(4)。(随机重构 x 0 ∼ p θ ( x 0 ∣ x t ) \mathbf{x}_0 \sim p_\theta\left(\mathbf{x}_0 \mid \mathbf{x}_t\right) x0pθ(x0xt) 也是有效的,但我们在此不考虑,因为它使得失真更难评估。)图5展示了在 CIFAR10 测试集上的率失真图。在每个时刻 t t t,失真计算为均方根误差 ∥ x 0 − x ^ 0 ∥ 2 / D \sqrt{\left\|\mathbf{x}_0 - \hat{\mathbf{x}}_0\right\|^2 / D} x0x^02/D ,码率计算为截至时刻 t t t 为止接收到的累积比特数。失真在率失真图的低码率区域急剧下降,这表明大多数比特确实分配给了不可察觉的失真。

算法3和算法4

渐进生成。我们还进行了渐进无条件生成过程,该过程由随机比特的渐进解压缩组成。换句话说,我们通过使用算法2从逆过程中进行采样来预测逆过程的结果, x ^ 0 \hat{\mathbf{x}}_0 x^0。 图6和图10展示了逆过程中 x ^ 0 \hat{\mathbf{x}}_0 x^0的样本质量。大尺度图像特征首先出现,而细节最后出现。 图7显示了具有各种 t t t值的冻结 x t \mathbf{x}_t xt的随机预测 x 0 ∼ p θ ( x 0 ∣ x t ) \mathbf{x}_0 \sim p_\theta\left(\mathbf{x}_0 \mid \mathbf{x}_t\right) x0pθ(x0xt)。当 t t t较小时,除了细节之外的所有内容都被保留,当 t t t较大时,只有大尺度特征被保留。也许这些是概念压缩的提示[18]。

图6

图7

注意,可变分界(5)可以重写为:
L = D K L ( q ( x T ) ∥ p ( x T ) ) + E q [ ∑ t ≥ 1 D K L ( q ( x t − 1 ∣ x t ) ∥ p θ ( x t − 1 ∣ x t ) ) ] + H ( x 0 ) ( 16 ) L=D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\right) \| p\left(\mathbf{x}_T\right)\right)+\mathbb{E}_q\left[\sum_{t \geq 1} D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right) \| p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right)\right)\right]+H\left(\mathbf{x}_0\right) \quad(16) L=DKL(q(xT)p(xT))+Eq[t1DKL(q(xt1xt)pθ(xt1xt))]+H(x0)(16)
(见附录A推导)。现在考虑将扩散过程长度 T T T设置为数据的维度,定义正向过程使得 q ( x t ∣ x 0 ) q\left(\mathbf{x}_t \mid \mathbf{x}_0\right) q(xtx0)将所有概率质量放在 x 0 \mathbf{x}_0 x0上,其中前 t t t个坐标被掩盖(即 q ( x t ∣ x t − 1 ) q\left(\mathbf{x}_t \mid \mathbf{x}_{t-1}\right) q(xtxt1)掩盖第 t t t个坐标),将 p ( x T ) p\left(\mathbf{x}_T\right) p(xT)设置为将所有质量放在空白图像上,并且为了论证的目的,假设 p θ ( x t − 1 ∣ x t ) p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right) pθ(xt1xt)是一个完全表达式的条件分布。通过这些选择, D K L ( q ( x T ) ∥ p ( x T ) ) = 0 D_{\mathrm{KL}}\left(q\left(\mathbf{x}_T\right) \| p\left(\mathbf{x}_T\right)\right)=0 DKL(q(xT)p(xT))=0,并且最小化 D K L ( q ( x t − 1 ∣ x t ) ∥ p θ ( x t − 1 ∣ x t ) ) D_{\mathrm{KL}}\left(q\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right) \| p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right)\right) DKL(q(xt1xt)pθ(xt1xt))会训练 p θ p_\theta pθ以不改变坐标 t + 1 , … , T t+1, \ldots, T t+1,,T并且预测在给定 t + 1 , … , T t+1, \ldots, T t+1,,T的情况下第 t t t个坐标。因此,使用这种特定扩散来训练 p θ p_\theta pθ就是在训练一个自回归模型。

因此,我们可以将高斯扩散模型(2)解释为一种具有广义位排序的自回归模型,这种位排序无法通过重新排列数据坐标来表达。先前的研究表明,这种重新排序会引入对样本质量有影响的归纳偏差,因此我们推测高斯扩散模型具有类似的作用,也许效果更好,因为与掩盖噪声相比,高斯噪声可能更自然地添加到图像中。此外,高斯扩散长度不限于等于数据维度;例如,我们使用 T = 1000 T=1000 T=1000,这比我们实验中 32 × 32 × 3 32 \times 32 \times 3 32×32×3 256 × 256 × 3 256 \times 256 \times 3 256×256×3图像的维度要小。高斯扩散可以缩短以实现快速采样,或者延长以实现模型的表现力。

4.4 Interpolation


我们可以在潜空间中使用 q q q 作为随机编码器插值源图像 x 0 , x 0 ′ ∼ q ( x 0 ) \mathbf{x}_0, \mathbf{x}_0^{\prime} \sim q\left(\mathbf{x}_0\right) x0,x0q(x0),得到 x t , x t ′ ∼ q ( x t ∣ x 0 ) \mathbf{x}_t, \mathbf{x}_t^{\prime} \sim q\left(\mathbf{x}_t \mid \mathbf{x}_0\right) xt,xtq(xtx0),然后通过逆过程将线性插值的潜在 x ‾ t = ( 1 − λ ) x 0 + λ x 0 ′ \overline{\mathbf{x}}_t=(1-\lambda) \mathbf{x}_0+\lambda \mathbf{x}_0^{\prime} xt=(1λ)x0+λx0 解码成图像空间,即 x ‾ 0 ∼ p ( x 0 ∣ x ‾ t ) \overline{\mathbf{x}}_0 \sim p\left(\mathbf{x}_0 \mid \overline{\mathbf{x}}_t\right) x0p(x0xt)。实际上,我们使用逆过程来消除线性插值源图像的破坏版本,如图8(左侧)所示。我们固定了不同 λ \lambda λ 值的噪声,因此 x t \mathbf{x}_t xt x t ′ \mathbf{x}_t^{\prime} xt 保持不变。图8(右侧)显示了 CelebA-HQ 256 × 256 256 \times 256 256×256 原始图像 ( t = 500 ) (t=500) (t=500) 的插值和重建。逆过程产生了高质量的重建图像,以及在姿势、肤色、发型、表情和背景等属性上平滑变化的合理插值,但不包括眼镜。较大的 t t t 导致更粗糙和更多样化的插值,在 t = 1000 t=1000 t=1000 时产生新样本(附录图9)。

图9

5 Related Work

尽管扩散模型可能类似于流 [ 9 , 46 , 10 , 32 , 5 , 16 , 23 ] [9,46,10,32,5,16,23] [9,46,10,32,5,16,23]和变分自编码器 [ 33 , 47 , 37 ] [33,47,37] [33,47,37],但扩散模型设计为 q q q没有参数,顶层潜变量 x T \mathbf{x}_T xT与数据 x 0 \mathbf{x}_0 x0的互信息几乎为零。我们的 ϵ \epsilon ϵ-prediction逆过程参数化建立了扩散模型与在多个噪声水平上使用退火Langevin动力学进行采样的去噪分数匹配之间的联系[55,56]。然而,扩散模型允许直接评估对数似然,训练过程明确地使用变分推断训练Langevin动力学采样器(详情见附录C)。该联系还有反向推论,即某种加权形式的去噪分数匹配与通过变分推断训练类似Langevin采样器是相同的。学习马尔可夫链的转移算子的其他方法包括注入训练[2]、变分回推[15]、生成随机网络[1]等 [ 50 , 54 , 36 , 42 , 35 , 65 ] [50,54,36,42,35,65] [50,54,36,42,35,65]

由于知道得分匹配与基于能量的建模之间的联系,我们的工作可能对其他关于基于能量的模型的最新研究 [ 67 − 69 , 12 , 70 , 13 , 11 , 41 , 17 , 8 ] [67-69,12,70,13,11,41,17,8] [6769,12,70,13,11,41,17,8]具有影响。我们的速率失真曲线是在一个变分界评估中随时间计算的,这让人联想到在一个退火重要性采样运行中可以根据失真惩罚计算速率失真曲线[24]。我们的渐进解码论点可以在卷积DRAW和相关模型 [ 18 , 40 ] [18,40] [18,40]中看到,并且可能导致更一般的设计用于自回归模型的子尺度排序或采样策略 [ 38 , 64 ] [38,64] [38,64]

6 Conclusion

我们使用扩散模型提供了高质量的图像样本,并且我们发现了扩散模型和变分推理之间的联系,用于训练马尔可夫链、去噪分数匹配和退火朗之万动力学(以及扩展的基于能量的模型)、自回归模型和渐进有损模型压缩。由于扩散模型似乎对图像数据具有出色的归纳偏差,因此我们期待研究它们在其他数据模式中的实用性以及作为其他类型的生成模型和机器学习系统的组件。

Broader Impact

我们在扩散模型方面的工作与其他类型深度生成模型的现有工作具有相似的范围,例如改善 GAN、流、自回归模型等样本质量的努力。我们的论文代表了使扩散模型成为该技术系列中普遍有用的工具的进展,因此它可能有助于放大生成模型已经(并将)对更广泛的世界产生的影响。

不幸的是,有许多众所周知的生成模型的恶意使用。样本生成技术可用于出于政治目的制作知名人物的虚假图像和视频。虽然假图像是在软件工具可用之前很久就手动创建的,但像我们这样的生成模型使这个过程变得更容易。幸运的是,CNN 生成的图像目前存在允许检测的细微缺陷[62],但生成模型的改进可能会使检测变得更加困难。生成模型还反映了训练它们的数据集中的偏差。由于许多大型数据集是通过自动化系统从互联网收集的,因此很难消除这些偏差,尤其是当图像未标记时。如果在这些数据集上训练的生成模型的样本在整个互联网上激增,那么这些偏见只会进一步强化。

另一方面,扩散模型可能对数据压缩有用,随着数据分辨率的提高和全球互联网流量的增加,这对于确保广大受众访问互联网可能至关重要。我们的工作可能有助于对未标记的原始数据进行表征学习,以实现从图像分类到强化学习的大量下游任务,并且扩散模型也可能适用于艺术、摄影和音乐的创造性用途。

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

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

相关文章

Redis 6.0新特性详解

Redis 6.0新特性主要有3个:多线程、Client Side Cache、Acls。下面详细说明一下。 1.多线程 redis 6.0 提供了多线程的支持,redis 6 以前的版本,严格来说也是多线程,只不过执行用户命令的请求时单线程模型,还有一些线…

基于YOLOv10深度学习的高密度人脸智能检测与统计系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【PPT设计前沿】2024年PPT新趋势,让你的演示文稿引领潮流!

文章目录 一、简约风格的新诠释二、动态元素与交互性的深度融合三、个性化与定制化的独特展现四、大数据与可视化的创新应用五、绿色环保与可持续性的倡导《PPT完美设计入门与进阶/入门与进阶》图书特色内容简介目录前言/序言 获取方式 随着技术的不断革新和创意设计的蓬勃发展…

注解详解系列 - @ResponseStatus

注解简介 在今天的每日一注解中,我们将探讨ResponseStatus注解。ResponseStatus是Spring框架中的一个注解,用于为控制器方法指定HTTP响应状态码和理由短语。 注解定义 ResponseStatus注解用于标记控制器方法或异常类,以指示HTTP响应的状态码…

【神经网络】基于CNN(卷积神经网络)构建猫狗分类模型

文章目录 解决问题数据集探索性数据分析数据预处理数据集分割数据预处理 构建模型并训练构建模型训练模型 结果分析与评估模型保存结果预测经验总结 解决问题 针对经典猫狗数据集,基于卷积神经网络,构建猫狗二元分类模型,使用数据集进行参数…

我主编的电子技术实验手册(08)——串联电阻分压

本专栏是笔者主编教材(图0所示)的电子版,依托简易的元器件和仪表安排了30多个实验,主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】,精心设计的【实验步骤】,全面丰富的【思考习…

由于bug造成truncate table卡住问题

客户反应truncate table卡主,检查awr发现多个truncate在awr报告期内一直没执行完,如下: 检查ash,truncate table表的等待事件都是“enq: RO - fast object reuse”和“local write wait” 查找“enq: RO - fast object reuse”&am…

qmt量化交易策略小白学习笔记第35期【qmt编程之指数数据--如何获取指数行情数据】

qmt编程之获取沪深指数数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取指数行情数…

机器学习笔记——无监督学习下的k均值聚类

k均值聚类算法原理 目标是将样本分类 原理:首先随机选择k何点作为中心,然后计算每一个点到中心的聚类,然后计算到每个中心的距离,选择到中心最短距离的那个中心所在的类进行归类,然后更新中心点,一直重复。…

TikTok带货崛起:从短视频平台到电商平台的转型

近年来,随着社交媒体的迅速发展,TikTok以其独特的短视频形式迅速在全球范围内风靡,不仅吸引了海量用户,还成功地抓住了年轻一代的注意力。随着用户量的激增和内容生态的丰富,TikTok也开始探索新的商业模式,…

看完这篇文章你才能了解什么是大模型

引言 近年来,人工智能(AI)技术迅速崛起,成为全球科技领域的热门话题。大模型(Large Language Model)技术以其庞大的参数和复杂的结构,为AI提供了强大的计算和学习能力,推动着AI技术…

Python热涨落流体力学求解算法和英伟达人工智能核评估模型

🎯要点 🎯平流扩散简单离散微分算子 | 🎯相场模拟:简单旋节线分解、枝晶凝固的 | 🎯求解二维波动方程,离散化时间导数 🎯英伟达 A100 人工智能核性能评估模型 | 🎯热涨落流体动力学…

算法基础精选题单 枚举 (合适的枚举顺序+合适的枚举内容+前缀和和差分) (个人题解)

前言: 今日第一份题解,题目主要是于枚举有关,枚举算是算法题中较为简单的部分了(对我来说还是有些难想的),话不多说,见下。 正文: 题单:237题】算法基础精选题单_ACM竞赛…

6.18 作业

qt中用定时器实现闹钟 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTime>//时间类 #include<QTimer>//时间事件类 #include<QtTextToSpeech/QTextToSpeech>//文本转语音类QT_BEGIN_NAMESPACE namespace Ui { class Widge…

【Linux环境下Hadoop部署—Xshell6】解决“要继续使用此程序,您必须应用最新的更新或使用新版本。”

问题描述 打开xshell使用&#xff0c;弹出&#xff1a; 解决方案&#xff1a; 修改安装目录下面的 nsilense.dll 文件 用二进制编辑器&#xff08;notepad的HEX-Editor插件&#xff09;打开Xshell/Xftp安装目录下的 nslicense.dll。 HexEdit插件安装&#xff1a; 1.下载HexEdi…

leetcode21 合并两个有序单链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[]示例…

Java23种设计模式(二)

1、单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有…

MySQL日志——redolog

redo log&#xff08;重做日志&#xff09; 为什么需要redo log&#xff1f; 在mysql提交一个事务后&#xff0c;这个事务所作的数据修改并不会直接保存到磁盘文件中&#xff0c;而是先保存在buffer pool缓冲区中&#xff0c;在需要读取数据时&#xff0c;先从缓冲区中找&…

【MySQL进阶之路 | 高级篇】SQL执行过程

1. 客户端与服务器的连接 运行中的服务器程序与客户端程序本质上都是计算机的一个进程&#xff0c;所以客户端进程向服务器端进程发送请求并得到相应过程的本质就是一个进程间通信的过程. 我们可以使用TCP/IP网络通信协议&#xff0c;命名管道和共享内存等方式&#xff0c;实…

胡说八道(24.6.17)——STM32以及通信杂谈

之前的文章中咱们谈到了STM32的时钟&#xff0c;今天我们来联系实际&#xff0c;来看看内部时钟下和外部时钟下的两种不同时钟的电平翻转。本次终于有硬件了&#xff0c;是最基础的STM32F103C8T6。 首先是&#xff0c;内部时钟的配置操作。 系统的内部时钟是72MHz&#xff0c;由…