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

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 扩散模型对于其他生成模型来讲,从数学角度来看更为优美。扩散模型也因为其背后的数学原理让很多人望而却步。今天就来梳理一下常见的两个理解扩散模型数学原理的角度。
本文共计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)中的一样表示方法一样。


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

相关文章
|
4月前
|
机器学习/深度学习 编解码 自然语言处理
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
266 0
YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)
|
2月前
|
计算机视觉 网络架构
【YOLOv10改进-特征融合】YOLO-MS MSBlock : 分层特征融合策略
YOLOv10专栏介绍了YOLO-MS,一个优化多尺度目标检测的高效框架。YOLO-MS通过MS-Block和异构Kernel选择提升性能,平衡了计算复杂度与准确性。它在不依赖预训练的情况下,在COCO上超越同类模型,如YOLO-v7和RTMDet。MS-Block包含不同大小卷积的分支,用于增强特征表示。代码示例展示了MSBlock类的定义,用于处理不同尺度特征。该模块可应用于其他YOLO模型以提升性能。更多详情和配置参见相关链接。
|
1月前
|
编解码
Sora视频重建与创新路线问题之什么是因果3D卷积,如何实现
Sora视频重建与创新路线问题之什么是因果3D卷积,如何实现
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
基于Mamba架构的,状态空间音频分类模型AUM
【8月更文挑战第7天】随着AI技术的发展,音频分类在诸多领域变得至关重要。传统方法如CNN面临计算成本高的问题。新兴的Mamba架构,基于状态空间模型(SSM),展示出优秀性能。受此启发,研究者开发了Audio Mamba (AUM)模型,首个完全基于SSM且不依赖自注意力机制的音频分类模型。AUM利用SSM的高效性捕捉音频时频特征,大幅降低计算复杂度,尤其适合大规模数据。实验显示,AUM在多个任务上的表现与先进自注意力模型相当甚至更好。尽管如此,AUM在复杂任务及泛化能力方面仍存在讨论空间。[论文](https://arxiv.org/abs/2406.03344)
38 1
|
4月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进-论文笔记】SCConv :即插即用的空间和通道重建卷积
该文介绍了一种针对卷积神经网络(CNN)的改进方法,名为SCConv,旨在减少计算冗余并提升特征学习效率。SCConv包含空间重构单元(SRU)和通道重构单元(CRU),分别处理空间和通道冗余。SRU利用分离-重构策略抑制空间冗余,而CRU通过分割-变换-融合策略减少通道冗余。SCConv可直接插入现有CNN架构中,实验结果显示,整合SCConv的模型能在降低复杂性和计算成本的同时保持或提高性能。此外,文章还展示了如何在YOLOv8中应用SCConv。
|
4月前
|
机器学习/深度学习 数据挖掘 测试技术
DETR即插即用 | RefineBox进一步细化DETR家族的检测框,无痛涨点
DETR即插即用 | RefineBox进一步细化DETR家族的检测框,无痛涨点
275 1
|
4月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
YOLOv8改进 | 细节涨点篇 | UNetv2提出的一种SDI多层次特征融合模块(分割高效涨点)
632 2
|
4月前
|
机器学习/深度学习 算法 数据可视化
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
129 0
|
机器学习/深度学习 算法 数据可视化
ICLR 2023 Oral | 漂移感知动态神经网络加持,时间域泛化新框架远超领域泛化&适应方法
ICLR 2023 Oral | 漂移感知动态神经网络加持,时间域泛化新框架远超领域泛化&适应方法
|
编解码 自动驾驶 机器人
重新思考空洞卷积 | RegSeg超越DeepLab、BiSeNetv2让语义分割实时+高精度(一)
重新思考空洞卷积 | RegSeg超越DeepLab、BiSeNetv2让语义分割实时+高精度(一)
136 0