探讨扩散模型:全面解析生成式人工智能的原理与应用

扩散模型已成为生成式 AI 中的一种强大方法,可在图像、音频和视频生成方面产生最先进的结果。在这篇深入的技术文章中,我们将探讨扩散模型的工作原理、它们的关键创新以及它们如此成功的原因。我们将介绍这项令人兴奋的新技术的数学基础、训练过程、采样算法和前沿应用。

扩散模型简介

扩散模型是一类生成模型,它学习通过反转扩散过程来逐渐对数据进行降噪。核心思想是从纯噪声开始,然后迭代地将其细化为来自目标分布的高质量样本。

这种方法受到非平衡热力学的启发,具体来说,就是反转扩散以恢复结构的过程。在机器学习的背景下,我们可以将其视为学习扭转逐渐向数据中添加噪声的趋势。

扩散模型的一些主要优点包括:

  • 最先进的图像质量,在许多情况下超过 GAN

  • 稳定的训练,无对抗性动态

  • 高度可并行化

  • 灵活的架构 – 可以使用任何将输入映射到相同维度的输出的模型

  • 强大的理论基础

让我们更深入地了解扩散模型的工作原理。

来源:Song et al.

来源:Song et al.

随机微分方程控制扩散模型中的正向和反向过程。正向 SDE 向数据中添加噪声,逐渐将其转换为噪声分布。反向 SDE 在学习的评分函数的引导下,逐步去除噪声,从而从随机噪声中生成逼真的图像。这种方法是在连续状态空间中实现高质量生成性能的关键

正向扩散过程

前向扩散过程从从真实数据分布中采样的数据点 x₀ 开始,然后在 T 时间步长上逐渐增加高斯噪声,以产生越来越嘈杂的 x₁、x₂、...、xT。

在每个时间步 t 处,我们根据以下公式添加少量噪声:

x_t = √(1 - β_t) * x_{t-1} + √(β_t) * ε

哪里:

  • β_t 是一个方差调度表,用于控制在每个步骤中添加的噪声量

  • ε 是随机高斯噪声

这个过程一直持续到 xT 几乎是纯高斯噪声。

在数学上,我们可以将其描述为马尔可夫链:

q(x_t | x_{t-1}) = N(x_t; √(1 - β_t) * x_{t-1}, β_t * I)

其中 N 表示高斯分布。

β_t 计划通常选择较小以用于早期时间步长,并随着时间的推移而增加。常见的选择包括线性、余弦或 sigmoid 计划。

逆向扩散过程

扩散模型的目标是学习此过程的相反过程 - 从纯噪声 xT 开始,然后逐步对其进行去噪以恢复干净的样品 x₀。

我们将这个反向过程建模为:

p_θ(x_{t-1} | x_t) = N(x_{t-1}; μ_θ(x_t, t), σ_θ^2(x_t, t))

其中 μ_θ 和 σ_θ^2 是由 θ 参数化的学习函数(通常是神经网络)。

关键的创新在于,我们不需要显式地对完全逆向分布进行建模。相反,我们可以根据我们知道的 forward 过程来参数化它。

具体来说,我们可以证明最佳逆过程均值 μ* 为:

μ* = 1/√(1 - β_t) * (x_t - β_t/√(1 - α_t) * ε_θ(x_t, t))

哪里:

  • α_t = 1 – β_t

  • ε_θ 是一个学习到的噪声预测网络

这给了我们一个简单的目标 – 训练一个神经网络 ε_θ 来预测每一步添加的噪声。

培训目标

扩散模型的训练目标可以从变分推理中得出。经过一些简化,我们得出一个简单的 L2 损失:

L = E_t,x₀,ε [ ||ε - ε_θ(x_t, t)||² ]

哪里:

  • t 从 1 到 T 均匀采样

  • X₀ 从训练数据中采样

  • ε 是采样的高斯噪声

  • x_t 是通过根据前向过程向 x₀ 添加噪声来构建的

换句话说,我们正在训练模型来预测在每个时间步长添加的噪声。

模型架构

来源:Ronneberger 等人。

来源:Ronneberger 等人。

U-Net 架构是扩散模型中去噪步骤的核心。它具有编码器-解码器结构,具有跳过连接,有助于在重建过程中保留细粒度细节。编码器在捕获高级特征时逐步对输入图像进行下采样,解码器对编码特征进行上采样以重建图像。此体系结构在需要精确定位的任务(如图像分割)中特别有效。

噪声预测网络可以使用任何将输入映射到相同维度的输出的架构。U-Net 风格的架构是一种流行的选择,尤其是对于图像生成任务。ε_θ

典型的体系结构可能如下所示:

1

发表评论