变分自编码器(VAE)是一种人工神经网络架构,由Diederik P. Kingma和Max Welling于2013年提出。它属于概率图模型和变分贝叶斯方法的家族。VAE是生成模型,学习在压缩的潜在空间中表示数据,并从该空间生成新样本。与将输入映射到潜在空间中固定点的标准自编码器不同,VAE将输入映射到概率分布(通常是多元高斯分布),这有助于避免过拟合,并实现平滑插值和生成。
该架构由两个神经网络组成:编码器和解码器。编码器将每个输入数据点(例如图像)映射到潜在空间中变分分布的参数,例如均值和方差向量。解码器从潜在空间映射回输入空间,生成重建结果或新样本。两个网络使用重参数化技巧联合训练,该技巧允许通过随机采样进行反向传播。VAE最初设计用于无监督学习,但也被证明在半监督和监督学习任务中有效。
架构与操作概述
变分自编码器是一种生成模型,具有潜在变量的先验分布和数据的噪声分布。传统生成模型(如概率PCA或稀疏编码)使用期望最大化(EM)元算法训练。EM优化数据似然的下界,这通常计算上难以处理,并且需要在单独的优化过程中为每个数据点发现q分布(变分后验)。相比之下,VAE使用神经网络作为摊销方法,在所有数据点上联合优化。这意味着相同的网络参数被多个数据点重用,从而显著节省内存。
编码器网络接收输入数据点并输出变分分布的参数。由于它将已知输入空间映射到低维潜在空间,因此称为编码器。解码器是第二个神经网络;它将潜在空间映射到输入空间,通常输出噪声分布的均值。虽然可以使用另一个网络输出方差,但为简化通常省略,方差可以通过梯度下降优化。
为了优化模型,需要两个项:重建误差和Kullback–Leibler散度(KL散度)。这两个项都来自概率模型的自由能表达式,并且根据噪声分布和数据的假设先验(p分布)而有所不同。例如,像ImageNet这样的标准VAE任务通常假设高斯噪声,而像二值化MNIST这样的任务需要伯努利噪声。KL散度项最大化q分布与p分布重叠的概率质量,这可能导致模式寻求行为。重建项是自由能表达式的剩余部分,需要采样近似来计算其期望值。较新的方法用各种统计距离替换KL散度,如统计距离VAE变体部分所述。
公式化
从概率建模的角度来看,目标是最大化数据x在选定的参数化概率分布p_θ(x) = p(x|θ)下的似然。该分布通常选择为高斯分布N(x|μ, σ),由均值μ和方差σ参数化,作为指数族成员易于处理。简单分布易于最大化,但当对潜在变量z假设先验时,所得积分变得难以处理。为了找到p_θ(x),需要对z进行边缘化:
p_θ(x) = ∫ p_θ(x, z) dz,
其中p_θ(x, z)是p_θ下可观测数据x和潜在编码z的联合分布。使用链式法则,这可以重写为:
p_θ(x) = ∫ p_θ(x|z) p_θ(z) dz。
该积分通常难以处理,因为潜在空间是高维的,且似然p_θ(x|z)可能很复杂。变分推断用更简单的分布q_φ(z|x)(由编码器网络参数化)近似真实后验p_θ(z|x)。推导出证据下界(ELBO)以优化模型:
log p_θ(x) ≥ E_{q_φ(z|x)}[log p_θ(x|z)] - KL(q_φ(z|x) || p_θ(z))。
第一项是重建似然,第二项是近似后验与先验之间的KL散度。重参数化技巧允许通过将z表示为μ + σ * ε(其中ε从标准正态分布中抽取)从q_φ(z|x)采样,从而实现基于梯度的优化。
编码器和解码器网络
编码器网络(通常表示为q_φ(z|x))接收输入x并输出变分分布的参数,通常是高斯的均值μ和对数方差log σ²。该分布表示输入的潜在编码。解码器网络(表示为p_θ(x|z))接收潜在样本z并输出数据分布的参数,例如连续数据的高斯均值或伯努利数据的概率。
两个网络通常使用重参数化技巧一起训练。编码器和解码器通常实现为多层感知器(MLP)或卷积神经网络(CNN),具体取决于数据类型。对于图像数据,CNN很常见,如卷积VAE模型所示。网络架构的选择影响模型的容量和性能。
训练与重参数化技巧
训练VAE涉及最大化ELBO,即重建项和KL散度项之和。重建项鼓励解码器从潜在样本准确重建输入,而KL散度项鼓励近似后验接近先验(通常是标准正态分布N(0, I))。这种平衡防止过拟合,并确保平滑的潜在空间。
重参数化技巧对训练至关重要,因为它允许梯度通过随机采样过程流动。不是直接从q_φ(z|x)采样z(这是不可微的),而是编码器输出μ和σ,z计算为z = μ + σ * ε,其中ε ~ N(0, I)。这使得采样操作相对于参数可微,从而启用标准反向传播。
在训练期间,噪声模型的方差可以单独学习或固定。在某些实现中,解码器输出均值和方差,而在其他实现中,方差是超参数或单独优化。训练过程通常使用随机梯度下降(SGD)或Adam等变体,并带有学习率调度。
损失函数与KL散度
VAE的损失函数是负ELBO,由两项组成:重建损失和KL散度。重建损失衡量解码器从潜在样本重建输入的程度。对于具有高斯噪声的连续数据,这通常是输入和重建输出之间的均方误差(MSE)。对于二值数据,它是二元交叉熵。
KL散度项计算近似后验q_φ(z|x)与先验p(z)之间的散度。对于高斯分布,这有闭式表达式:
KL(q_φ(z|x) || p(z)) = -0.5 * (1 + log σ² - μ² - σ²),
假设先验为N(0, I)。该项惩罚潜在分布偏离先验,鼓励紧凑且连续的潜在空间。
KL散度可能导致模式寻求行为,其中模型专注于数据分布的少数模式。为了解决这个问题,提出了各种替代方案,例如使用不同的统计距离,如Wasserstein距离或最大均值差异(MMD)。
变体与扩展
自VAE引入以来,开发了许多变体以改进其性能并解决局限性。一些值得注意的变体包括:
- β-VAE:在KL散度项上引入权重因子β,以鼓励更解耦的表示。这通常用于可解释因素的无监督学习。
- 条件VAE(CVAE):在编码器和解码器上条件化额外信息(如类标签),实现受控生成。
- VQ-VAE:在潜在空间中使用向量量化,产生离散潜在编码,适用于图像生成和表示学习等任务。
- 统计距离VAE变体:用其他统计距离(如Wasserstein距离)替换KL散度,以提高训练稳定性和样本质量。
这些变体已应用于各种领域,包括图像生成、文本生成和异常检测。
应用与意义
变分自编码器在机器学习和人工智能中具有广泛的应用。它们用于生成建模,可以产生与训练数据相似的新数据样本,如图像、音频和文本。VAE还用于表示学习,其中潜在空间捕获数据的有意义特征,支持聚类和降维等任务。
在半监督学习中,VAE可以利用未标记数据学习有用的表示,提高有限标记数据任务上的性能。在监督学习中,VAE可用作特征提取器或用于数据增强。VAE也已应用于异常检测,其中数据点的重建误差或似然指示其是否正常或异常。
VAE的意义在于它们能够以无监督方式学习概率潜在表示,为生成建模提供原则性框架。它们影响了许多后续深度学习发展,包括更广泛的生成AI领域,并继续成为活跃的研究领域。
与其他生成模型的关系
VAE是几种著名生成模型家族之一,与生成对抗网络(GAN)和扩散模型并列。虽然GAN通过对抗训练过程专注于生成逼真样本,但VAE强调概率推断和平滑潜在空间。扩散模型最近获得普及,通过逆转噪声过程生成数据。每种方法都有其优缺点;VAE提供稳定训练和明确定义的潜在空间,但可能产生比GAN更模糊的样本。模型的选择取决于具体应用和需求。
在深度学习背景下,VAE通常用作更大架构的构建块,例如基于变分自编码器的Transformer或多模态模型中的组件。它们也与大型语言模型的发展相关,尽管这些通常依赖自回归或Transformer架构而非VAE。