一、前向过程(扩散过程)
在前向过程中,模型逐步向数据添加噪声,直到数据完全转化为无结构的噪声
这个过程可以用马尔可夫链来描述,其中每一步都向数据添加一小部分高斯噪声
- 假设我们有一个初始数据分布 p(x0)(例如图像)。
- 在每个时间步 t,数据 xt 通过添加高斯噪声转化为 。这个过程可以数学上表示为 ,其中 βt 是预设的方差序列,ϵ 是来自标准正态分布的随机噪声。
- 经过足够多的时间步后,数据 xT 变成了纯噪声。
二、反向过程(去噪过程)
在反向过程中,模型学习如何逐步从噪声中恢复出原始数据
反向过程同样是一个马尔可夫链,但是它试图从噪声中恢复出原始数据。
- 在每个时间步 t,模型基于当前的噪声数据 xt 和训练过程中学习到的参数,预测加入到 的噪声 ϵ。
- 这个预测噪声用于更新 xt 来生成 xt−1 的估计,数学上可以表示为,其中 且 ϵθ 是模型预测的噪声。
- 通过重复这个过程,模型逐步恢复出更清晰的数据,直到最后恢复出原始数据 x0