Diffusion Model
生成模型的主要分支:
这里主要介绍扩散模型。
Diffusion model的主要流程
扩散模型分为前向和后向过程。
前向过程:对训练图像添加n次噪声,使其最终结果符合高斯分布
后向过程:将高斯噪声进行n次去噪,使其还原为原来的训练图像
前向过程
假设真实图像中的数据分布为,接下来我们定义一个前向扩散过程,我们通过步不断向样本添加一些高斯噪声,这样我们会得到个添加了高斯噪声的图像。每步添加的高斯噪声的大小由变量(训练过程中动态变化)控制。以表示在分布中时的概率样本概率值。
在扩散过程(正向过程)中,通过对任意的初始样本连续地添加次高斯噪声,可获得包含一条样本的轨迹,并且当趋于无穷时,原始样本的特征完全消失,成为标准高斯噪声。从概率分布的角度而言,如果定义初始样本(训练样本)的概率分布为,则通过无限次地扩散动作,实现了从初始样本分布到标准高斯分布的映射,即。
当然,扩散过程连续添加的高斯噪声并不是任意的,其具体的限定规则为:
其中
样本的均值相比于样本将更趋于,而方差也随着的增加而逐渐向趋近。
接下来我们定义:
, 以及
这样先定规则就变成了:
在实际获取时,可先从中随机采样获取,然后对其进行变换得到符合上式的样本,即
需要强调的是,在的基础上通过添加噪声获得时,需要先缩小的数值以获得均值,然后在此基础上再叠加高斯噪声,而并非直接在上添加噪声。
类似的,在时刻也有关系
将代入中得
其中
递推可以得到与的关系
其中仍为从采样的噪声。
此时我们可以得到结论,当给定初始样本时,样本的分布为
上式表明,对于某个给定,其在多次扩散中,始终对应于一个高斯分布,如上图所示,且该高斯分布逐渐趋近标准高斯分布。
后向过程
如果我们能够将前向过程逆向,那我们将通过对标准高斯噪声输入不断进行采样,来还原输入图像。当足够小时,在扩散过程的逆过程(生成过程)中,也将近似符合高斯分布。不幸的是,我们不能很好的预估,因为前向过程中所有的均值方差都是已知的,而逆向过程中的均值方法均未知。所以我们需要学习每个时刻的均值和方差,也就是说我们要根据训练样本集合学习到足够好的和,从而使得逆向过程能够产生足够好的样本。
此时我们可以构建生成模型,则
tips
为什么要随时间逐渐变大?
- 因为原始图像稍微加一点噪声就会有很大的变化,随着噪声越加越多,只有添加的噪声变大才能体现出添加噪声的变化。
为什么要构建前向扩散过程?
- 因为扩散过程中隐含着重要的可逆性质:当足够小时,在扩散过程的逆过程(生成过程)中,也将近似符合高斯分布。
- Title: Diffusion Model
- Author: 茴香豆
- Created at : 2023-02-27 16:32:18
- Updated at : 2023-02-28 17:22:16
- Link: https://hxiangdou.github.io/2023/02/27/Diffusion-Model/
- License: This work is licensed under CC BY-NC-SA 4.0.