©PaperWeekly 原创 · 作者 | 鬼谷子
引言
在上一篇基于流的深度生成模型中详解介绍了有关流的生成模型理论和方法。目前为止,基于 GAN 生成模型,基于 VAE 的生成模型,以及基于 flow 的生成模型它们都可以生成较高质量的样本,但每种方法都有其局限性。GAN 在对抗训练过程中会出现模式崩塌和训练不稳定的问题;VAE 则严重依赖于目标损失函数;流模型则必须使用专门的框架来构建可逆变换。
本文主要介绍关于扩散模型,其灵感来自于非平衡热力学。它们定义了扩散步骤的马尔可夫链,将随机噪声缓慢地添加到数据中,然后学习逆向扩散过程以从噪声中构造所需的数据样本。
与 VAE 或流模型不同,扩散模型是通过固定过程学习的,并且中间的隐变量与原始数据具有高维数维度。
优点:扩散模型既易于分析又很灵活。要知道易处理性和灵活性是生成建模中两个相互冲突的目标。易于处理的模型可以进行分析评估和拟合数据,但它们不能轻易地描述丰富数据集中的结构。灵活的模型可以拟合数据中的任意结构,但是从这些模型中评估、训练或采样的成本会很高。
缺点:扩散模型依赖于长马尔可夫扩散步骤链来生成样本,因此在时间和计算方面成本会很高。目前已经提出了新的方法来使该过程更快,但采样的整体过程仍然比 GAN 慢。
前向扩散过程
给定从真实数据分布 中采样的数据点,在一个前向扩散过程,在 步里逐步向样本中添加少量高斯噪声,从而产生一系列噪声样本 ,其步长由方差计划 来控制,则有:
在扩散过程进行的时候,随着时长步长 的增大,数据样本 逐渐失去其可区分的特征。最终,当 , 等价于各向同性高斯分布(各向同性的高斯分布即球形高斯分布,特指的是各个方向方差都一样的多维高斯分布,协方差为正实数与单位矩阵相乘)。
上述过程的一个很好的特性是可以使用重新参数化技巧以封闭形式在任意时间步长 对 进行采样。令 和 ,进而则有:
其中 , 融合两个高斯分布。当合并两个具有不同方差 和 的高斯分布时,得到的新的高斯分布是 ,其中合并的标准差为:
通常情况下,噪声越大更新的步长也会随着调大,则有 ,所以 。
更新过程
Langevin 动力学是物理学中的一个概念,用于对分子系统进行统计建模。结合随机梯度下降,随机梯度朗之万动力学可以仅使用马尔可夫更新链中的梯度 从概率密度 生成样本:
其中 为步长。当 时,, 则等于真实概率密度 。与标准 SGD 相比,随机梯度 Langevin 动力学将高斯噪声注入到参数更新中,以避免陷入到局部最小值中。
反向扩散过程
如果将上述过程进行反转并从概率分布 中进行采样,则能够从高斯噪声输入 中重新构造真实样本。需要注意的是如果 足够小, 也将是高斯分布。但这需要使用整个数据集进行估计,因此需要学习一个模型 来近似这些条件概率,以便进行反向扩散过程:
当条件为 时,反向条件概率是容易估计处理的:
使用贝叶斯法则可以得到:其中 函数与 无关。按照标准高斯密度函数,均值和方差可以参数化如下:
将 带入到以上公式中则有:
这种设置与 VAE 非常相似,因此可以使用变分下限来优化负对数似然,进而则有:
使用 Jensen 不等式也很容易得到相同的结果。假设要最小化交叉熵作为学习目标,则有:
为了将方程中的每个项转换为可解析计算的,可以将目标进一步重写为几个 KL 散度和熵项的组合:
分别标记变分下界损失中的每个分量为:
中的每个 KL 项(除了 )都测量两个高斯分布之间的距离,因此可以以闭式解来计算它们。 是常数,在训练过程中可以被忽略,其原因在于 没有可学习的参数并且 是高斯噪声, 可以从 中推导出来。
训练损失的参数化
当需要学习一个神经网络来逼近反向扩散过程中的条件概率分布
402 Payment Required
时,即想训练 预测 。因为 在训练时可用作输入,可以重新参数化高斯噪声项,以使其从时间步长 的输入 中预测 :
损失项 是被参数化目的是最小化来自 的差异:
根据经验 Ho 等人的经验,发现在忽略加权项的简化目标下,训练扩散模型效果更好:
所以最终简化后的目标函数是:
其中 是不取决于 的常数。
噪声评分条件网络(NCSN)
Song 和 Ermon 等人提出了一种基于分数的生成建模方法,其中样本是通过 Langevin 动力学使用分数匹配估计的数据分布梯度生成的。每个样本 的密度概率得分定义为其梯度 。训练一个分数网络 来估计它。
为了在深度学习设置中使用高维数据使其可扩展,有研究建议使用去噪分数匹配(向数据添加预先指定的小噪声)或切片分数匹配。Langevin 动力学可以仅使用迭代过程中的分数从概率密度分布中采样数据点 。然而,根据流形假设,大多数数据预计集中在低维流形中,即使观察到的数据可能看起来只是任意高维。
由于数据点无法覆盖整个空间 ,因此对分数估计产生了负面影响。在数据密度低的区域,分数估计不太可靠。添加一个小的高斯噪声使扰动的数据分布覆盖整个空间后,分数评估网络的训练变得更加稳定。Song 和 Ermon 等人通过用不同级别的噪声扰动数据来改进它,并训练一个噪声条件评分网络来共同估计所有扰动数据在不同噪声级别下的分数。
和 的参数化
参数化 的过程中,Ho 等人将前向方差被设置为一系列线性增加的常数,从 到 。与 之间的归一化图像像素值相比,它们相对较小。在此设置下实验中的扩散模型生成了高质量的样本,但仍然无法像其他生成模型那样实现具有竞争力。Nichol 和 Dhariwal 等人提出了几种改进技术来帮助扩散模型获得更低的 NLL。
其中一项改进是使用基于余弦的方差计划。调度函数的选择可以是任意的,只要它在训练过程的中间提供一个近线性的下降和围绕 和 的细微变化:
其中当 时小偏移量 是为了防止 接近时太小。
参数化 的过程中,Ho 等人选择固定 为常量,而不是使它们可学习并设置 , 其中 是不可学习的。实验发现学习对角方差 会导致训练不稳定和样本质量下降。Nichol 和 Dhariwal 等人提出将学习 作为 和 之间的插值,通过模型预测混合向量 ,则有:
简单的目标 并不依赖于 。为了增加依赖性,他们构建了一个混合目标
402 Payment Required
,其中 很小并且停止在 的梯度,以便 仅指导 的学习。可以观察到,由于梯度噪声,优化 是非常困难的,因此他们建议使用具有重要性采样的时间平均平滑版本。加速扩散模型采样
通过遵循反向扩散过程的马尔可夫链从 DDPM 生成样本非常慢,可能长达一个或几千个步骤。从 DDPM 中采样 50000 个大小为 的图像大约需要 20 小时,但从 Nvidia 2080 Ti GPU上 的 GAN 中采样不到一分钟。一种简单的方法是运行跨步抽样计划,每一步都进行抽样更新,以减少中间的采样过程。对于另一种方法,需要重写 以通过所需的标准偏差 进行参数化:
因为
402 Payment Required
,因此则有:令 ,进而可以通过调整为超参数 来控制采样随机性。 的特殊情况使采样过程具有确定性,这样的模型被命名为去噪扩散隐式模型(DDIM)。DDIM 具有相同的边际噪声分布,但确定性地将噪声映射回原始数据样本。在生成过程中,只对扩散步骤的一个子集 进行采样为 ,推理过程变为:
可以观察到 DDIM 在较小采样数的情况下可以产生最佳质量的样本,而 DDPM 在较小采样数的情况下表现要差得多。使用 DDIM 可以将扩散模型训练到任意数量的前向步骤,但只能从生成过程中的步骤子集进行采样。总结来说,与 DDPM 相比,DDIM 优点如下:
使用更少的步骤生成更高质量的样本。
由于生成过程是确定性的,因此具有“一致性”属性,这意味着以相同隐变量为条件的多个样本应该具有相似的高级特征。
由于一致性,DDIM 可以在隐变量中进行语义上有意义的插值。
条件生成
在 ImageNet 数据上训练生成模型时,通常会生成以类标签为条件的样本。为了明确地将类别信息纳入扩散过程,Dhariwal 和 Nichol 对噪声图像 训练了一个分类器 ,并使用梯度 来引导扩散采样过程朝向目标类别标签 。消融扩散模型(ADM)和带有附加分类器引导的模型(ADM-G)能够获得比当前最好生成模型(BigGAN)更好的结果。
此外,Dhariwal 和 Nichol 等人通过对 UNet 架构进行一些修改,显示出比具有扩散模型的 GAN 更好的性能。模型架构修改包括更大的模型深度/宽度、更多注意力头、多分辨率注意力、用于上/下采样的 BigGAN 残差块、残差连接重新缩放和自适应组归一化(AdaGN)。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
文章出处登录后可见!