Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础

Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础

原文链接:Diffusion Models: 方法和应用的综合调查 【01】Diffusion Models基础
GitHub: https://github.com/YangLing0818/Diffusion-Models-Papers-Survey-Taxonomy.
Paper: https://arxiv.org/abs/2209.00796

目录


(更多内容后续会陆续发表)

01 概述

在本调查中,我们概述了扩散模型快速发展的工作主体,并将研究分为三个关键领域:

  • efficient sampling ,
  • improved likelihood estimation ,
  • methods for handling data with special structures.

我们还讨论了将扩散模型与其他生成模型相结合的可能性,以增强结果。具体包括:

  • variational autoencoders (VAEs) [135, 225],
  • generative adversarial networks (GANs) [77],
  • normalizing flows [53, 55, 199, 227],
  • autoregressive models [271],
  • energy-based models (EBMs)

我们进一步回顾了扩散模型在计算机视觉、自然语言处理、时间数据建模以及其他科学学科的跨学科应用等领域的广泛应用。 对于每个任务,我们提供了一个定义,描述了如何使用扩散模型来解决它,并总结了相关的先前工作。

本调查旨在为扩散模型的状态提供一个情境化的、深入的观察,确定重点领域,并指出进一步探索的潜在领域。

Fig 1. 内容结构

02 Diffusion Models基础

扩散模型(Diffusion Models)是一组概率生成模型,它通过注入噪声逐步破坏数据,然后学习反转这个过程来生成样本。

Fig 2. 扩散模型通过添加噪声平滑地扰动数据,然后将这一过程反过来从噪声中生成新数据。反向过程中的每个去噪步骤通常都需要估计分数函数(见右图),分数函数是指向具有较高似然性和较少噪声的数据方向的梯度。

目前关于扩散模型的研究主要基于三个主要公式:

  • 去噪扩散概率模型(DDPMs)[90, 166, 215],
  • 基于分数的生成模型(SGMs)[220, 221]
  • 随机微分方程(Score SDEs)[219, 225]。

下面将分别介绍这三部分内容。

去噪扩散概率模型(DDPMs)

去噪扩散概率模型(denoising diffusion probabilistic model, DDPM)[90,215]利用了两条马尔可夫链:将数据扰动为噪声的正向链和将噪声转换回数据的反向链。前者通常是手工设计的,目的是将任何数据分布转换为简单的先验分布(例如,标准高斯分布),而后者的马尔可夫链通过学习由深度神经网络参数化的转移核来逆转前者。通过首先从先验分布中抽样一个随机向量,然后通过反向马尔可夫链进行祖先抽样,从而生成新的数据点[125]。

x 0 x_0 x0为条件的联合分布 x 1 , x 2 , . . . , x T x_1,x_2,...,x_T x1,x2,...,xT,即 q ( x 1 , x 2 , . . . , x T ∣ x 0 ) q(x_1,x_2,...,x_T | x_0) q(x1,x2,...,xTx0) 可以表示为:

在DDPM中,我们手工制作转换内核 q ( x t ∣ x t − 1 ) q(x_t|x_{t−1}) q(xtxt1),以增量方式将数据分布 q ( x 0 ) q(x_0) q(x0)转换为可处理的先验分布。


其中 β t ∈ ( 0 , 1 ) \beta_t \in (0,1) βt(0,1)是在模型训练之前选择的超参数。指定 α t : = 1 − β t , α ^ t : = ∏ s = 0 t α s \alpha_t :=1-\beta_t, \hat{\alpha}_t:=\prod^t_{s=0} \alpha_s αt:=1βt,α^t:=s=0tαs, 则可推导出:


给定 x 0 x_0 x0,我们可以很容易地通过对高斯向量 ϵ ∼ N ( 0 , I ) \epsilon \sim N (0, I) ϵN(0,I)进行采样并应用变换来获得 x t x_t xt的样本:

其中, α ^ T ≈ 0 \hat{\alpha}_T \approx 0 α^T0.

反向马尔可夫链参数化为先验分布 p ( x T ) = N ( x T ; 0 , I ) p(x_T)= N (x_T;0, I) p(xT)=N(xT;0,I)和可学习转换内核 p ( x t − 1 ∣ x t ) p(x_{t−1} | x_t) p(xt1xt),具体的形式如下:

其中, θ \theta θ为模型参数,均值 u θ ( x t , t ) u_{\theta}(x_t,t) uθ(xt,t)和方差 Σ θ ( x t , t ) \Sigma_{\theta}(x_t,t) Σθ(xt,t)用深度神经网络参数化。有了这个反向马尔可夫链,我们可以通过首先对噪声向量 x T ∼ p ( x T ) x_T \sim p(x_T) xTp(xT)进行采样,然后从可学习的转换核 x t − 1 ∼ p ( x t − 1 ∣ x t ) x_{t−1} \sim p(x_{t−1} | x_t) xt1p(xt1xt)迭代采样,直到𝑡= 1,来生成数据样本 x 0 x_0 x0.

训练目标如下:

基于分数的生成模型(SGMs)

基于分数的生成模型[252,253]的核心是(Stein)分数(又称分数或分数函数)的概念[108]。给定一个概率密度函数𝑝(x),其得分函数定义为对数概率密度的梯度 ∇ x l o g p ( x ) ∇xlogp(x) xlogp(x)。 基于分数的生成模型(SGMs)[220]的关键思想是用一系列增强的高斯噪声扰动数据,并通过训练一个以噪声水平为条件的深度神经网络模型(在[220]中称为噪声条件分数网络,NCSN),共同估计所有噪声数据分布的分数函数。样本是通过使用基于分数的采样方法(包括Langevin Monte Carlo[81、110、176、220、225]、随机微分方程[109、225]、常微分方程[113、146、219、225、277]以及它们的各种组合[225]),在降低噪声水平下链接分数函数来生成的。

SGMs的一个典型例子涉及将数据点 x 0 x_0 x0扰动到 x t x_t xt通过高斯噪声分布 q ( x t ∣ x 0 = N ( x t ; x 0 , σ t 2 I ) q(x_t| x_0 = \mathcal{N}(x_t;x_0,\sigma^2_t I) q(xtx0=N(xt;x0,σt2I). 这就产生了一系列噪声数据密度 q ( x 1 ) 、 q ( x 2 ) , ⋅ ⋅ ⋅ , q ( x T ) q(x_1)、q(x_2),···,q(x_T) q(x1)q(x2)⋅⋅⋅q(xT), 其中,
q ( x t ) : = ∫ q ( x t ) q ( x 0 ) d x 0 q(x_t):= \int q(x_t) q(x_0) d x_0 q(xt):=q(xt)q(x0)dx0.

训练目标如下:


很明显,DDPM和SGM的训练目标是一致的,当我们设定了 ϵ θ ( x , t ) = − σ t s θ ( x , t ) \epsilon_{\theta}(x,t) = −\sigma_ts_{\theta}(x,t) ϵθ(x,t)=σtsθ(x,t).

对于样本生成,SGMs利用迭代方法生成样本。由于SGMs中训练和推理的解耦,存在许多采样方法,其中一些将在下一节中讨论。这里我们介绍了SGMs的第一种采样方法,称为退火朗格万动力学(ALD)[220]。

随机微分方程(Score SDEs)

DDPM 和 SGM 可以进一步推广到无限时间步或噪声水平的情况,其中扰动和去噪过程是随机微分方程 (SDE) 的解。我们将此公式称为 Score SDE [225],因为它利用 SDE 进行噪声扰动和样本生成,去噪过程需要估计噪声数据分布的得分函数。

Score SDE 使用由以下随机差分方程 (SDE) [2,25] 控制的扩散过程将数据扰动为噪声:


其中 f ( x , t ) f (x, t) f(x,t) g ( t ) g(t) g(t) 是 SDE 的传播和漂移函数, w w w是标准Wiener过程(又名布朗运动)。DDPM 和 SGM 中的前向过程都是这个 SDE 的离散化。如Song 等人所示, 对于 DDPM,对应的 SDE 为:

对于SGMs,对应的SDE由下式给出:

至关重要的是,对于任何以等式(15)的形式扩散过程。Anderson [ 4 ] 表明可以通过求解以下reverse-time SDE 来反转它:

训练目标如下:

Table 1. 在连续和离散设置下,列出了三种类型的扩散模型以及相应的文章和年份。

02 高效采样的Diffusion Models

(后续内容会陆续发表……)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Summer tree

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>