【扩散模型连载 · 第 2 期】逆向扩散建模与神经网络的角色

上期回顾

我们在第 1 期中介绍了 正向扩散过程(Forward Process),并用 CIFAR-10 图像演示了加噪过程:

正向过程是固定的,无需训练,但我们感兴趣的是:如何从纯噪声一步步"还原"出真实图像?

这就引出了今天的重点:

一、逆向扩散过程(Reverse Process)

正向扩散会将图像逐步变为噪声:

我们想做的是逆过程:

这个逆向过程也被建模成一个马尔可夫链

目标:用神经网络 θ学习出这个高斯分布的参数.

二、逆向过程的难点

相比于前向过程,逆过程存在两个挑战:

  1. 真实的 p(x_t−1∣xt)无法直接获得

    因为我们没有真实的 x_t−1​ 分布,只知道正向过程中加了噪声。

  2. 训练目标不好设计

    我们不能直接监督学习目标分布,只能间接构造损失。

三、DDPM 的关键设计:噪声预测损失

作者提出了一个巧妙的思路:

既然我们知道在正向过程中,x_t 是通过在 x_0上添加噪声得到的:

那么我们可以训练神经网络 ϵ_θ(x_t,t) 去预测加进去的噪声 ϵ

四、训练损失函数

使用 L2 loss 去预测噪声:

含义:

  • 随机采样一个时间步 t

  • 加噪得到 x_t

  • 训练网络 ϵ_θ​ 尽可能预测正确的噪声

📌 神奇之处:这个损失等价于对变分下界的优化(DDPM 论文中严格推导)

相关推荐
失散1319 分钟前
深度学习——02 PyTorch
人工智能·pytorch·深度学习
图灵学术计算机论文辅导22 分钟前
傅里叶变换+attention机制,深耕深度学习领域
人工智能·python·深度学习·计算机网络·考研·机器学习·计算机视觉
重启的码农2 小时前
ggml 介绍(4) 计算图 (ggml_cgraph)
c++·人工智能
重启的码农2 小时前
ggml 介绍(5) GGUF 上下文 (gguf_context)
c++·人工智能·神经网络
R-G-B3 小时前
OpenCV Python——报错AttributeError: module ‘cv2‘ has no attribute ‘bgsegm‘,解决办法
人工智能·python·opencv·opencv python·attributeerror·module ‘cv2‘·no attribute
Seeklike3 小时前
diffusers学习--stable diffusion的管线解析
人工智能·stable diffusion·diffusers
数据知道3 小时前
机器翻译:模型微调(Fine-tuning)与调优详解
人工智能·自然语言处理·机器翻译
Struart_R4 小时前
SpatialVLM和SpatialRGPT论文解读
计算机视觉·语言模型·transformer·大语言模型·vlm·视觉理解·空间推理
沫儿笙4 小时前
焊接机器人保护气体效率优化
人工智能·机器人
青岛前景互联信息技术有限公司4 小时前
应急救援智能接处警系统——科技赋能应急,筑牢安全防线
人工智能·物联网·智慧城市