当前位置:   article > 正文

扩散模型基础

扩散模型基础

扩散模型基础(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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号