泊松流生成模型简介

泊松流生成模型简介

一、说明

        泊松流生成模型 (PFGM) 是一种新型的生成深度学习模型,与扩散模型类似,其灵感来自物理学。在这本简单易懂的指南中了解 PFGM 背后的理论以及如何使用它们生成图像。        

        生成式人工智能模型在过去几年中取得了长足的进步。受物理启发的扩散模型已在多个领域达到最先进的性能,为Stable Diffusion、DALL-E 2和Imagen等模型提供支持。

        麻省理工学院的研究人员最近推出了一种新的受物理学启发的生成模型,这次的灵感来自静电学领域。这种新型模型——泊松流生成模型(PFGM) ——将数据点视为带电粒子。通过跟踪数据点产生的电场,PFGM 可以创建全新的数据。下面我们看到使用 PFGM 生成的人脸图像:

使用 PFGM 生成的CelebA图像(视频由 PFGM 作者提供)

        PFGM 为新的研究途径奠定了令人兴奋的基础,特别是考虑到它们在图像生成任务上比扩散模型快 10-20 倍,并且性能相当。

        在本文中,我们将在学习如何使用PFGM进行训练和采样之前先从高层次了解PFGM 理论。之后,我们将再次审视该理论,这次从第一原理开始进行深入探讨。然后我们将看看 PFGM 如何与其他模型和其他结果相结合,然后以一些最后的话结束。如需对 PFGM 进行技术性较低、更直观的解释,请查看我们的物理学如何推进生成式 AI文章。让我们深入了解吧!

二、介绍

        在人工智能的发展过程中,多个生成模型系列不断发展。一些方法,例如标准化流,提供了样本可能性的明确估计。其他方法(例如GAN)无法显式计算可能性,但可以生成非常高质量的样本。

        在过去的几年中,人们为开发扩散模型进行了大量的研究工作。扩散模型从物理学,特别是热力学/统计物理学中汲取灵感,注意到例如气体的任何局部分布最终都会简单地通过随机运动扩散到均匀地填充整个空间。

        随着时间的推移,局部气体(紫色颗粒)将通过随机运动扩散均匀地填充房间

        也就是说,任何起始分布都会随着时间的推移转变为均匀分布。扩散模型从这个想法中汲取灵感,并将图像放置在“高维房间”中,以类似的方式用随机噪声破坏它们。

图像中的像素可以被视为局部粒子云,随着时间的推移,我们将其“扩散”成随机噪声

        我们的目标是训练一个机器学习模型,学习如何通过时间倒退,扭转这种腐败过程。如果我们能够成功学习这样的映射,那么我们就可以从简单分布(在扩散模型的情况下为高斯分布)到数据分布的转换。然后,我们可以简单地通过从高斯分布中采样并应用学习到的变换来生成数据。

        泊松流生成模型的灵感与扩散模型非常相似,但它们来自静电学领域而不是热力学领域。基本发现是,超平面中电子的任何分布都会产生电场,随着分布根据场定义的动力学随时间演化,该电场将分布转换为均匀角分布。

将数据分布视为电荷分布定义了一个电场,该电场随着时间的推移将分布转变为均匀的半球

        如果我们知道分布产生的电场(又名泊松场),那么我们可以从半球上均匀采样的点开始,逆时运行动力学以恢复原始数据分布。因此,物理定律提供了简单分布和数据分布之间的可逆映射,从而产生了一种生成类似于标准化流的新数据的方法。

了解了 PFGM 的总体工作原理后,现在让我们仔细看看该工作原理在实践中是如何体现的。

三、泊松流生成模型 - 概述

        如上所述,PFGM 的性能取决于超平面中(几乎)任何分布生成的泊松场在足够远的距离处导致均匀角度分布的结果。直观地,让我们考虑一下为什么会出现这种情况。

        考虑任意电荷分布产生的电场。非常接近分布,电场将非常复杂,并且通常具有高曲率。

电荷分布(紫色)及其产生的电场线(黑色)

然而,在距电荷分布很远的距离d处,场要简单得多。在这样的距离下,电荷分布中的所有点距d的距离大致相同。这意味着电荷分布可以被视为“塌陷”到一点,将其所有电荷集中在该点上。点电荷的电场非常简单 - 方向呈放射状,大小与距该点的距离成反比:

在远处,电荷分布“看起来像”点电荷,具有相应的简单电场(泊松)

        因此,当我们“缩小”电荷分布时,它看起来越来越像具有相应电场的点电荷:

        一般来说,物理场表现良好,电磁场也不例外。因此,分布(或源)附近的局部复杂电场必须以平滑的方式连接到远离分布的电场,我们已经看到该电场是纯径向的,因此电场线将如下所示:

        假定电场在很远的距离处是径向的,则与场相切的表面在该距离处是球形的。PFGM 作者证明,该表面不仅是球形的,而且其磁通密度也是均匀的下面我们看到z=0平面上的心形电荷分布及其产生的一些电场线(黑色箭头)。通过封闭半球表面的磁通密度(几乎)是均匀的。

证明直觉

(来源)

因此,如果我们让电荷分布沿着场力线演化,它将转变为均匀的半球形分布。

通过跟随它产生的电场线,心形分布随着时间的推移演变成均匀的角度分布(从源修改)

如果我们学习高维空间中的泊松场(例如图像数据分布),那么我们可以简单地从高维半球均匀采样点并逆时运行动力学以从数据分布生成图像:

半球上的均匀采样点可以通过数据分布生成的泊松场向后演化,将其转换为数据分布的样本(从源修改)

我们如何学习和使用数据分布生成的泊松场?

3.1 学习泊松场

        我们寻求对数据分布生成的泊松场影响下的粒子动力学进行建模。现在我们来看看我们是如何学习这个泊松场的。

        术语说明

        第 1 步 - 增强数据

        下面我们看到一个视频,其中拼写为“PFGM”的分布根据其生成的泊松场而演变。特别是,我们注意到数据分布位于2维平面中,但映射到3维半球  上

动画由作者提供

        对于 PFGM 来说,这通常是正确的 - N 维数据通过附加维度 z进行增强,并放置在新的 (N+1) 维空间的z=0超平面中。然后将数据映射到 (N+1) 维半球。

        这种空间增强的原因是为了避免模式崩溃。下面我们看到由 XY 平面上的均匀圆盘生成的(负)泊松场。我们的采样过程涉及随机选择空间中的点并跟随该场返回数据分布。正如我们所看到的,所有轨迹都会收敛到原点,这意味着我们的模型将生成没有变化的图像,因此会遭受模式崩溃。

在不增加额外维度的情况下,所有轨迹都会收敛到原点,从而导致模式崩溃(来源)

使用附加维度增强数据可以避免此问题。下面我们在 XY 平面上从上方看到相同的二维均匀圆盘,其尺寸增加为 Z。

在使用附加维度增强数据后,可以使用更多与分布中不同点相交的轨迹,从而避免模式崩溃(来源)

        虽然我们仍然拥有本质上的 2 维数据分布,但它现在嵌入到 3 维空间中,从而生成3维泊松场。如果我们现在在这个 3 维空间中采样点,例如从 YZ 平面,并沿着它们的轨迹穿过场到达 XY 我们将获得一系列新的轨迹,这些轨迹不再塌陷到原点,而是与不同的点相交在数据分布中。也就是说,我们的模型不再遭受模式崩溃的困扰

        第 2步 - 计算经验场

        要使用 PFGM 进行采样,我们必须了解泊松场。为了准确地学习泊松场,我们需要准确地知道数据分布,但数据分布是我们寻求采样的对象。如果我们一开始就知道分布的分析形式,我们就不会关心它生成的泊松场。

        我们不会尝试学习精确的泊松场,而是学习由被视为点电荷的训练数据生成的经验场。 一些读者可能会注意到,这种方法让人想起我们在可微分规划简介中的运动学问题。

可微分编程 - 简单介绍

        下面是我们寻求为其生成数据的示例分布(浅紫色),以及从此分布中采样的几个数据点(紫色点)。此外,空间中有一个随机选择的点(红点),我们试图在该点估计泊松场(或者等效地计算经验场)。

        为了计算经验电场,我们将每个数据点电荷产生的电场相加,根据叠加原理,该电场相当于该点的总经验场。每个单独数据点的场贡献可以在下面看到为紫色箭头,以及由红色箭头表示的净场。

        我们计算空间中许多随机采样点的经验场,并且优先采样靠近数据点的点,因为场的曲率在这些区域中会更加剧烈,因此需要更高的分辨率才能充分近似。

        第 3 步 - 计算损失并更新函数逼近器

        为了使用 PFGM 进行采样,我们需要泊松场的连续 分析表示,而不是像我们上面计算的那样仅在离散点处的值。因此,我们必须在这些点上训练经验场的函数逼近器。这个近似器应该是什么样的?

        函数逼近器必须接受一个 N+1 维向量,表示增广空间中的一个点,并返回 N+1 维向量,表示该点的经验场。这种映射的自然选择是 PFGM 作者实现的 U-Net 架构。

U-Net(框图)接受空间中的点(蓝色向量)并返回从数据/电荷分布(紫色)采样的数据点生成的该点的近似经验场(红色向量)

为了训练 U-Net,我们只需计算批次 的平均 L2 损失,然后使用 Adam 等基于梯度的优化器进行训练。就是这样!

3.2 使用 PFGM 采样

        在上一节中,我们学习了如何为由许多被视为带电粒子的数据点生成的经验场训练函数逼近器。训练完场估计器后,我们如何实际使用该估计器从原始数据分布中进行采样?

        回想一下,泊松场的轨迹构成了数据分布和均匀半球之间的双射。因此,为了从数据分布中采样数据点,我们从均匀角度分布中采样点,然后使它们沿着泊松场向后移动,直到到达数据分布所在的z=0超平面。相应的微分方程为:

        该方程表示,在每个时刻,该点都应沿负泊松场的方向位移。因此,相应的解将是沿着泊松场向后追踪到z=0数据分布超平面的轨迹。

在实践中,为了使用泊松场生成模型生成数据,我们:

  1. 在大半球上均匀采样数据
  2. 使用ODE 求解器沿泊松场向后演化点
  3. 向后进化直到达到z=0,此时我们已经从训练分布中生成了新数据

实施说明

就是这样!下面我们可以看到粒子沿着泊松场向前和向后移动,形成我们上面看到的心形分布。

视频由作者提供

在视觉空间中,采样过程的向后演化如下所示:

视频由作者提供

现在我们了解了 PFGM 的工作原理,让我们看看如何使用它们来生成图像。或者,您可以跳至“深入探讨”部分进行更深入的处理。

3.3 使用 PFGM 生成图像

要了解如何使用 PFGM 生成图像,请按照以下 Colab 笔记本进行操作。

Colab 中的泊松流生成模型

该笔记本展示了如何为 Colab 设置本地环境、如何下载可用的预训练模型,以及如何使用它们对CIFAR-10、CelebA (62 x 64) 和LSUN 卧室数据集的图像进行采样。

想了解更多有关 JAX 的信息吗?

PFGM 存储库需要安装 JAX - 在我们易于理解的概述中了解您需要了解的有关 JAX 的所有信息。

一探究竟

请继续阅读下一部分,更深入地了解 PFGM 的理论,或跳至结果以了解 PFGM 的表现。

四、泊松流生成模型 - 深入探讨

        在本节中,我们将从基本原理开始对 PFGM 进行更深入的处理,以阐明其内部工作原理。我们首先讨论高斯定律。

4.1 高斯定律和势函数

        在 PFGM 中,我们寻求通过将数据分布转换为电荷分布并利用其产生的电场定义的动力学来从数据分布中进行采样。电荷分布与其产生的场之间的关系由高斯定律定义,如下所示(省略常数),其中E加粗表示它是矢量场。

        我们将势函数定义为负梯度为电场的任何函数。也就是说,phi 是E的势函数,如果

        虽然势函数有很多应用,但在我们的例子中,我们感兴趣的是根据势函数来表达高斯定律。

4.2 泊松方程和格林函数

        让我们使用势的定义将其代入高斯定律:

        结果称为泊松方程,该方程定义了势函数与生成该势函数的电荷密度函数之间的关系。泊松方程并不局限于电动力学,它渗透到物理和工程学的许多领域。这种等价形式的高斯定律有何特别之处?

        如果我们更仔细地观察这个结构,我们会看到三个部分。一个运算符 ( L )、该运算符作用的标量函数 ( y ) 以及作为该运算结果的另一个标量函数 ( f )。

        特别地,德尔平方算子称为拉普拉斯算子,是线性微分算子。也就是说,拉普拉斯算子的应用产生线性微分方程。给定Lf恢复y的问题是物理和工程中非常常见的问题。

        我们该如何解决这个问题呢?也就是说,对于给定的电荷分布,我们如何找到它生成的势函数?为此,我们将利用运算符的线性度。让我们尝试将电荷分布分成几个小块作为近似值,以单位高度的有限均匀分布为例。

我们将用点电荷来近似这个连续分布,在本例中使用 4。

点电荷由狄拉克δ函数表示。对于那些不熟悉的人来说,狄拉克 δ 函数(或简称“δ”)表示点电荷的电荷密度,使得该函数的积分等于单位电荷。通过这个近似,我们有

        这个近似有什么帮助?回想一下,拉普拉斯算子是一个线性 微分算子 - 我们现在将利用这种线性。特别是,我们调用第 i 个点电荷的势函数�我。然后我们有

其中最后一个等式由于拉普拉斯算子的线性而有效。因此,我们有(对于给定的一组边界条件)

        我们发现,我们可以通过对点电荷的电势求和来近似电势——这是一个非常有用的结果,直接源于拉普拉斯算子的线性。

        下面我们绘制了上述每个点电荷的电势(我们稍后将推导出其形式),以及点x'处的估计电势。我们通过求和该点每个单独势能的值来获得此估计,其中每个贡献都可以在图表中看到,其颜色与相关势能相同

        我们可以更简洁地表达这一点——定义 \varphi '作为以下方程的解:

        也就是说,给定空间i中的位置,�′给出空间x中任意点由以i为中心的狄拉克 δ 电荷分布生成的电势. 使用这个新定义的函数,让我们通过增加用于近似分布的点电荷数量来改进对连续电荷分布生成的真实电势的估计。对于空间中的任意一组点I ,我们有

        也就是说,电势已近似为以I中的点为中心的任意数量的点电荷电势之和。现在让我们将点数增加到无穷大,将离散和转换为积分:

        在这种情况下,我们的近似不再是近似,而是完全正确的(如果我们仅在非零电荷密度区域上积分),但有一个警告。回想一下,我们的 delta 函数表示单位点电荷的电荷密度。因此,在上面的积分中,我们隐含地假设我们有一个单位电荷密度。这对于上面的示例电荷密度来说效果很好,但是如果我们有不同的电荷密度怎么办,如下所示:

        我们现在必须考虑该分布中不同的电荷密度。在这种情况下,我们只需乘以 积分中的电荷密度,通过电荷分布缩放每个点的单位电荷密度,即可在积分时给出正确的值。我们也更换�′用符号G得到积分的最终形式:

        这是一个非常重要的结果。它表示,要求解任意电荷密度的泊松方程来计算其电势,这可能需要求解非常复杂的微分方程,而只需求解点电荷的泊松方程就足够了。只需这个解和上面的方程,原则上我们就可以计算出任何电荷分布的精确电势。上面的函数G被称为格林函数每个线性微分算子都有一个相应的格林函数(又名脉冲响应),它正是在算子作用时产生 delta 函数的函数。

        因此,总而言之,要找到任何电荷分布的精确电势,我们所要做的就是找到点电荷的电势,原则上我们可以计算任何电荷分布的精确电势。

4.3 拉普拉斯格林函数和电场

        如上所述,每个线性微分算子都有自己的格林函数。拉普拉斯算子的格林函数是

其中N是空间的维数,S是单位半径的(N-1)球体的表面积。

        我们对 PFGM 的目标;然而,是学习泊松场而不是势函数。我们的直觉可能告诉我们,上述论点,即势函数可以被视为点电荷势的总和,也适用于泊松场。这个直觉确实是正确的,我们可以从数学上看出如下

        其中x下标表示相对于x获取梯度,因此可以毫无问题地与积分进行交换。也就是说,将泊松场估计为由点电荷生成的泊松场之和是有效的

        在我们的例子中,格林函数(即由点电荷生成的泊松场)的梯度是

证明

        假设我们可以利用这个事实来估计泊松场,那么我们如何使用该场来生成数据呢?

4.4 PFGM 粒子动力学

        从物理学中,我们知道力F和动量p之间的关系:

        假设质量不是随时间变化的量,我们得到更常见的公式,其中m是质量,v是速度:

        独立地,电场E中带电荷q的粒子所受的力F由下式给出

        因此,我们可能会想以规范牛顿的方式定义动力学:

        我们将电荷和质量设置为统一。然而,我们需要沿着电场线行进,以便将数据分布正确地转换为均匀的角度分布。也就是说,我们必须从图片中消除惯性。惯性是物体在外力影响下避免运动变化的倾向,因此在没有惯性的情况下,粒子将沿着力场线移动。

直觉

        因此,我们将泊松场设置为不等于速度的时间导数,而是等于位移的时间导数。

        也就是说,我们不将场设置为等于位移相对于时间的二阶导数,而是使用一阶导数。这将使我们的粒子精确地遵循场线,并且是一般适用于任何矢量场的数学关系。从物理角度来看,这种情况对应于所谓的阻尼运动,类似于粒子在泊松场的力下穿过粘性流体。

PFGM - 流动模型解释

鉴于粒子动力学完全由这个确定性过程定义,为了从z=0超平面中的任意紧凑分布映射到均匀角度分布,我们只需要计算(或估计)该分布生成的泊松场。现在是时候从实践的角度重新审视我们上述关于根据一组点电荷估计泊松场的理论结果了。

4.5 估计泊松场

如前所述,将 N 维数据映射到 N 维半球的 PFGM 方法在采样过程中会遭受模式崩溃。相反,作者引入了一个额外的维度z,将数据嵌入到N+1 维空间的z=0超平面上。因此增广空间中的数据分布为

        我们将原始数据分布乘以狄拉克δ函数。我们通过对每个被视为点电荷的数据点生成的场求和来计算该分布生成的经验场:

        正如我们在上面看到的,由于拉普拉斯算子的线性,该方程是有效的。该场由c缩放,c是数值稳定性的乘数,它完全有效,并且仅通过及时重新缩放来修改动力学。

        由于粒子遵循泊松场线,因此我们实际上并不关心这些线上任何点的场大小(仅关心方向)。因此,我们对场进行归一化,以便将其转换为更有利于神经学习的形式。我们将负归一化场定义为

        我们添加负号,以便字段指向数据分布。负归一化场是我们的神经网络将学习的内容

        我们在空间中随机采样许多点,这样我们就可以计算真实经验场与神经网络预测之间的损失。我们只是扰乱数据点。考虑到泊松场的曲率在数据分布附近比在远处更高,所以采样优先选择空间中更接近数据分布的点,以便我们的函数逼近器更接近地匹配该区域的经验场。PFGM 作者选择以下采样训练点的方法:

        在这里

        通俗地说,我们通过在随机方向上扰动数据点来创建训练数据点,从 Chi 分布(高斯范数)采样扰动的距离,始终确保 z 方向上的扰动正。Tau 是一个超参数,它提供了学习靠近数据分布的结构与远离数据分布的结构之间的权衡 - tau 的值越大,对远离数据分布的点进行采样的概率就越大。M定义了与我们关心建模的数据分布的最大距离,在 PFGM 论文中从 [0, 300] 均匀采样。

        该过程的伪代码如下所示:

(来源)

        如上所述,我们使用U-Net作为神经网络。它接受空间中的 N+1 维点并返回该点的预测 N+1 维负归一化场。损失只是批次上的平均 L2 损失,并且使用基于梯度的优化训练模型。

        现在我们有了一种方法来训练经验场的函数逼近器,那么我们如何使用它来生成数据呢?

4.6 锚定向后 ODE

        回想一下上面定义正向动力学的正向 ODE:

        我们使用以下向后 ODE 进行采样:

标志注意事项

        其中它是在增广空间上定义的,并且真实的泊松场E被负归一化经验场v替换。现在我们已经用 ODE 定义了后向动力学(以及采样过程),我们可能会想认为问题已解决 - 只需将 ODE 插入 ODE 求解器即可生成数据。

        问题是我们不知道每个轨迹的开始和结束时间。也就是说,每个粒子从一个大半球开始,通过后向常微分方程演化到z=0平面上的数据分布,但我们不知道这个过程需要多长时间。为了避免这个问题,我们将ODE锚定到具有物理意义的变量z,如下所示,其中v的下标表示域的分量。

        现在 ODE 是根据z进行转换的,我们知道每个粒子的终止点是当它到达数据分布所在的z=0超平面时。粒子的起点是什么?

4.7 确定先验分布

        在半球上均匀采样并使用生成的z分量作为 ODE 的起点非常容易,但有一个问题。许多 ODE 求解器要求整个批次具有相同的初始值。位于半球上的点有许多不同的 z 值,因此这存在一个小障碍。

        为了避免这个问题,半球上的均匀分布被投影到与半球顶部重合的超平面上,�米��。该投影是一个简单的径向投影,因为当x接近无穷大时,泊松场是纯径向的。我们可以在下面看到一个二维示意图,其中红线将球体上的紫色点连接到绿线上的投影点。

二维半球的径向投影

        这种变换构成了超平面和半球之间的同胚 - 下面我们可以看到同胚在三个维度上的作用:

        3 维半球的径向投影

        从这个投影中,我们推导出超平面 上的先验分布,它告诉我们如何从z_{max}超平面的抽样方式相当于从半球均匀采样

4.8 从数据分布中采样

        现在,我们已经准备好使用 PFGM 从数据分布中生成样本所需的所有组件。首先,我们从上面定义的先验分布中对粒子群进行采样。由于分布是旋转对称的,因此足以从以下分布中均匀采样范数

        然后均匀地采样角度0到 2\pi。然后,作者对变量进行了更改,以实现z 维度的指数衰减,根据以下公式将z替换为t'

        这是通过以下方式解决的

        轨迹端点

        根据经验,这种变量的变化可以使采样速度提高 2 倍,并且不会损害样本质量。此外,它具有直观意义 - 在z=0超平面附近采取较小的步长是明智的,以便更好地导航数据分布附近存在的更复杂的泊松场。

        变量改变后对应的后向 ODE 为

        其中v又是负归一化经验场,我们使用 U-Net 作为近似值。从这里开始,ODE 求解器用于通过RK45或Euler 方法等方法求解 ODE 。

4.9 概括

        我们总结了 PFGM 的理论逻辑和实践细节如下:

  1. 我们在z=0超平面上有一个连续、紧凑的数据分布。
  2. 当被视为电荷分布时,该分布会生成具有接近无穷大的均匀角通量 密度的泊松场。
  3. 泊松场是由数据分布唯一生成的(给定良好的边界条件)。因此,沿着场线回到z=0超平面为我们提供了一种从数据分布中采样的方法。
  4. 只需将位移的时间导数设置为泊松场即可获得对应于后续场线的正向常微分方程。因此,泊松场是我们需要从数据分布中采样的唯一缺失部分。
  5. 虽然我们无法获得泊松场的精确分析形式,但我们可以根据从数据分布中采样的一组数据点来估计泊松场。泊松场大约是被视为点电荷的每个数据点生成的场的总和,这通过拉普拉斯算子是线性微分算子来证明是合理的。我们将这种近似称为经验场
  6. 我们寻求训练神经网络来学习经验领域。
  7. 我们在空间中随机采样点,优先考虑数据分布附近的点,因为那里的泊松场更复杂。在每个点,我们计算真实的经验场,其中点电荷的泊松场是通过拉普拉斯格林函数的负梯度获得的。我们还计算神经网络在采样点的预测。
  8. 我们将损失计算为采样点上真实和预测的归一化经验场之间的平均 L2 损失。该损失与基于梯度的优化一起使用来训练神经网络,在本例中是 U-Net(DDPM++主干)。
  9. 训练神经网络后,我们使用ODE 求解器沿泊松场向后演化大半球上的均匀粒子群(从先验分布等效采样),直到到达数据分布的超平面,从分布生成样本。

五、结果

        PFGM 的早期结果令人印象深刻且充满希望。下面列出了将 PFGM 应用到图像生成任务中的一些亮点:

  1. 在CIFAR-10 的归一化流模型中,PFGM 获得了最佳的 Inception 分数(9.68) 和最佳的 FID 分数(2.35) 。
  2. PFGM 的推理速度比使用类似架构的 SDE 方法快 10-20 倍,同时保持相当的样本质量
  3. PFGM 的后向 ODE 可以容纳许多不同的体系结构
  4. PFGM 展示了生成更高分辨率图像的可扩展性

下面是 CIFAR-10 的结果表,将 PFGM 与各种其他方法进行了比较:

(来源)

5.1 PFGM 架构的稳健性

        作者使用DDPM++架构获得了最佳结果,该架构是早期扩散模型中使用的U-Net 架构的修改版本。然而,作者指出,PFGM 方法对于不同架构的使用是稳健的。例如,Song 等人中使用的保方差 (VP) 和次方差保留 (sub-VP) ODE 和 SDE。al. 等人在基于分数的模型上的工作展示了使用 DDPM++ 主干的强大性能,但在 NCSNv2 架构上受到影响,在 CIFAR-10 上 FID 分数超过 90。另一方面,PFGM 在 NCSNv2 上仍然表现良好。

        PFGM 作者假设这一结果源于在基于分数的模型训练中发现的强范数方差相关性导致了该问题。下图(a)显示了VE-ODE采样时的norm-sigma关系,图(b)显示了PFGM采样时的norm-z关系。阴影区域对应于规范的标准偏差。我们可以看到,与 VE-ODE 有很强的相关性,但与 PFGM 没有相关性。

(来源)

        如果我们将这些范数的分布视为时间的函数(通过PFGM 的z和VE-ODE 的sigma),我们会看到以下结果:

(来源)

        作者指出,对于基于分数的模型,扰动训练样本的 L2 范数和高斯噪声的标准差密切相关。这一观察结果得出了合理的假设:如果轨迹在采样过程中偏离了这种相关性(绝大多数训练样本都遵循这种相关性),那么性能就会下降。另一方面,PFGM 中的范数分布在各种值中,因为给定的半球具有许多不同的z值。因此,与上述类似的逻辑导致了相应的假设,即 PFGM对各种轨迹都具有鲁棒性。参见第 2 节。有关更多详细信息,请参阅PFGM 论文中的 4.2 。

5.2 PFGM 步长鲁棒性

        作者还指出,PFGM 对于欧拉方法等数值求解器中步长(或等效的函数求值数量)的变化具有鲁棒性。他们指出,这提供了一种方便的机制,可以在实际部署中权衡样本质量和计算效率。下图显示了几种不同生成方法在 CIFAR-10 上的功能评估 (NFE) 数量与 FID 评分的关系。

5.3 PFGM 可能性评估

        PFGM 构成了数据空间和具有已知先验的潜在空间之间的可逆映射(甚至更强的同胚)。明确地,映射M由下式给出

        该映射的可逆性使得能够进行似然评估。作者使用变量瞬时变化公式来评估数据似然。该值(以位/暗度为单位)与负离散对数似然成正比(有关更多详细信息,请参见此处)。因此,我们寻求最小化该值。PFGM 作者报告了许多方法在(统一去量化)CIFAR-10 测试集上的位/暗度,如下所示

        sub-VP-ODE 显示了最好的结果,尽管其样本质量比 VP-ODE 和 PFGM 差。作者将可能性和质量之间的权衡研究留给了未来的作品。

5.4 PFGM 潜在操纵

        考虑到M的可逆性,作者还指出,样本的潜在表示是唯一标识的,使我们能够通过其潜在表示来操纵图像。例如,简单地解码潜在空间中的线性插值点会产生一种在图像之间插值的简单方法,如下使用 CelebA 图像演示:

        同样,我们可以使用 CelebA 数据集执行其他操作,例如温度缩放,如下所示:

5.5 需要改进的方面

        PFGM 为新的研究途径提供了非常有前景的基础。这里列出了两个这样的途径。

        第一种途径是一个小细节,但有利于数学一致性。为了数学方便, PFGM 模型假设连续紧凑分布。虽然这个要求在实践中不是问题,但最好能证明结果也适用于非紧分布,在给定有限积分值(保证概率密度)的情况下,这在直观上似乎是合理的。

        第二个需要改进的领域是扩大到更高的分辨率。虽然作者证明 PFGM 在 256x256 LSUN 卧室图像上以更高分辨率产生合理的结果,但以更高分辨率(如 512 x 512 或 1024 x 1024)生成高质量图像的能力尚未得到证明。

        一种潜在的研究途径是将 PFGM 和扩散模型结合起来,作为更大模型的组成部分。例如,用 PFGM替换Imagen中的初始基础扩散模型,但保持扩散模型超分辨率链完好无损,可以证明是一个强大的修改(请参阅此处了解更多详细信息)。正如 PFGM 作者指出的那样,扩散模型可能需要许多函数评估,并且不像 PFGM 那样提供可逆性。因此,这些弱点可以通过使用 PFGM 来解决,同时保持超分辨率链完整以升级图像。

六、最后的话

        PFGM 为生成模型领域做出了宝贵的贡献,早期结果令人鼓舞。分别在扩散模型和 PFGM 的情况下利用预先存在的领域知识、热力学和静电学的创造性模型,为新型机器学习方法的持续开发提供了一种有前途的方法。

        有关更多机器学习内容,请随时查看我们的更多博客教程,例如有关构建您自己的文本到图像模型和运行稳定扩散的教程。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element表格数据,表头上(下)角标,html字符串渲染

1. 问题描述 在动态渲染的element表格中&#xff0c;表头和表中数据是一个含有html的字符串&#xff0c;需要渲染 2. 效果 3. 代码 const columns ref([{ text: 差值<sub>-3</sub> / 10<sup>-6</sup>℃<sup>-1</sup>, value: aallowEr…

uniapp怎么开发插件并发布

今天耳机坏了,暂时内卷不了,所以想开发几个插件玩玩,也好久没写博客了,就拿这个来写了 首先,发布插件时需要你有项目 这里先拿uniapp创建一个项目, 如下,创建好的项目长这样 然后根据uniapp官网上说的,我们发布插件时,需要在uni_modules里面编写和发布 ps:还需要使用uniapp…

Redis 内存淘汰策略有哪些?过期数据如何删除?

Redis 在面试中出现的概率非常大&#xff0c;毕竟后端项目如果用到分布式缓存的话&#xff0c;一般用的都是 Redis。目前&#xff0c;还没有出现一个能够取代 Redis 的分布式缓存解决方案。 这篇文章中&#xff0c;我会分享几道 Redis 内存管理相关的问题&#xff0c;都很常见…

(分享) 音乐软件Spotify-声破天8.9.4

​【应用名称】&#xff1a;Spotify-声破天 ​【适用平台】&#xff1a;#Android ​【软件标签】&#xff1a;#Spotify ​【应用版本】&#xff1a;8.8.96 → 8.9.4 ​【应用大小】&#xff1a;67MB ​【软件说明】&#xff1a;软件升级更新。iOS可配合qx小火箭类的工具对…

什么类型的企业需要工单系统?适用场景与优势分析

在现代商业中&#xff0c;必须高效地管理与跟踪大量任务和工作流程。对一些企业而言&#xff0c;处理很多订单是一项具有挑战性的任务。此订单可能来自客户需求、内部问题反馈或各种业务流程中的任务分配。可是&#xff0c;如果没有好的解决方法&#xff0c;这类订单可能会致使…

科研绘图(四)火山图

火山图是生物信息学中常用的一种图表&#xff0c;用来显示基因表达数据的变化。它通常将每个点表示为一个基因&#xff0c;x轴显示对数比率&#xff08;log ratio&#xff09;&#xff0c;表示基因表达的变化大小&#xff1b;y轴显示-log10(p-value)&#xff0c;表示变化的统计…

极简云源码已经开源

源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…

【 ATU 随笔记 - Inverter 】PV Inverter 太阳能逆变器市场分析

一、简介 在上一篇的介绍中与大家分享了Micro Inverter ( 微型逆变器 )的用途与特色&#xff0c;也提到 Micro Inverter 适合家庭或是一些小型企业的需求。太阳能作为再生能源的代表&#xff0c;在当今能源转型中扮演着重要角色&#xff0c;也是有大型企业、大型能源站的需求&a…

解决JuPyter500:Internal Server Error问题

目录 一、问题描述 二、问题分析 三、解决方法 四、参考文章 一、问题描述 在启动Anaconda Prompt后&#xff0c;通过cd到项目文件夹启动Jupyter NoteBook点击.ipynb文件发生500报错。 二、问题分析 base环境下输入指令&#xff1a; jupyter --version 发现jupyter环境…

vulhub靶场之​Apache HTTPD 换行解析漏洞(CVE-2017-15715)​复现过程

Vulhub是一个基于docker和docker-compose的漏洞环境集合&#xff0c;进入对应目录并执行一条语句即可启动一个全新的漏洞环境&#xff0c;让漏洞复现变得更加简单&#xff0c;让安全研究者更加专注于漏洞原理本身。当你使用了这个靶场后你会发现真的是开箱即用&#xff0c;包括…

API(Date类,SimpleDateFormat类,Calendar类,JDK8时间相关类,包装类,算法小题)

文章目录 【常用API】今日内容教学目标 第一章 Date类1.1 Date概述1.2 Date常用方法 第二章 SimpleDateFormat类2.1 构造方法2.2 格式规则2.3 常用方法2.4 练习1(初恋女友的出生日期)2.5 练习2(秒杀活动) 第三章 Calendar类3.1 概述3.2 常用方法3.3 get方法示例3.4 set方法示例…

GAMES101-Assignment6

一、问题总览 需要加速结构来加速光线与场景的交点&#xff0c;本次练习中&#xff0c;重点关注物体划分算法Bounding Volume Hierarchy (BVH)。本练习要求实现Ray-Bounding Volume求交与BVH查找。 需要从上一次编程练习中引用以下函数: Render() in Renderer.cpp: 将你的光线…

行为型设计模式——命令模式

命令模式 日常生活中&#xff0c;我们出去吃饭都会遇到下面的场景。 定义&#xff1a; 将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行存储、传递、调用、增加与管理。命…

【文献解读】“MOBILEViT:轻量级、通用目的、移动友好的视觉变换器”。

今天阅读这篇2022年ICLR会议上发表的论文&#xff0c;主要是为了学习MobileViT模型&#xff0c;用于YOLO模型主干改造。 一、文献概述 作者&#xff1a;Sachin Mehta 和 Mohammad Rastegari。地点&#xff1a;作者所属机构是 Apple。内容简述&#xff1a; 提出了一种名为Mob…

InternLM第4次课笔记

XTuner 大模型单卡低成本微调实战 1 Finetune介绍 2 XTuner介绍 XTuner中微调的技术&#xff1a; 3 8GB显卡玩转LLM 4 动手实战环节 https://github.com/InternLM/tutorial/tree/main/xtuner

20240107查看Android11下移远的4G模块EC20在Firefly的AIO-3399J开发板跑通时的相关服务

20240107查看Android11下移远的4G模块EC20在Firefly的AIO-3399J开发板跑通时的相关服务 2024/1/7 11:24 缘起&#xff1a;友善之臂的SDK&#xff1a;rk3399-android-11-r20211216.tar.xz可以跑通EC20&#xff0c;但是Toybrick的不行&#xff01; 同样是Andrid11&#xff0c;因此…

大数据深度学习卷积神经网络CNN:CNN结构、训练与优化一文全解

文章目录 大数据深度学习卷积神经网络CNN&#xff1a;CNN结构、训练与优化一文全解一、引言1.1 背景和重要性1.2 卷积神经网络概述 二、卷积神经网络层介绍2.1 卷积操作卷积核与特征映射卷积核大小多通道卷积 步长与填充步长填充 空洞卷积&#xff08;Dilated Convolution&…

RK3566环境搭建

环境&#xff1a;vmware16&#xff0c;ubuntu 18.04 安装依赖库&#xff1a; sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool expect g patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakero…

AOT-GAN + onnx部署 + gradio 实现在线图像修复

运行环境说明,其依赖: torch + python-opencv + onnxruntime + gradio + numpy + einops 1、模型转onnx 可以直接下载博主导出的onnx模型 https://download.csdn.net/download/a486259/88736610 1.1 预训练pt模型下载 下载place2 预训练模型,图中红色部分,模型保存为pl…