DDPM数学原理
前向扩散¶
现在假定有一张像素值范围为 [0, 255]
的彩色 RGB
图像
创建和输入图像形状完全一样,服从正态分布的随机噪声
然后利用公式 1 将图片
首先有原始图像
将上面的过程形式化,也就是用数学公式对这个过程进行表示。
对于
对于
对于
以此类推
对于
我们发现规律:
- 其中
和其他任意时刻的 都是独立同分布的, 。也就是任意俩时刻的噪声是互不影响的。 - 特别注意一下,
,在一开始的 取值较小,也就是噪声的权重较小,越往后的 的取值逐渐变大,也就是噪声的权重较大。 - 规律就是在前期图像的扩散速率较低,到后期图像的扩散速率逐步加快。
为了简化后续的推导,在这里用
所以公式又能写成:
接下来我们将使用公式 7 搞亿点事情。
使用公式 7 我们可以从图像
能做到吗?
首先我们有:
然后还有:
然后还有:
还有很多很多,一直到:
可以看到好像,仅仅是好像只要知道这一时刻的图像就能表示出后一时刻的图像,那么我们将这些公式合并起来,看看能用
首先合并公式 8 和公式 9 我们得到:
再把公式 10 和上式公式 12 合并能够得出:
这样一直合并下去我们可以得到:
这个公式可能复杂了一点,但是你要是有耐心一点点进行合并是可以顺理成章推导出来的。
我们看矩形框内的每个
分布 | 均值 | 方差 |
---|---|---|
到这里,我们还知道就是多个符合正态分布的分布和进行叠加后的分布还是符合正态分布的,其前后均值和方差还满足一定的规律,这里不详细介绍了。
那么就可以利用重参数化技巧得出:公式 14 的矩形框区域的分布是服从均值为
这样的关系式还是很冗长,用
现在从上式来看,只要给定一个随机噪声分布
反向过程¶
刚才介绍的是从一张没有噪声的图如何有规律的加入噪声,现在假设我们有一张几乎都是噪声的图片,我们希望有一种能够和前向扩散完全相反的过程,为什么需要呢?
刚才是从
先把需要用到的公式写下来。
关于贝叶斯公式(公式 19),补充一点,假如
那么结合例子来讲,知道了前向扩散的这一事件的具体过程,现在我们就可以利用这个过程根据已经发生的前向扩散得到前一时刻噪声图。
我们用
为了严谨更新一下公式,这样就是说都是从同一张原始图像出发:
我们看看等式右边各个正态分布:
那么再转化一下,用正态分布表达式来表示上式:
他们写成正态分布的概率密度函数表达式:
我们将上面的概率密度函数代入公式 25 中,经过化简就能得到:
也就是说:
但是我们必须记得我们是想用
正好有这个公式:
根据这个公式可以用
还可以表示
再把上式代入公式 30,那么就能得到:
经过这样的过程:
我们整理得到:
结论
- 根据公式 31 可以知道,只要我们知道原始图像
,我们就能通过直接加入一个噪声 变成噪声图像 。 - 根据公式 35 可以知道,只要我们知道了噪声
,就能知道前一时刻的图像概率分布。 - 但是问题就在于我们不知道这个噪声
,那么就能利用神经网络强大的拟合能力,给定一张噪声图去预测噪声 来获取前一时刻的噪声图像,再在前一时刻的噪声图像去预测另一个噪声 来获取前前一时刻的噪声图像,如此循环一定步数。最终就能得出接近原始图像的图片。