Diffusion模型(唐宇迪)

文章详细讲解了diffusion模型的正向和逆向过程,强调在理解过程中应避免只依赖文字解释,推荐观看唐宇迪的视频配合学习。正向过程涉及α的取值和递推,而逆向过程利用贝叶斯公式求解分布,特别是通过UNet模型预测噪声以实现图像生成。文章还介绍了前向和逆向过程的具体步骤,以及在训练和采样中的应用。

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

diffusion精讲(唐宇迪)_哔哩哔哩_bilibili

这篇文章主要用于自己后面复习使用,我的建议是大家在看完视频前尽量少看csdn等文章,很难理解,可以边看视频或者看完视频将本文配套使用。文章仅供学习。

正向过程

李宏毅中提到的的α如何取值

 李宏毅中提到的â其实是累乘,是经过一系列递推后得到的结果,宇哥666。

第六行和最后一行的噪音上面没有一

正向过程可以直接推导出最后,但是反向过程需要一步一步向前还原。上一篇中李宏毅管这叫auto-regressive。

逆向过程

总体来说

就是我们要通过Xt的分布求Xt-1的分布,但是无法直接求出来。但由于通过Xt-1的分布可以求出Xt的分布,那么就可以借助贝叶斯公式求出Xt-1的分布。

因此

 这里并不是等号,而是正比例符号;并且1-αt=βt;

 

前三行先将之前的式子进行化简;

第五行是将正态分布计算公式化简,这里说可以得到均值和方差的意思是可以将第五行化简的式子与第三行的式子一一对应,可以从第三行红色的部分计算出方差,再将得到的方差带入第三行蓝色的式子计算出均值,就是这里说得到均值和方差。

逆向过程的目的就是求出X0,所以X0不可知。所以这里用Xt来表示X0,目前的均值仅与Xt有关。

倒数第二行Zt上没有一

在原始论文中直接使用β作为Xt-1的方差。真实方差应该是:(1-ât-1)βt/1-ât。

这里Zt是求不出来的,因此训练模型来预测Zt。相关论文中的模型采用UNet。模型输入参数有两个,Xt和step t。t是用来得到真实噪音Zt,然后用预测的噪音Zt和真实的噪音Zt计算损失。

原始论文中直接使用βt-1作为Xt-1的方差

宇哥这里灵魂发问:为什么要用UNet网络,而不用更复杂的网络?

前向过程:

2:从数据集中采样batch_size张图片

3:t属于[1,T],并且batch_size内每张图片对应的T是不一样的!

4:生成噪声。

5:训练UNet参数。

逆向过程:

1:在标准正态分布中随机采样XT

2:for循环

3:除了最后一步,都采样一个Z

4:推导出Xt-1

### Diffusion模型概述 Diffusion模型是一类生成模型,通过逐步向数据中添加噪声并学习逆转这一过程来工作。这类模型的核心理念是将复杂的数据分布简化为高斯噪声的形式,再训练网络学会如何从这种简单的分布重建原始数据。 在实际应用中,扩散模型采用了一种称为去噪扩散概率模型(DDPM)的方法[^2]。该方法允许模型逐渐去除图像中的随机扰动,最终恢复出清晰的目标对象。此过程中涉及两个主要阶段:前向传播和反向传播。前者负责引入噪声;后者则致力于消除这些干扰因素,直至获得高质量的结果。 #### 潜在空间的操作 值得注意的是,像Latent Diffusion这样的变体并不直接作用于像素级表示,而是先利用编码器将输入压缩至较低维度的潜在表征形式后再执行上述流程。这样做不仅提高了效率,还使得U-Net架构能够在更加紧凑的空间内有效地施加或移除失真效果[^1]。 ```python import torch.nn as nn class UNet(nn.Module): def __init__(self, input_channels=3, output_channels=3): super(UNet, self).__init__() # 定义 U-Net 结构... def forward(self, x): # 实现正向传递逻辑... return x ``` ### 应用实例 Stable Diffusion是一个著名的基于Transformer的语言模型框架,集成了OpenAI开发的CLIP以及diffusion技术。其中,CLIP作为一种先进的跨模态特征提取工具,能有效建立起文字与视觉内容间的联系,支持依据给定提示词创造出对应的图形作品。此外,在推断环节,只需提供一段描述性的语句加上初始状态下的完全无序信号——即所谓的“纯噪音”,就能启动整个创作进程,进而产出符合预期的艺术品样貌[^4]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值