对于扩散模型的理解

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

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

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

扩散生成模型的原理

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

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

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

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

扩散模型的优缺点

优点:

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

缺点:

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

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

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

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

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

扩散模型和GAN的区别

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

相关推荐
开MINI的工科男39 分钟前
深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏
人工智能·机器学习·自动驾驶
limingade2 小时前
手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)
物联网·算法·智能手机·数据分析·信息与通信
AI大模型知识分享2 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
张人玉4 小时前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃4 小时前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼4 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界4 小时前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
jiao000014 小时前
数据结构——队列
c语言·数据结构·算法
霍格沃兹测试开发学社测试人社区4 小时前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源5 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费