首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >扩散模型 Diffusion Model

扩散模型 Diffusion Model

作者头像
为为为什么
发布2022-08-04 11:43:26
发布2022-08-04 11:43:26
2K0
举报
文章被收录于专栏:又见苍岚又见苍岚

扩散模型 (Diffusion Models) 是近年提出的生成模型, 扩散模型已经被证明可以生成高质量的图像,并且相比于GAN能够更好地覆盖样本分布, 本文介绍相关内容。

背景

  • 在文章 《Diffusion Models Beat GANs on Image Synthesis》 中展示了扩散模型的图像生成能力:
  • 在清晰度、多样性上都不逊色于 GAN 等模型
  • 扩散模型的灵感来源于非平衡态热力学。他们定义了一个马尔可夫链的扩散步骤,慢慢地向数据中添加随机噪声,然后学习逆向扩散过程,从噪声中构造所需的数据样本。与 VAE 或流动模型不同,扩散模型的学习过程是固定的,隐变量具有较高的维数(与原始数据相同)。

框架

  • 扩散模型定义很简单,包含有两个过程,分别为扩散过程和逆扩散过程。
扩散过程

给定一个初始数据分布

(说白了就是训练集),核心过程如上图所示,扩散过程为从右到左 X_0 \to X_T 的过程,表示对图片逐渐加噪。

  • 不断向该分布中添加高斯噪声,一共加 T 次,所添加噪声的均值是由预先确定的超参数

所确定的,方差是由

和当前 t 时刻的数据

所决定的,其中

  • 加噪过程中经历 T 个状态,每个加噪过程相互独立,即 \mathrm{X}{t+1} 是在 X{t} 上加躁得到的,其只受 X_{t} 的影响, 因此扩散过程是一个马尔科夫过程。
  • X_0 表示从真实数据集中采样得到的一张图片,对 X_0 添加 T 次噪声,图片逐渐变得模糊,当 T 足够大时,X_T 为标准正态分布。
  • 在训练过程中,每次添加的噪声是已知的, 即 \mathrm{q}\left(\mathrm{X}{\mathrm{t}} \mid \mathrm{X}{\mathrm{t}-1}\right) 是已知的,根据马尔科夫过程的性质,我们可以递归得到 \mathrm{q}\left(\mathrm{X}{\mathrm{t}} \mid \mathrm{X}{0}\right) ,即 \mathrm{q}\left(\mathrm{X}{\mathrm{t}} \mid \mathrm{X}{0}\right) 是已知的。

可写为如下形式,即给定

的条件下,

服从均值为

,方差为

的正态分布:

  • 用重参数化技巧表示

,令

,令

, 即:

逆扩散过程
  • 如上图所示,逆扩散过程为从左到右 X_T \to X_0 的过程, 表示从噪声中逐渐复原出图片。
  • 如果我们能够在给定 X_t 条件下知道 X_{t-1} 的分布,即如果我们可以知道 q(X_{t-1}|X_t) ,那我们就能够从任意一张噪声图片中经过一次次的采样得到一张图片而达成图片生成的目的。
  • 然而 q(X_{t-1}|X_t) 很难获得,因此我们需要神经网络学习 \operatorname{p_\Theta}\left(\mathrm{X}{\mathrm{t}-1} \mid \mathrm{X}{\mathrm{t}}\right) 来近似 \mathrm{q}\left(\mathrm{X}{\mathrm{t}-1} \mid \mathrm{X}{\mathrm{t}}\right)
  • 虽然我们不知道 q\left(X_{t-1} \mid X_{t}\right) ,但是 q\left(X_{t-1} \mid X_{t} X_{0}\right) 却是可以用 q\left(X_{t} \mid X_{0}\right) q\left(X_{t} \mid X_{t-1}\right) 表示的,即 q\left(X_{t-1} \mid X_{t} X_{0}\right) 是可知的 。
  • 因此我们可以用 \mathrm{q}\left(\mathrm{X}{\mathrm{t}-1} \mid \mathrm{X}{\mathrm{t}} \mathrm{X}{0}\right) 来指导 \mathrm{p} \Theta\left(\mathrm{X}{\mathrm{t}-1} \mid \mathrm{X}_{\mathrm{t}}\right) 进行训练。

损失函数
  • 我们已经明确了要训练 \operatorname{pe}\left(X_{t-1} \mid X_{t}\right) , 那么目标函数如何确定。
  • 有两个很直接的想法:
  • 一个是负对数的最大似然概率,即 : -\log {\mathrm{P} \Theta}\left(\mathrm{X}{0}\right)
  • 另一个是真实分布与预测分布的交叉熵,即 : -\mathrm{E}{\mathrm{q}\left(\mathrm{X}{0}\right)} \log \mathrm{p} \Theta\left(\mathrm{X}_{0}\right)
  • 这两个获取均比较困难,因此参考 VAE, 不去优化这两个东西,而是优化他们的变分上界(variational lower bound)
  • 定义

如下:

\mathrm{L}{\mathrm{VLB}}=\mathrm{E}{\mathrm{q}\left(\mathrm{x}{0: \mathrm{T}}\right)}\left[\log \frac{\mathrm{q}\left(\mathrm{X}{1: \mathrm{T}} \mid \mathrm{X}{0}\right)}{\mathrm{p}{\Theta}\left(\mathrm{X}_{0: \mathrm{T}}\right)}\right]
  • 可以证明:
  • 则若减小了 L_{V L B} 则减小了 -\log \mathrm{p} \Theta\left(\mathrm{X}{0}\right) -\mathrm{E}{\mathrm{q}\left(\mathrm{X}{0}\right)} \log \mathrm{p} \Theta\left(\mathrm{X}{0}\right) 的上界,也就优化了损失函数。

参考资料

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 框架
    • 扩散过程
    • 逆扩散过程
    • 损失函数
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档