GTC 大会火热进行中!别错过 NVIDIA CEO 黄仁勋的最新发布,以及 AI 和加速计算的必听会议。
计算机视觉/视频分析

改进扩散模型以替代 GANs ,第 1 部分

这是一系列关于 NVIDIA 研究人员如何改进和加速扩散模型采样的方法的一部分,扩散模型是一种新颖而强大的生成模型。 Part 2 介绍了克服扩散模型中缓慢采样挑战的三种新技术。

生成模型是一类机器学习方法,它可以学习所训练数据的表示形式,并对数据本身进行建模。它们通常基于深层神经网络。相比之下,判别模型通常预测给定数据的单独数量。

生成模型允许您合成与真实数据不同但看起来同样真实的新数据。设计师可以在汽车图像上训练生成性模型,然后让生成性人工智能计算出具有不同外观的新颖汽车,从而加速艺术原型制作过程。

深度生成学习已成为机器学习领域的一个重要研究领域,并有许多相关应用。生成模型广泛用于图像合成和各种图像处理任务,如编辑、修复、着色、去模糊和超分辨率。

生成性模型有可能简化摄影师和数字艺术家的工作流程,并实现新水平的创造力。类似地,它们可能允许内容创建者高效地为游戏、动画电影或 metaverse 生成虚拟 3D 内容。

基于深度学习的语音和语言合成已经进入消费品领域。医学和医疗保健等领域也可能受益于生成性模型,例如生成对抗疾病的分子候选药物的方法。

当神经网络被用于不同的生成性学习任务时,尤其是对于不同的生成性学习任务,神经网络和神经网络也可以被用于合成。

生成性学习三位一体

为了在实际应用中得到广泛采用,生成模型在理想情况下应满足以下关键要求:

  • High-quality sampling :许多应用程序,尤其是那些直接与用户交互的应用程序,需要高生成质量。例如,在语音生成中,语音质量差是很难理解的。类似地,在图像建模中,期望的输出在视觉上与自然图像无法区分。
  • 模式覆盖和样本多样性 :如果训练数据包含复杂或大量的多样性,一个好的生成模型应该在不牺牲生成质量的情况下成功捕获这种多样性。
  • 快速且计算成本低廉的采样 :许多交互式应用程序需要快速生成,例如实时图像编辑。

虽然目前大多数深层生成性学习方法都注重高质量的生成,但第二和第三个要求也非常重要。

忠实地表示数据的多样性对于避免数据分布中遗漏少数模式至关重要。这有助于减少学习模型中不希望出现的偏差。

另一方面,在许多应用程序中,数据分布的长尾巴特别有趣。例如,在交通建模中,人们感兴趣的正是罕见的场景,即与危险驾驶或事故相对应的场景。

降低计算复杂度和采样时间不仅可以实现交互式实时应用。它还通过降低发电所需的总功率使用量,减少了运行昂贵的深层神经网络(发电模型的基础)所造成的环境足迹。

在本文中,我们将这三个需求带来的挑战定义为 生成性学习三位一体 ,因为现有方法通常会做出权衡,无法同时满足所有需求。

Three key requirements for generative models and how different frameworks trade off between them
图 1 。生成性学习三位一体

基于扩散模型的生成性学习

最近,扩散模型已经成为一种强大的生成性学习方法。这些模型,也被称为去噪扩散模型或基于分数的生成模型,表现出惊人的高样本质量,通常优于生成性对抗网络。它们还具有强大的模式覆盖和样本多样性。

扩散模型已经应用于各种生成任务,如图像、语音、三维形状和图形合成。

扩散模型包括两个过程:正向扩散和参数化反向扩散。

前向扩散过程通过逐渐扰动输入数据将数据映射为噪声。这是通过一个简单的随机过程正式实现的,该过程从数据样本开始,使用简单的高斯扩散核迭代生成噪声较大的样本。也就是说,在这个过程的每一步,高斯噪声都会逐渐添加到数据中。

第二个过程是一个参数化的反向过程,取消正向扩散并执行迭代去噪。这个过程代表数据合成,并经过训练,通过将随机噪声转换为真实数据来生成数据。它也被正式定义为一个随机过程,使用可训练的深度神经网络对输入图像进行迭代去噪。

正向和反向过程通常使用数千个步骤来逐步注入噪声,并在生成过程中进行去噪。

An image of a cat is perturbed from left to right by adding Gaussian noise. Arrows indicate fixed forward diffusion and generative reverse denoising processes.
图 2 。扩散模型处理数据和噪声之间的移动

图 2 显示,在扩散模型中,固定前向过程以逐步方式逐渐扰动数据,使其接近完全随机噪声。学习一个参数化的反向过程来执行迭代去噪,并从噪声中生成数据,如图像。

在形式上,通过x_0表示一个数据点,例如图像,通过x_t表示时间步长t的扩散版本,正向过程由以下公式定义:

q(x_{1:T}|x_{0})=\prod_{t\geq1} q(x_{t}|x_{t-1}), \ \ q(x_{t}|x_{t-1})=N(x_{t};\sqrt{1-\beta_{t}}x_{t-1},\beta_{t}I)

在每一步,x_tx_{t-1}的条件下进行采样,使用均值(1-\beta_t)^{0.5} x_{t-1}和方差\beta_t的高斯分布。这里,\beta_t通常是预定义和固定的,T是扩散步骤的总数。

反向生成过程的定义与此类似,顺序相反:

p_{\theta}(x_{0:T})=p(x_{T})\prod_{t\geq1}p_{\theta}(x_{t-1}\mid x_{t}), \ \ p_{\theta}(x_{t-1}\mid x_{t})=N(x_{t-1};\mu_{\theta}(x_{t},t),\sigma^{2}_{t}I)

在这个公式中,去噪分布p_{\theta}(x_{t-1}\mid x_{t})是一个高斯分布,其均值是使用可训练神经网络\mu_{\theta}(x_{t},t)定义的,而其方差通常是预设的。

这些过程以离散化扩散和去噪步骤的形式描述,通过参数t索引,称为正向和反向过程中的时间。特别是,每次一步迭代生成样本。

连续时间扩散模型

但是,您也可以在无限多个无限小的时间步的限制下研究扩散模型。这导致了时间连续流动的连续时间扩散模型。在这种情况下,正向和反向过程可以用随机微分方程( SDE )来描述。

固定前向 SDE 将数据样本平滑地转换为随机噪声。此类 SDE 的一个选项如下:

dx_{t}=-\frac{1} {2}\beta(t)x_{t}dt+\sqrt{\beta(t)}dw_{t}

与之前一样,x_t表示数据,dx_tdt表示数据和时间的无限小更新t。此外,dw_t是一个噪声过程,对应于高斯噪声注入,缓慢扰动数据。\beta(t)现在是时间的连续函数t。沿时间反向求解的相应生成 SDE t将噪声映射到数据:

dx_{t}=\frac{1} {2}\beta(t)x_{t}dt+\beta(t)\underbrace{\nabla_{x_{t}}\log p_{t}(x_{t})}_{\textrm{score function}}dt+\sqrt{\beta(t)}dw{t}

虽然离散时间扩散模型和连续时间扩散模型看起来可能不同,但它们有一个几乎相同的生成过程。事实上,很容易证明离散时间扩散模型是连续时间模型的特殊离散化。

在实践中使用连续时间扩散模型基本上要容易得多:

  • 它们更通用,可以通过简单的时间离散化转换为离散时间模型。
  • 它们是用 SDE 描述的, SDE 在各个科学领域都得到了很好的研究。
  • 生成性 SDE 可以使用现成的数值 SDE 解算器进行求解。
  • 它们可以转换为相关的常微分方程( ODE ),这些方程也得到了很好的研究,并且易于使用。

如前所述,扩散模型通过遵循反向扩散过程生成样本,该过程将简单的基本分布(通常为高斯分布)映射到复杂的数据分布。在生成 SDE 表示的连续时间扩散模型中,由于神经网络逼近分数函数\nabla_{x_{t}}\log p_{t}(x_{t}),这种映射通常很复杂。

用数值积分技术解决这个问题需要调用 1000 次深层神经网络来生成样本。正因为如此,扩散模型在生成样本时通常很慢,需要几分钟甚至几小时的计算时间。这与生成性对抗网络( GANs )等竞争性技术形成了鲜明对比,后者只需对神经网络进行一次调用即可生成样本。

总结

尽管扩散模型实现了较高的样本质量和多样性,但不幸的是,它们在采样速度方面存在不足。这限制了扩散模型在实际应用中的广泛采用,并导致了从这些模型加速采样的研究领域的活跃。在 Part 2 中,我们回顾了 NVIDIA 为克服扩散模型的主要局限性而开发的三种技术。

要了解更多关于 NVIDIA 正在推进的研究,请参阅 NVIDIA Research

有关扩散模型的更多信息,请参阅以下参考资料:


Tags