基本思路
扩散模型的核心思想是通过学习数据的扩散过程来生成新的样本。这个过程涉及在正向过程中逐步向数据添加噪声,并在逆向过程中逐步去除噪声,从而生成新的数据。
正向过程
扩散模型的正向过程又可以称为扩散过程。这个过程被固定到一个马尔科夫链上,这个马尔科夫链根据一个预设的方差时间表向数据添加高斯噪声。这个过程可以视为一个逐步向数据中添加噪声,直到信号被破坏的过程。实际上就是不断往图像上加噪声,直到它变成一个纯噪声。
反向过程
反向过程也称逆扩散过程。这个过程就是从纯噪声开始逐步去除噪声,直到生成一张新的图像。这个过程是通过学习一个反向的马尔科夫链来实现的,即从噪声图像开始,逐步恢复到干净的图像。通过训练一个神经网络来预测和去除噪声,可以实现从噪声到图像的逐步生成。
算法
训练算法
- :从数据库中抽取一张干净的图
- :从1~T中选择一个整数
- :从一个标准正态分布中选择一个,大小与image一致
- :首先将和加权求和得到Noisy image,其中的权重,一般来说是逐渐变小的,也就是说,当t越大,噪声占比就越重,图像更接近噪声。是Noisy predictor,他的输入是Noisy image 和t。这一步的目标实际上就是要使预测出的噪声尽可能的与当初加到图片里的噪声尽可能地相似。
从上一节对Diffusion Model的描述来看,噪音是一步一步地加进去的。但是,从这一小节对算法分析可以知道,噪音是一步到位直接加进去的,后续的denoise步骤也是如此一步直接把噪音denoise出来。
图像生成算法
- :表示纯噪声图像
循环部分的直观解释:
基础知识
后验概率
在贝叶斯统计中,后验概率 (Posterior probability)用来表示在给定观测数据后某个事件或参数的概率。它是通过贝叶斯定理计算得到的。具体来说,后验概率结合了先验信息(即在观察到数据之前对事件或参数的预期)和观测数据(即实际观测到的数据)来更新对事件或参数的信念。贝叶斯定理的数学表达式如下:
- P(A|B)是事件A在已知事件B发生后的后验概率
- P(B|A)是事件B在事件A发生的情况下的似然 (Likelihood)
- P(A)事件A的先验概率
- P(B)是事件B的边际概率:
基本的条件概率定理
- 乘法定理:若P(A)>0,则有:
- 全概率公式:
马尔科夫链
马尔科夫链(Markov Chain)是一个描述系统从一个状态转移到另一个状态的数学模型。它具有“无记忆”性质,即系统的未来状态只取决于当前状态,而与之前的状态无关。这种性质被称为马尔科夫性质。
高斯概率密度函数
- xx 是随机变量的取值。
- μ是均值(期望值),决定分布的中心位置。
- σ是标准差,描述分布的宽度(即数据的离散程度)。
- 是方差。
- exp是自然指数函数,底数为 e≈2.71828。
KL散度(Kuiiback-Leibler Divergence)
KL散度也称为相对熵,是一种衡量两个概率分布P和Q差异的方式。当两个概率分布完全相同时,KL散度为0;当两个概率分布差异增大时,KL散度也随之增大。KL散度的计算公式如下:
两个高斯分布的KL散度为:
最大似然估计
图像生成的目标是使经参数为的Network生成的的分布尽可能地与的分布接近。从中采样,将他们喂入Network之后生成的概率是,假设这个概率是能够计算的,那么我们的目标函数可以写为:
但是,这个目标函数和让的分布尽可能地与的分布接近这个目标之间有什么关系呢?接下来我们会进一步讲明这个关联性。
将(1)式取对数并不会影响Network参数的优化结果,因此为了方便计算,我们先将(1)式右边取对数:
第四行的尾项与θ无关,而且有利于计算。容易看出求最大似然估计就是求最小KL散度,对应于使的分布尽可能地与的分布相近。
Evidence Lower Bound
Evidence Lower Bound(ELBO)是一种用于近似计算概率模型的边缘似然函数的方法。在贝叶斯统计中,我们通常希望获得给定观测数据下的后验概率分布,但这个计算通常很困难,特别是在复杂的概率模型中。ELBO的出现正是为了解决这一问题。它通过定义一个变分分布来近似真实的后验分布,并使用变分推断来最大化一个有界的下界,而不是直接计算后验分布。这个下界即ELBO。通过最大化ELBO,我们提高了对真实后验分布的近似质量。在数学上,ELBO通常与KL散度(Kullback-Leibler divergence)相关联,它衡量的是近似分布与真实分布之间的差异。通过最小化KL散度,我们可以找到最佳的近似分布,从而得到ELBO的最大值。
ELBO的公式为:
最大似然估计的目标是最大化似然概率,两者之间的数学关系可以表述如下(推导过程如图):
其中是一个可变的近似变分分布,参数是我们要优化的。但是我们为什么要最大化ELBO,从上述推导过程来看似乎还不够清晰,下面我们引入KL散度从另一个角度来进行推导:
对来说是一个常数,那么ELBO加上变分后验和真实后验的KL散度是一个常数,最小化ELBO就是最大化这个KL散度。
Diffusion Model的数学原理剖析
Diffusion Model的可由下式计算得出:
Diffusion Model 的优化目标可以表述如下(ELBO) :
其中,表示Diffusion Model的前向过程。
设定一组参数,是噪声,经过推导,Diffusion Model的前向过程可以一步到位:
令,可将上式简化如下:
其中,的均值和方差分别为。符合以下分布:
根据贝叶斯公式有:
前文中Diffusion Model 的优化目标可以简化如下(推导过程如图):
其中,表示最终噪声输入的分布与标准高斯的接近程度与θ无关。在这里的计算方式与 的类似,因此我们只研究后者。
的均值和方差分别为(化简过程如图):
要使最小,在方差一致的情况下,只需要使的均值与的均值尽可能接近就好(推导过程如图)。
因此,参照我们可以将设为:
更进一步地,优化目标可以简化为(推导过程如图):
信噪比(SNR)表示原始信号和噪声之间的比率。信噪比越高表示信号越多,信噪比越低表示噪声越多。在扩散模型中,我们需要随着t的增加,噪声越来越多,也就是信噪比越来越低。服从的分布,因此上式可以进一步写为(推导过程如图):
基于此,我们使用神经网络来参数化SNR,并与扩散模型一起训练。
由(2)可得,
代入(3)可得(推导过程如图)
在Dedoise过程中已知,给定,就是要做的预测(可以从图像生成算法那部分的插图来配合理解)。因此,可以进一步假设,然后对优化目标进行进一步简化:
性质
扩散模型在特定参数化下的两个等价性
- 训练时,与多噪声水平下的去噪得分匹配的等价性
- 采样时,与退火朗之万动力学的等价性
参考文献
Ho J, Jain A, Abbeel P. Denoising diffusion probabilistic models[J]. Advances in neural information processing systems, 2020, 33: 6840-6851.(Denoising Diffusion Probabilistic Models)
Luo C. Understanding diffusion models: A unified perspective[J]. arXiv preprint arXiv:2208.11970, 2022.(https://arxiv.org/abs/2208.11970)
李宏毅老师课程:《Diffusion Model 背后的数学原理》