扩散模型DDPM:从噪声中创造图像的艺术
扩散模型DDPM:从噪声中创造图像的艺术
DDPM(Denoising Diffusion Probabilistic Model)是一种基于扩散过程的生成模型,通过逐步添加噪声和去除噪声来实现图像生成。本文将详细介绍DDPM的基本原理和实现过程。
1. DDPM的基本概念
DDPM的核心思想是定义一个前向传播过程和一个反向传播过程。前向传播过程是通过逐步添加噪声将原始图像转换为纯噪声,反向传播过程则是通过逐步去除噪声将纯噪声恢复为原始图像。
- Denoising:指反向传播过程中的逐步去噪过程。
- Diffusion:指每张图片逐步进行去噪过程,而不是一步到位直接去噪成原图。
- Probabilistic Models:涉及一些数学的概率相关原理推导。
2. 加噪过程
前向传播
加噪过程是在每一步中向图像中添加一个0-1的高斯分布噪声。具体来说,从第t-1步的图像(x_{t-1})开始,通过添加高斯噪声得到第t步的图像(x_t)。
反向传播
反向传播的目标是训练一个神经网络,使其能够预测出噪声,从而从噪声图像(x_t)恢复到更清晰的图像(x_{t-1})。这个过程可以通过训练神经网络来实现,使其能够预测出噪声,然后从噪声图像中减去这个噪声,得到更清晰的图像。
3. 高斯噪声
高斯噪声是一种概率密度函数服从高斯分布(正态分布)的噪声。在数字图像处理中,高斯噪声是一种常见的噪声类型,会使图像变得模糊,降低图像质量。
4. 前向传播过程
在前向传播过程中,定义了一个系数来表达噪声图片的生成。生成的噪声图片也满足高斯分布。具体来说,噪声图片(x_t)可以通过以下公式生成:
其中,(z)是从一个均值为(\mu)、方差为(\sigma^2)的高斯分布中采样出来的。通过这个式子,我们可以得出从原始图像(x_0)可以直接加噪到任意时间步(t)的噪声图像(x_t)。
5. 反向传播过程
反向传播过程的目标是学习从噪声图像恢复到原始图像的逆过程。由于这个逆过程无法直接求解,因此使用神经网络来拟合这个分布。假设反向的条件概率分布也是高斯分布,神经网络需要计算的是均值和方差。根据概率论的相关计算:
方差是固定的,网络只学习均值。在后续的改进模型中,方差也可以由网络学习得到。
6. 整体训练过程
训练过程
- 采样一幅真实图像(x_0)。
- 选取想要的(t),一步加噪生成(x_t)。
- 训练网络的均值与真实网络的均值进行对比,计算损失。
- 更新参数,反复迭代。
生成过程
- 从标准高斯分布(N(0,1))中采样一个噪声向量(z)。
- 对(t)从(T)到1排序,使用训练的网络参数进行去噪。
- 最终的(x_0)就是生成的图片。
总结
DDPM通过定义一个逐步加噪声直到变成纯粹噪声的过程,然后对噪声进行去噪得到真实的图片。加噪过程是基于稍微干净的图片计算一个高斯分布,然后从这个分布中抽样得到加噪后的结果。去噪过程则是基于噪声图像计算一个条件分布,希望从这个分布中抽样得到更接近真实图片的图像。由于这个条件分布无法直接计算,因此用神经网络去学习近似这样一个高斯分布。