扩散模型基础

扩散模型基础(1)原理篇

背景

扩散模型(Diffusion Models)发表以来并没有受到过多关注,它不像GAN那样思想简单粗暴好理解。不过最近几年正在生成模型领域异军突起,例如比较火爆的文字生成图像的模型DALL E2和Google的Imagen,都是基于扩散模型来做的。

相较于GAN,扩散模型的训练过程不存在博弈过程,损失容易收敛。(GAN由于对抗过程,损失经常出现震荡的情况)
相较于VAE:扩散模型需要通过多个高斯分布来描述复杂的图像分布,它的生成图像质量高、多样性好。

前向扩散

在这里插入图片描述

  • 每一个时刻都要添加高斯噪声,后一时刻是由前一时刻添加噪声得到的
  • 前向加噪声的过程其实是不断构建标签的过程(后面去噪就是学习前面添加的噪声水平),后续会用到。

β t \beta_t βt是先验知识,是一个衰减函数。也就意味着越往后添加的噪声越多.
在这里插入图片描述
在这里插入图片描述
这个公式意味着,任意时刻的分布都可以通过X0初始状态计算出来。在实际训练过程中,对于每一张图像都会随机选择它扩散的时刻t。

逆向去噪

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面,求取条件概率 q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) q(x_{t-1}|x_t,x_0)=q(x_t|x_{t-1},x_0)\frac{q(x_{t-1}|x_0)}{q(x_t|x_0)} q(xt1xt,x0)=q(xtxt1,x0)q(xtx0)q(xt1x0)的概率分布。以及概率分布的均值和方差。
在这里插入图片描述
在这里插入图片描述
训练阶段只用这个公式下面,估计噪声
在这里插入图片描述

模型训练

模型损失

Loss = z t − z t ^ z_t-\hat{z_t} ztzt^ 估计每一时刻的噪声

模型训练流程

在这里插入图片描述
Training:使用损失估计噪声 ϵ θ \epsilon_{\theta} ϵθ
Sampling:得到去噪图像 x t − 1 x_{t-1} xt1

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值