diffusion model (扩散模型)原理

本文介绍了扩散模型,区分了其正向的加噪声过程和反向的去噪生成过程。与VAE的一次性编码解码不同,扩散模型通过分步骤进行自回归。着重讲解了噪声预测器的训练方法和推理过程,以及如何从高斯噪声图片逐渐恢复清晰图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

扩散模型分为正向过程和反向过程。
正向过程为一点点在图片上添加噪声的过程,反向过程为去噪声的过程。

图片的生成就是反向过程,给一张高斯噪声图片,逐步去噪生成图片。
在这里插入图片描述

扩散模型和VAE的区别,
VAE是一步到位的(通过encoder-decoder),扩散模型要分成N个step, 是一个自回归过程。

在这里插入图片描述

扩散模型的训练过程

重复1到5行的过程,直到收敛。
每次采样一张图片 x 0 x_{0} x0,t, 和高斯噪声图像 ϵ \epsilon ϵ
α t ˉ \bar{\alpha _{t} } αtˉ是事先定义好的数字,你可以定义它随时间线性变小,也可以是cosine分布。在你采样 t 的时候,t 也同时对应了一个 α t ˉ \bar{\alpha _{t} } αtˉ
ϵ \epsilon ϵ是高斯噪声图片,那么在这里插入图片描述就表示在图片上添加噪声。
ϵ θ \epsilon_{\theta} ϵθ可以理解为一个noise predictor, 它可以是一个网络, i n p u t input input是加了噪声的图片在这里插入图片描述和 t , 输出是一个噪声图片 ϵ θ ( i n p u t ) \epsilon_{\theta}(input) ϵθ(input),
根据采样的噪声 ϵ \epsilon ϵ和预测的噪声图片 ϵ θ ( i n p u t ) \epsilon_{\theta}(input) ϵθ(input)的误差来训练这个noise predictor,
使它能够输出尽可能接进 ϵ \epsilon ϵ的噪声。

在这里插入图片描述

上面的过程也说明了一个问题,
当你采样了 t, 是可以直接计算 t 时刻的加了噪声的图片的,在这里插入图片描述
请添加图片描述

而不是想像中的这个样子:
请添加图片描述

推理过程

前面提到了扩散模型有正向和反向过程,
在正向过程中,图片是 x 0 x_{0} x0, 逐步加噪声,到T时刻的 x T x_{T} xT是一个噪声图片。

推理过程是反向过程,根据高斯噪声的 x T x_{T} xT的得到图片 x 0 x_{0} x0.

ϵ θ \epsilon_{\theta} ϵθ是前面训练过程中训练的noise predictor, 它的input为加了噪声的图片 x t x_{t} xt和 t.
z z z也是一个采样的噪声图片。
请添加图片描述
上面的过程是这样的:
采样N次,直到得到清晰的 x 0 x_{0} x0

在这里插入图片描述

公式推导部分待更新。

参考资料

### 扩散模型概述 扩散模型是一种强大的生成模型,在机器学习领域内获得了广泛关注。这类模型通过逐步向数据添加噪声来学习复杂分布,并能够逆过程去噪以生成新的样本[^1]。 #### 工作原理扩散模型中,前向过程涉及将高斯噪声逐渐加入到初始数据点上;而反向过程中,则试图从未知的纯噪声状态恢复原始模式特征。此机制允许模型捕捉输入空间内的细微结构变化并有效模拟多模态现象。 ```python import torch.nn as nn class DiffusionModel(nn.Module): def __init__(self, timesteps=1000): super(DiffusionModel, self).__init__() self.timesteps = timesteps def forward_process(self, x_0): """Add noise to input over time steps.""" pass def reverse_process(self, noisy_x_t, timestep): """Remove noise from input at given step.""" pass ``` #### 应用场景 扩散模型已被应用于图像合成、语音处理等多个方面。特别是在计算机视觉任务里表现突出,比如超分辨率重建以及风格迁移等操作均能取得优异效果。此外,在自然语言处理方向也有着潜在的应用价值,可用于文本摘要生成或是翻译系统的改进工作之中。 #### 实现细节 为了构建一个有效的扩散模型框架,通常会采用变分自编码器(VAE)或流形映射的思想来进行设计。具体来说就是定义一系列连续的时间步长下的转换函数q(x_{t}|x_{t−1})用于描述加噪流程,同时估计p_theta(x_{T},...,x_0),即从最终含最大量随机性的表示回到原样貌的概率密度函数。这一系列计算往往依赖于深度神经网络完成参数化表达。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值