生成式之Diffusion扩散模型

前言

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

Image-1

什么是Diffusion Model?

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

扩散模型实现原理

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

Diffusion 逆向过程

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

Image-4

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

总结

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

查拉图斯特拉talk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值