前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生成式之Diffusion扩散模型

生成式之Diffusion扩散模型

作者头像
查拉图斯特拉说
发布2024-07-20 16:22:54
410
发布2024-07-20 16:22:54
举报
文章被收录于专栏:后端架构

前言

基于denoising diffusion probabilistic model (DDPM)的扩散模型,该模型已在图像/音频/视频生成领域取得显著成果。目前比较受欢迎的例子包括GLIDE、DALL-E 2、潜在扩散和图像生成。生成模型的扩散概念最早在2015年由Sohl-Dickstein等人介绍,但直到2019年和2020年分别在斯坦福大学和Google Brain才各自独立地改进了这种方法。本文是基于PyTorch框架的复现,并迁移到MindSpore AI框架上实现。

Image-1
Image-1
什么是Diffusion Model?

Diffusion模型通过正向扩散过程逐步向图像添加高斯噪声,然后通过反向去噪过程,利用神经网络逐步去除噪声,最终生成实际图像。这两个过程在有限的时间步长内完成,最终得到各向同性的高斯分布。

扩散模型实现原理

前向过程,即向图片上加噪声的过程。通过定义前向扩散过程和动态方差的方法,可以逐步生成图像,使得最终的图像越来越接近纯噪声。这是理解diffusion model以及构建训练样本至关重要的一步。

Diffusion 逆向过程

使用神经网络来学习逆向过程的条件概率分布,以及如何通过最小化真实数据样本的似然负对数来导出学习反向过程平均值的目标函数。作者观察到变分下界可以被视为变分自动编码器,而每个时间步长的损失实际上是两个高斯分布之间的KL发散,可以明确地写为相对于均值的L2-loss。

Image-4
Image-4

在mindspore张量中添加噪声而不是Pillow图像的过程。首先定义了图像转换,允许PIL图像转换到mindspore张量,并反之亦然。转换包括标准化图像,使其在[0,1]范围内,然后确保其在[-1,1]范围内,以便神经网络的反向过程能在一致缩放的输入上运行。

总结

扩散模型是一种基于噪声逐步去噪的生成模型,与其他生成模型如变分自编码器、生成对抗网络等相比,扩散模型较为简单,但在图像、音频、视频等领域取得了较好的效果。解释了扩散模型的前向和逆向过程,并给出了基于MindSpore框架的实现代码。 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 什么是Diffusion Model?
      • 扩散模型实现原理
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档