MLNLP
社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
转载自 | 北邮 GAMMA Lab
作者 | 李一博

1. diffusion模型的应用

diffusion模型在计算机视觉、自然语言处理等方面有广泛的研究和应用。下图为diffusion模型在不同领域的一些研究与应用。
超分辨率
图像修复
多模态学习
分子图

2. diffusion模型与其他模型的对比

扩散模型的灵感来自非平衡热力学。扩散模型定义了一个扩散的马尔可夫链,并缓慢地将随机噪声添加到数据中,然后学习反扩散过程以从噪声中构建所需的数据样本。与 VAE 或流模型不同,扩散模型是通过固定过程学习的,且扩散过程中变量具有和原始变量相同的维度。

2.1 VAE与diffusion模型对比

变分自动编码器旨在学习编码器和解码器,以将输入数据映射到连续潜在空间中的值。在这些模型中,嵌入可以解释为概率生成模型中的潜在变量,概率解码器可以通过参数化似然函数来表示。此外,假设数据 x 是由一些未观察到的隐变量 z 使用条件分布 生成的,并且用于近似推断 z。为了保证有效的推断,我们使用变分贝叶斯方法来最大化证据下限:
DDPM 可以被视为多层马尔可夫 VAE。正向过程表示编码器,反向过程表示解码器。此外,DDPM 跨多个层共享解码器,并且所有隐变量的大小都与样本数据相同。在连续时间的条件下,优化扩散模型可以看作是训练一个无限的、深度的、多层的的 VAE。这证明了人们普遍认为扩散模型可以解释为分层 VAE 的连续极限。

2.2 diffusion模型推导过程

扩散模型包括两个过程:前向过程(forward process)和反向过程(reverse process),其中前向过程又称为扩散过程(diffusion process),如下图所示。无论是前向过程还是反向过程都是一个参数化的马尔可夫链(Markov chain),其中反向过程可以用来生成数据,这里我们将通过变分推断来进行建模和求解。
前向过程:给出一个从真实数据分布中采样的数据点。我们定义经过步添加高斯噪声的前向扩散过程,生成一系列噪声样本  。步长由  控制。有
随着的增加,逐渐失去了其辨识性特征。当时,符合各向同性高斯分布。
扩散过程的一个良好性质是任意时刻的都可以由重参数技巧获得。另且
反向过程:如果我们可以将上述过程反向,并从,我们就可以从输入的高斯噪声()重建真实采样。注意如果足够小,那么也是高斯分布。但我们不能估计,因为这需要用到所有数据集的信息。所以我们需要学习一个来近似这个条件概率,这样就可以完成反向扩散。
当给出时,反向条件概率是可知的:
通过贝叶斯定理,有
其中是不包含的方程。因而可以不考虑。
所以均值和方差为
且有
我们可以优化负对数似然函数
可以进一步写为
其每个组成部分可以重新写为
其中是常量可以忽略,可以视为拉近两个分布 和。
我们需要用神经网络来近似反向扩散的条件概率,得到 ,我们训练来预测 。因为在训练过程中是已知的,所以可以通过预测  。
所以可以写作
进一步地,简化,发现忽视掉权重项之后,训练过程更好
最终目标是
算法为
训练过程可以看做:
  1. 获取输入,从 随机采样一个 .
  2. 从标准高斯分布采样一个噪声.
  3. 最小化 
技术交流群邀请函
△长按添加小助手
扫描二维码添加小助手微信
请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。
继续阅读
阅读原文