多模态原理--扩散模型的反向扩散过程
1.概述
给定一张正常照片,通过逐渐添加随机噪声,图像会变得无法辨认,这个过程称为正向扩散。给定一张噪声图像,通过不断的去噪,目标是重建原始图像,这个过程称为反向扩散。

2. 反向扩散过程
反向扩散过程是从一张完全的高斯噪声图片中,逐步去除噪声,来生成一张图片。但是噪声的数据是很难直接获得的,所以噪声使用神经网络来模拟。
3. 神经网络模型
最常见的是,U-Net 架构被用作扩散模型的主干。以下是一些原因:① U-Net 保留了输入和输出图像的尺寸,确保在整个逆扩散过程中图像大小保持一致。② 其瓶颈架构能够在将整幅图像压缩到潜在空间后将其重建。同时,通过残差连接保留关键图像特征。③ U-Net 最初设计用于生物医学图像分割,其中像素级精度至关重要,它的优势可以很好地转化为需要精确预测单个像素值的扩散任务。

所以神经网络的训练流程如下:

训练神经网络的损失函数如下:

4. 反向扩散的算法
基于正向扩散产生的纯噪声图片 XT,按照正向扩散的时间步反向逐渐去噪,过程如下:

核心去噪公式:

5. 核心去噪公式的数学证明:
5.1 定理:如果前向过程的马尔可夫链的转移概率分布 𝑞(𝑥𝑡|𝑥𝑡−1) 是高斯分布,且 𝛽𝑡 充分小,那么反向过程的马尔可夫链的转移概率分布 𝑞(𝑥𝑡−1|𝑥𝑡) 也是高斯分布。
贝叶斯公式:

在固定 𝑥𝑡 的情况下,求 𝑥𝑡−1 的概率,所以 𝑞(𝑥𝑡) 是个常数。
已知 𝑞(𝑥𝑡|𝑥𝑡−1) 是高斯分布,且 𝛽𝑡 充分小。根据拉普拉斯近似逼近的原理,
逼近于高斯分布。
5.2 首先条件是 𝐱0 基于正向扩散产生的纯噪声图片 XT。定义为 𝑞(𝑥𝑡−1|𝑥𝑡, 𝐱0),是一个简单的高斯分布。



已知高斯分布公式:

将高斯公式的指数项展开:

所以高斯分布的方差是:

均值是:

根据前向扩散的闭式公式:
![]()
所以:

6. 总结:①反向扩散算法是基于正向扩散算法的。直观上讲,这是合理的,因为对于给定的噪声图像,很难猜测是哪个更低噪声的图像产生了它,但是如果已经有起始图像,这样就比较容易解决。
② 扩散模型解决了图像怎么生成的问题,这是多模态的重要基础。
- 点赞
- 收藏
- 关注作者
评论(0)