Diffusion模型原理

Diffusion 模型的原理

前言

扩散模型(Diffusion Models)是近年来在生成建模领域中取得显著进展的一类模型。其核心思想是通过模拟数据的逐步退化和还原过程,学习到数据的分布 三言两语真的很难说清楚diffusion模型背后的原理,其中涉及到很多数学知识和思想。临近夏令营面试,趁此机会,我将尝试着重新梳理一下diffusion模型的原理,并用通俗易懂的语言进行阐述。

发展脉络

Diffusion模型的发展脉络可以追溯基于马尔可夫链蒙特卡罗方法(MCMC),这是是一类使用马尔可夫链的随机抽样方法,用于从复杂的概率分布中进行采样。这些方法虽然在理论上是可行的,但由于计算复杂度高且收敛速度慢,并没有得到广泛应用。

将扩散模型作为生成模型的一种新形式,最早由Sohl-Dickstein等人于2015年提出,他们在论文《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》中介绍了这种模型,称之为“扩散概率模型”(Diffusion Probabilistic Models)。原理是利用一个定义良好的扩散过程,将数据逐步添加噪声,生成一个易于建模的简单分布(如高斯分布),然后通过逆过程将其逐步还原为原始数据。

在当时,生成式模型主要由生成对抗网络(GAN)和变分自编码器(VAE)等生成模型占据主流。这些模型在生成图像、文本等数据方面取得了巨大的成功,但也存在一些缺点,如GAN的训练不稳定和VAE生成图像质量较差等问题。

扩散模型的一个重要里程碑是2020年,Ho等人在论文《Denoising Diffusion Probabilistic Models》中提出了去噪扩散概率模型(DDPM)。该模型通过在每一步添加少量高斯噪声,然后学习如何逆过程去除噪声来生成数据。DDPM在生成质量和训练稳定性方面显示出了优异的性能,成为了扩散模型研究的基础。

在这之后,Song等人在2020年提出了基于分数的生成模型(Score-based Generative Models),通过训练一个分数匹配网络来估计数据分布的梯度。这种方法与扩散模型的关系密切,可以看作是扩散模型的变体。
(....)

生成式模型

我们可以简单地理解为,生成式模型是针对联合分布进行建模,判别式模型则是根据条件概率分布进行建模。假设我们做的是一个分类任务,有训练数据集\(D=(X,Y)\),其中\(X=\{x_1,x_2,...,x_N\}\)是输入数据,\(Y=\{y_1,y_2,...,y_N\}\)是对应的标签。

判别式模型的直接学习决策函数\(Y=f(X)\),或者条件概率\(P(Y|X)\),不能直接反映训练数据本身的特性,它寻找的是不同类别之间的边界,最终捕获到的是不同类别之间的差异性信息。

生成式模型则学习的是联合分布\(P(X,Y)\),它可以直接捕获到训练数据本身的特性,反映同类数据本身的相似度,不关心划分不同类别的边界。生成式模型的学习成本更高,样本较少时学习效果较差。

实际上,生成式模型和判别式模型都是使后验概率最大化。判别式模型是直接最大化后验概率\(P(Y|X)\),而生成式模型则是先求出联合分布\(P(X,Y)\),再通过贝叶斯公式最大化后验概率\(P(Y|X)\)

DDPM模型

DDPM全称是Denoising Diffusion Probabilistic Models,最开始提出是用于去噪领域。实际上,DDPM思想也没那么复杂,它只包含了两个阶段,加噪过程和去噪过程。

在这里,我们可以回顾一下VAE的做法,VAE的目标是学习数据的潜在表示 \(\mathbf{z} \in \mathbb{R}^d\),一般取自正态分布,并使用这些表示生成与输入数据\(\mathbf{x}\in \mathbb{R}^D\)相似的新数据(即与原始数据的分布尽可能接近)。vae通过将输入数据编码压缩到一个隐空间,再通过解码器从隐变量中生成数据。

对于DDPM来说,在加噪过程,它会从原始数据开始在每一步添加噪声,得到一个易于建模的简单分布(如高斯分布),然后通过逆过程将其逐步还原为原始数据。也就是前向过程和逆过程,每个过程都会经历多个步骤的加噪和去噪。

前向过程


Diffusion模型原理
http://example.com/2024/08/16/Diffusion模型原理/
作者
geotle77
发布于
2024年8月16日
许可协议