VAE+SDE 双视角解读扩散模型原理

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 扩散模型对于其他生成模型来讲,从数学角度来看更为优美。扩散模型也因为其背后的数学原理让很多人望而却步。今天就来梳理一下常见的两个理解扩散模型数学原理的角度。
本文共计1786字,阅读预计需要3分钟,但是三分钟你肯定看不懂,字你都认识,组合起来你不知道我在说啥,老老实实研究吧。

扩散模型对于其他生成模型来讲,从数学角度来看更为优美。扩散模型也因为其背后的数学原理让很多人望而却步。今天就来梳理一下常见的两个理解扩散模型数学原理的角度。


从VEA角度看

之前我们先是讲的VAE模型,详细可以看进来学VAE,VAE都不懂还想懂扩散模型? | Variational Auto-Encoder - 掘金 (juejin.cn),扩散模型可以视为多层VAE模型。所以首先我们从VAE角度来看。

生成建模的一个核心问题是模型概率分布的灵活性和易处理性之间的权衡。

扩散模型的基本思想是通过正向扩散过程系统地扰动数据分布中的结构,然后通过学习反向扩散过程来恢复结构,从而产生高度灵活和易处理的生成模型。

去噪扩散概率模型(DDPM)由两个参数化的马尔可夫链组成,并使用变分推理在有限时间步后产生与原始数据匹配的样本。

  • 前向链通过使用预先设计的时间表逐渐添加高斯噪声来扰乱数据分布,直到数据分布收敛到给定的先验,即标准高斯分布。
  • 反向链从给定的先验开始,并使用参数化的高斯转换核,学习逐步恢复未受干扰的数据结构。

形式上:给定一个数据分布 $x_0∼q(x_0)$,我们定义一个前向噪声过程 $q$,通过在时间 $t$添加方差为 $β_t ∈ (0, 1)$的高斯噪声,并产生潜在的$x_1, x_2. . . x_t$到 $x_T$,如下所示:

$$ \begin{aligned} q\left(x_1, \ldots, x_T \mid x_0\right) =\prod_{t=1}^T q\left(x_t \mid x_{t-1}\right) &\quad (1) \\ \\ q\left(x_t \mid x_{t-1}\right) =\mathcal{N}\left(x_t ; \sqrt{1-\beta_t} x_{t-1}, \beta_t \mathbf{I}\right) &\quad (2) \end{aligned} $$

这里我们使用 $q(x_t)$来表示潜变量 $x_t$在前向过程中的分布。等式 (2) 中定义的噪声过程允许我们对直接以输入 $x_0$为条件的噪声潜值的任意步骤进行采样。

当 $α_t = 1 − β_t$且 $\bar{α_t} = \prod^t_{s=0} α_s$ 时,我们可以写为:

$$ \begin{aligned} q\left(x_t \mid x_0\right) =\mathcal{N}\left(x_t ; \sqrt{\bar{\alpha}_t} x_0,\left(1-\bar{\alpha}_t\right) \mathbf{I}\right) &\quad (3) \\ \\ x_t =\sqrt{\bar{\alpha}_t} x_0+\sqrt{1-\bar{\alpha}_t} \epsilon &\quad (4) \end{aligned} $$

当 $\bar{α_T}$接近 0 时,$x_T$实际上与纯高斯噪声无法区分:$p(x_T ) ≈ \mathcal N (x_T ; 0, \mathbf I)$。联合分布 $p_θ(x_{0:T} )$称为逆过程,当 $β_t$足够小时,$q(x_{t−1}|x_t)$近似为高斯分布。因此我们可以将这个反向过程参数化如下,从 $p(x_T) = \mathcal N (x_T ; 0, \mathbf I)$开始:

$$ \begin{aligned} p_\theta\left(\mathbf{x}_{0: T}\right) =p\left(\mathbf{x}_T\right) \prod_{t=1}^T p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right) &\quad (5) \\\\ p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right) =\mathcal{N}\left(\mathbf{x}_{t-1} ; \mu_\theta\left(\mathbf{x}_t, t\right), \Sigma_\theta\left(\mathbf{x}_t, t\right)\right)&\quad (6) \end{aligned} $$

这里我们使用 $p_θ(x_t)$来表示潜在变量 $x_t$ 在逆过程中的分布,或者为简单起见使用 $p(x_t)$。通过优化负对数似然的变分上限来执行训练:

$$ \mathbb{E}\left[-\log p_\theta\left(\mathbf{x}_0\right)\right] \leq \mathbb{E}_q\left[-\log \frac{p_\theta\left(\mathbf{x}_{0: T}\right)}{q\left(\mathbf{x}_{1: T} \mid \mathbf{x}_0\right)}\right]=\mathbb{E}_q\left[-\log p\left(\mathbf{x}_T\right)-\sum_{t \geq 1} \log \frac{p_\theta\left(\mathbf{x}_{t-1} \mid \mathbf{x}_t\right)}{q\left(\mathbf{x}_t \mid \mathbf{x}_{t-1}\right)}\right]=-L_{\mathrm{VLB}} \quad(7) $$

对(7)右侧进行参数重整化:
$\mathbb{E}_{t \sim \mathcal{U}(0, T), \mathbf{x}_0 \sim q\left(\mathbf{x}_0\right), \boldsymbol{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})}\left[\lambda(t)\left\|\boldsymbol{\epsilon}-\boldsymbol{\epsilon}_\theta\left(\sqrt{\bar{\alpha}_t} \mathbf{x}_0+\sqrt{1-\bar{\alpha}_t} \boldsymbol{\epsilon}, t\right)\right\|^2\right]\quad(8)$

这里 $\epsilon_θ$ 是一个神经网络,它使用输入 $x_t$ 和 $t$来预测 $\epsilon$可以生成 $x_t$,类似于在由$t$索引的多个噪声尺度上的去噪分数匹配。$λ(t)$是一个正加权函数。目标函数可以通过 Monte-Carol 算法进行估计,并使用随机优化器进行训练。在生成过程中,我们首先从标准高斯先验中选择一个样本 $x_T$,然后使用反向链顺序绘制样本 $x_t$,直到我们得到一个新的数据 $x_0$。

从SDE角度看

另一个比较常见的角度是SDE。

扩散模型的扩散过程可以看作是基于分数的生成模型。在连续时间设置中,基于分数的生成模型构造一个随机微分方程 (SDE) 以将数据分布平滑地扰乱为已知的先验分布,并构造一个相应的逆时 SDE 以将先验分布转换回数据分布。形式上,前向扩散过程是以下 SDE 的解:

$$ d \mathbf{x}=\mathbf{f}(\mathbf{x}, t) d t+g(t) d \mathbf{w} \quad (9) $$

这里 $\mathbf w$是标准布朗运动。 $x_0$是原始数据样本,$x_T$是近似标准高斯分布的扰动数据。反向 SDE 的解具有与正向 SDE 相同的边际密度,但它在时间是倒退的 :

$$ d \mathbf{x}=\mathbf{f}(\mathbf{x}, t)-g(t)^2 \nabla_{\mathbf{x}} \log q_t(\mathbf{x}) d t+g(t) d \mathbf{w}\quad(10) $$

逆过程中时间从 $T$倒流到 0,$dt$是一个无穷小的负时间步长。因此,为了逆转扩散过程并生成数据,我们需要的唯一信息是每个时间步 $t$的得分函数:$∇_x \log q_t(x)$。这里我们使用 $q_t(x)$来表示潜变量 $x_t$在前向过程中的分布。
借用分数匹配技术,我们可以训练一个基于时间的分数模型 $s_θ(xt, t)$,通过优化去噪分数匹配目标来估计分数函数:

$$ \mathbb{E}_{t, \mathbf{x}_0, \mathbf{x}_t}\left[\lambda(t)\left\|\mathbf{s}_\theta\left(\mathbf{x}_t, t\right)-\nabla_{\mathbf{x}_t} \log q_t\left(\mathbf{x}_t \mid \mathbf{x}_0\right)\right\|^2\right] \quad(11) $$

证明 DDPM 中的生成过程是反向 SDE 的特殊离散化:

$$ d \mathbf{x}=-\frac{1}{2} \beta(t) \mathbf{x} d t+\sqrt{\beta(t)} d \mathbf{w} \quad (12) $$

其中 $β( \frac i N ) = N β_i$ ,和 (2)中的一样表示方法一样。


这里只是根据北大的综述理论部分进行介绍,相关内容的详细推导可以去看一下苏神的个人网站:

相关文章
|
7月前
|
机器学习/深度学习 存储 计算机视觉
北京大学提出 PTQ4ViT | 双均匀量化+Hessian引导度量,推进Transformer模型落地
北京大学提出 PTQ4ViT | 双均匀量化+Hessian引导度量,推进Transformer模型落地
162 1
|
2月前
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
561 0
|
4月前
|
编解码
Sora视频重建与创新路线问题之什么是因果3D卷积,如何实现
Sora视频重建与创新路线问题之什么是因果3D卷积,如何实现
|
5月前
|
机器学习/深度学习 安全 固态存储
【YOLOv8改进 - 注意力机制】LS-YOLO MSFE:新颖的多尺度特征提取模块 | 小目标/遥感
YOLO系列目标检测模型的新发展,LS-YOLO专为滑坡检测设计。它使用多尺度滑坡数据集(MSLD)和多尺度特征提取(MSFE)模块,结合ECA注意力,提升定位精度。通过改进的解耦头,利用膨胀卷积增强上下文信息。在滑坡检测任务中,LS-YOLO相对于YOLOv5s的AP提高了2.18%,达到97.06%。论文和代码已开源。
|
6月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进 | 注意力机制 | 用于增强小目标感受野的RFEM
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡
|
7月前
|
机器学习/深度学习 数据挖掘 测试技术
DETR即插即用 | RefineBox进一步细化DETR家族的检测框,无痛涨点
DETR即插即用 | RefineBox进一步细化DETR家族的检测框,无痛涨点
393 1
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
753 2
|
7月前
|
机器学习/深度学习 算法 数据可视化
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
208 0
|
机器学习/深度学习 监控 搜索推荐
深度粗排模型的GMV优化实践:基于全空间-子空间联合建模的蒸馏校准模型
随着业务的不断发展,粗排模型在整个系统链路中变得越来越重要,能够显著提升线上效果。本文是对粗排模型优化的阶段性总结。
1597 0
深度粗排模型的GMV优化实践:基于全空间-子空间联合建模的蒸馏校准模型
|
机器学习/深度学习 算法 数据可视化
DSN-DDI:双视图表征学习实现药物间相互作用预测性能突破(2)
DSN-DDI:双视图表征学习实现药物间相互作用预测性能突破
252 0
DSN-DDI:双视图表征学习实现药物间相互作用预测性能突破(2)

热门文章

最新文章