对于扩散模型的理解

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

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

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

扩散生成模型的原理

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

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

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

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

扩散模型的优缺点

优点:

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

缺点:

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

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

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

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

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

扩散模型和GAN的区别

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

相关推荐
一水鉴天11 分钟前
为AI聊天工具添加一个知识系统 之65 详细设计 之6 变形机器人及伺服跟随
人工智能
王老师青少年编程5 小时前
gesp(C++五级)(14)洛谷:B4071:[GESP202412 五级] 武器强化
开发语言·c++·算法·gesp·csp·信奥赛
DogDaoDao5 小时前
leetcode 面试经典 150 题:有效的括号
c++·算法·leetcode·面试··stack·有效的括号
井底哇哇6 小时前
ChatGPT是强人工智能吗?
人工智能·chatgpt
Coovally AI模型快速验证6 小时前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
AI浩7 小时前
【面试总结】FFN(前馈神经网络)在Transformer模型中先升维再降维的原因
人工智能·深度学习·计算机视觉·transformer
可为测控7 小时前
图像处理基础(4):高斯滤波器详解
人工智能·算法·计算机视觉
Milk夜雨7 小时前
头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
算法·贪心算法
一水鉴天7 小时前
为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
开发语言·人工智能·python
BoBoo文睡不醒7 小时前
动态规划(DP)(细致讲解+例题分析)
算法·动态规划