对于扩散模型的理解

PS:我跟扩散模型打交道比较久了,下面是我一些对扩散模型的理解,为防止日后遗忘,也为了互相学习,故写下此篇文章,如果有误欢迎在评论区中指出,咱们互相进步。

什么是扩散生成模型(扩散生成模型的目的)

扩散生成模型就是将训练数据的数据分布映射到高斯噪声上,然后在将随机采样获得的高斯噪声逆映射成新的数据

扩散生成模型的原理

扩散生成模型包含两个阶段,第一个阶段是前向扩散阶段,即逐步向输入的图片添加随机的高斯噪声直至获得纯噪声。第二个阶段是通过训练一个神经网络来预测出第一阶段中第T步中添加的随机高斯噪音然后将该噪音去除从而获得第T-1步的图片,重复这个过程直至获得原始输入图像。

扩散生成模型中第一阶段的作用是什么

第一个作用是为第二阶段的神经网络的训练提供每个时间步中加入的随机高斯噪声和每步加噪后的图片,作为训练的标签。

第二个作用是,直接从高斯噪声中重建清晰的图像是一个极端困难的任务,因此,扩散模型将这一任务分解为多个较小的子任务,即在多个时间步长上逐步去除噪声,极大降低了模型的训练难度

扩散模型的优缺点

优点:

  • 生成的图像质量高:扩散模型能够生成高度逼真的图像。
  • 灵活性:模型可以灵活地调整生成过程中的参数,以控制生成样本的多样性。
  • 训练稳定性:相比其他生成模型,如生成对抗网络(GANs),扩散模型的训练通常更为稳定,因为扩散模型直接使用MSE损失,这种损失函数直接衡量模型输出与真实数据之间的差异,而无需依赖于另一个网络。

缺点:

  • 计算成本高:扩散模型不能够一步去生成图像,而是需要执行大量的迭代步骤,因此计算成本比较高
  • 显存需求大:扩散模型的参数量比较大,需要比较大的显存才能装得下。

如何对扩散模型的优化/改进

1、使用采样速度更快的采样方法,如DDIM、DPM等

2、在扩散模型的两端分别套上VAE的编码器和VAE的解码器,将扩散模型从像素空间的计算变成潜在空间中的计算,极大的节省了计算成本。

3、将扩散模型的主体架构Unet替换为Transformer

扩散模型和GAN的区别

扩散模型和GANs都是生成模型,但它们的工作方式不同。GANs使用两个神经网络——生成器和判别器,通过对抗的方式学习数据分布。而扩散模型则通过前向扩散过程和反向去噪过程来学习数据分布,没有直接的对抗机制。扩散模型使用MSE(均方误差)损失函数比GAN使用的对抗损失函数更稳定,更容易训练

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

七七鸭灬

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

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

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

打赏作者

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

抵扣说明:

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

余额充值