探讨扩散模型:全面解析生成式人工智能的原理与应用
扩散模型已成为生成式 AI 中的一种强大方法,可在图像、音频和视频生成方面产生最先进的结果。在这篇深入的技术文章中,我们将探讨扩散模型的工作原理、它们的关键创新以及它们如此成功的原因。我们将介绍这项令人兴奋的新技术的数学基础、训练过程、采样算法和前沿应用。
扩散模型简介
扩散模型是一类生成模型,它学习通过反转扩散过程来逐渐对数据进行降噪。核心思想是从纯噪声开始,然后迭代地将其细化为来自目标分布的高质量样本。
这种方法受到非平衡热力学的启发,具体来说,就是反转扩散以恢复结构的过程。在机器学习的背景下,我们可以将其视为学习扭转逐渐向数据中添加噪声的趋势。
扩散模型的一些主要优点包括:
最先进的图像质量,在许多情况下超过 GAN
稳定的训练,无对抗性动态
高度可并行化
灵活的架构 – 可以使用任何将输入映射到相同维度的输出的模型
强大的理论基础
让我们更深入地了解扩散模型的工作原理。
来源: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 等人。
U-Net 架构是扩散模型中去噪步骤的核心。它具有编码器-解码器结构,具有跳过连接,有助于在重建过程中保留细粒度细节。编码器在捕获高级特征时逐步对输入图像进行下采样,解码器对编码特征进行上采样以重建图像。此体系结构在需要精确定位的任务(如图像分割)中特别有效。
噪声预测网络可以使用任何将输入映射到相同维度的输出的架构。U-Net 风格的架构是一种流行的选择,尤其是对于图像生成任务。ε_θ
典型的体系结构可能如下所示:
1 |
发表评论