扩散模型原理介绍
(参考:大白话AI | 图像生成模型DDPM | 扩散模型 | 生成模型 | 概率扩散去噪生成模型)
一、什么是分布
分布是指一个函数,它展示了一个变量的可能值以及它们出现的频率。
二、正态分布
从一个简单的案例入手——投骰子:
我们把每扔一次骰子的过程称为一次采样,直方图记录各点数出现的概率。当只有一颗骰子的时候,如下图,随着采样次数的增多(达到99999次),各个点数出现的概率其实相等的,这是一种“等可能”的概率。

当我们增加一颗骰子时,得到的分布如下。

接下来我们再增加至3颗、5颗甚至更多骰子,我们发现得到的分布如下:


这里我们可能会发现,如果我们将每颗骰子数加起来的值作为随机变量X,随着增加的骰子数越多,得到的分布曲线越接近正态分布的概率密度曲线。

如果,某个随机变量受多个因素影响,但这些因素当中没有一个起决定性作用,那么该随机变量的概率密度曲线形状都会接近钟型,这样的概率分布也称为正态分布。正如上述例子所示,骰子点数之和(随机变量)受到骰子数量影响,当这些影响因素足够多时(或者经过多次采样),并且这些因素不会互相干扰且没有哪个特别突出起到决定性作用,那么我们也看到该随机变量服从正态分布。为概率密度函数,通过确定均值μ和标准差σ就可以确定正态分布的概率密度函数,所以正态分布的概率密度函数也可以简写为
,如果
,则为标准正态分布。

正态分布还有一个特性,两个正态分布相加的结果

三、扩散模型
1.前向加噪过程
前向加噪过程是对一张清晰的图片逐步加入高斯噪声,使其最终完全变成噪声的过程。

那么,一张图片是如何进行加噪的呢?假设以一张彩色图片为例,彩色图片的具有3个通道分别是R、G、B,如下图。

接下来对每一个像素的数值进行归一化映射到[-1,1]之间。为什么需要归一化呢?我认为是在后续训练过程种方便反向梯度传播,还有就是方便与符合标准正态分布采样的噪声图片进行混合。

然后,通过随机采样生成一张大小一样的噪声图片,按照比例β进行混合加噪,β值越大,加入噪声的比重就越大。至于为什么要加上根号,因为是方差。

现在的问题是,我们每一次加噪都是要基于当前时刻的前一步进行的,依赖于前一项,那可不以直接一步到位呢?答案是可以的,为什么呢?且看理论推导。


首先我们先来看下,逐渐加入噪声的过程:

由此我们可以知道后一时刻与前一时刻的关系,β是在某一个范围内(如[0.0001,0.02])逐渐增加的。

接下来,为了简化计算,引入一个新的变量,
,公式就化为:

我们试着推导由直接加噪到
,如下,
和
都是已知的(
是标准正态分布,即
和
都是一样的)
①
②
将②式带入到①式中,得
![]()
化简,得
③式
由于,正态分布X~N(μ,σ)乘以一个数c,得到新的分布为
再由于
和
都是标准正态分布,μ=0,σ=1,得
③式中两个正态分布相加,得
两个正态分布相加,可以返回到第一部分有简单介绍。
因此,③式最终化简为
④式
继续,上一块是关于从由直接加噪到
,接下来是从
直接加噪到
④式
⑤式
将⑤带入④化简得
最后,根据数学归纳法
其中,
2.反向过程(后续更新)
目标是从最后的时刻的噪声图片中,恢复得到
时刻的图像。
更多推荐
所有评论(0)