深入浅出讲解DDPM扩散模型:Denoising Diffusion Probabilistic Models

1 简介

DDPM:Denoising Diffusion Probabilistic Models
去噪扩散模型就是图像生成模型

1.1 大白话版本

简单来说,它就像是一个神奇的“画图机器人”,能根据你的要求生成各种图片、音频或者其他类型的数据。

假如你有一张非常干净的画,但是有人故意在上面加了很多乱七八糟的“噪声”(比如涂鸦、污点等),把这幅画弄得面目全非。DDPM的工作原理就像把这张被破坏的画恢复成原来的模样。
扩散过程:DDPM会从一个完全随机的噪声开始。就像你有一张照片,我们把颜料随机地涂在纸上。这个过程会持续很多步,每一步都会让噪声变得更复杂,直到最后变成一个完全看不出原来模样的东西。
去噪过程:接下来,DDPM开始“去噪”。它会从这个完全混乱的状态开始,一步步地把噪声去掉,就像你小心翼翼地擦掉画上的污点一样。每一步都会让图像变得更清晰一点,直到最后恢复出一个干净的、有意义的图像。

本质上来讲是一个生成模型,去拟合拟目标的分布,然后去生成很多数据符合这个分布。

1.2 简易版本

去噪扩散模型大体包括两个过程,一是对真实图像进行扩散过程,二是对加噪的图像进行重建去噪。

扩散过程:
向真实图片数据中逐步加入噪声,直到观测数据变成高斯分布。
在这里插入图片描述
重建(去噪)过程:
从一个高斯分布中采样,逐步消除噪声,直到变成清晰的数据。
在这里插入图片描述

1.2.1 例子

①训练过程
FFHQ(dataset)数据集里面包含7万张人脸,DDPM会先对这些真实的人脸图片逐步添加噪声。
在这里插入图片描述
②推理过程
高斯分布里面采样很多的噪声图,把这些噪声图重建reverse,DDPM会不断调整自己的参数,让去噪的效果越来越好,就可以得到很多人脸图片。
在这里插入图片描述

1.3 扩散模型相比GAN

GAN(Generative Adversarial Networks)也是生成模型
在这里插入图片描述
打个不恰当的例子,GAN类似于警察抓小偷的过程中,警察不断增强自己的技能和本领,然而小偷在这个过程中也在不断学习逃跑的方法,警察通过小偷的行为又采取进一步的学习,二者总是在相互制衡。

GAN由生成器(Generator)和判别器(Discriminator)组成。生成器负责生成假数据,判别器负责区分真假数据。生成器不断学习生成更逼真的数据,判别器则不断学习更好地识别真假数据,所以说GAN是不太稳定的过程。


参考视频:https://www.bilibili.com/video/BV1fU4y1i7kK?spm_id_from=333.788.videopod.sections&vd_source=53084a7d9d3e0f3765c72a2e22e7e152

2 扩散阶段diffusion

把一张真实的图像不断的加噪声,噪声强度不断变大,最后得到一个完全的噪声图。
在这里插入图片描述

X t = 1 − β t X t − 1 + β t Z t {X}_{t}=\sqrt{1-{\beta }_{t}}{X}_{t-1}+\sqrt{{\beta }_{t}} {Z}_{t} Xt=1βt Xt1+βt Zt
Z t ∽ N ( 0 , I ) {Z}_{t} \backsim N(0,I) ZtN(0,I)
我们可以把上述方程看作 X t = f ( X t − 1 ) {X}_{t}=f({X}_{t-1}) Xt=f(Xt1)

因为扩散速度是越来越快的,所以 β t {\beta }_{t} βt是逐渐增大的

在这里插入图片描述
参考视频:https://www.bilibili.com/video/BV1tz4y1h7q1/?spm_id_from=333.1387.homepage.video_card.click&vd_source=53084a7d9d3e0f3765c72a2e22e7e152

3 DDPM实现过程

输入值:X(图像),t(时间点)

在这里插入图片描述

3.1 正向过程

1.我们往图片上添加的噪声是以0为均值,我们把图像缩放到[-1,1]的范围里面去
2.设置β,根据β计算α和 α ˉ \bar{α} αˉ
3.采样高斯噪声 ϵ ∽ N ( 0 , 1 ) \epsilon \backsim N(0,1) ϵN(0,1),选取时间点t对图像进行加噪
4.预测加以图像的噪声

3.2 反向过程

1.根据模型预测噪声
2.在这里插入图片描述,t越小预测的图像越清楚
3.在这里插入图片描述
4.计算方差在这里插入图片描述
5.根据均值和噪声合成图像

4 项目链接

比较简单的玩具项目代码:https://github.com/abarankab/DDPM
比较实用的项目代码:https://github.com/Janspiry/Image-Super-Resolution-via-Iterative-Refinement

<think>嗯,用户问的是Denoising Diffusion Probabilistic Models的中文翻译。首先,我需要确认这个词组的准确翻译。根据提供的引用资料,比如引用[2]提到了“生成式AI扩散模型-Diffusion Model Denoising Diffusion Probabilistic Models”,这里的中文翻译应该是“扩散概率模型”。另外,引用[3]也提到了“扩散模型”,所以综合来看,正确的翻译应该是“扩散概率模型”。 接下来,用户可能对DDPM的基本原理和应用场景感兴趣,虽然他们直接问的是翻译,但可能需要进一步的解释。比如,DDPM属于生成模型的一种,通过逐步来生成数据,这个过程类似于扩散的逆过程。根据引用[3],扩散模型基于马尔可夫链,通过反向恢复图像,灵感来自非平衡热力学中的扩散过程。 另外,用户可能还想知道DDPM与其他生成模型(如GAN或VAE)的区别,或者它的优势在哪里。例如,引用[4]提到方差选择对生成结果的影响较小,随着训练步数增加,均值估计的影响更大,这可能说明DDPM在稳定性和生成质量上的优势。 用户可能需要更深入的内容,比如DDPM的训练过程、应用案例或者数学原理。根据引用[4],方差的选择在大部分时间步中是固定的,这可能简化模型训练。此外,DDPM在图像生成、音频合成等领域有广泛应用,这也是用户可能感兴趣的方向。 总结一下,用户的核心需求是中文翻译,但潜在的可能需要了解其基本原理、优势、应用场景以及与其他模型的对比。需要确保回答准确且覆盖这些潜在问题,同时引用提供的资料来支持回答。</think>### Denoising Diffusion Probabilistic Models 的中文翻译 Denoising Diffusion Probabilistic ModelsDDPM)的中文翻译为**扩散概率模型**。该模型是扩散模型Diffusion Model)的一种实现形式,其核心思想是通过模拟数据逐步加和反向的马尔可夫链过程,最终生成高质量的数据样本[^3]。 ### 核心概念解析 1. **加过程(正向过程)**:通过多步向数据中添加高斯声,将原始数据逐渐变为纯声,模拟热力学中的扩散现象。 2. **过程(反向过程)**:通过神经网络学习如何从声中逐步恢复原始数据,每一步预测当前声并除,最终生成目标样本[^3]。 3. **方差调整**:在加过程中,声的方差(如$\beta_t$和$\tilde{\beta}_t$)会根据时间步动态调整,但随着时间步数增加(例如$T=4000$),方差的影响逐渐减弱,均值预测($\mu_\theta(x_t, t)$)成为主导因素[^4]。 ### 示例代码(简化的扩散过程) ```python # 加过程示例 def forward_diffusion(x0, t, beta_schedule): noise = torch.randn_like(x0) alpha = 1 - beta_schedule[t] xt = torch.sqrt(alpha) * x0 + torch.sqrt(1 - alpha) * noise return xt, noise ``` ### 相关问题 1. **扩散概率模型与GAN、VAE有何区别?** 2. **DDPM中如何设计有效的声调度(Noise Schedule)?** 3. **扩散模型在图像生成以外的领域有哪些应用?** 4. **为什么DDPM的方差调整对生成质量影响较小?** [^4] ### 引用来源 [^1]: Diffusion Model(Denoising Diffusion Probabilistic Models) 作用 [^2]:DiffusionDenoising Diffusion Probabilistic Models (DDPM)入门指南 : 扩散模型基于马尔可夫链的反向原理 : 方差$\beta_t$与$\tilde{\beta}_t$对生成结果的影响分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

失舵之舟-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值