变分自编码器(VAE)是一种人工神经网络架构,由Diederik P. Kingma和Max Welling于2013年提出。它属于概率图模型和变分贝叶斯方法的家族。除了被视为自编码器神经网络架构外,变分自编码器还可以在变分贝叶斯方法的数学框架内进行研究,通过一个概率潜在空间(例如,作为多元高斯分布)将神经编码器网络与其解码器连接起来,该潜在空间对应于变分分布的参数。
编码器将大型复杂数据集中的每个点(如图像)映射到潜在空间中的一个分布,而不是映射到该空间中的单个点。解码器具有相反的功能,即从潜在空间映射到输入空间,同样根据分布进行映射(尽管在实践中,解码阶段很少添加噪声)。通过将点映射到分布而不是单个点,网络可以避免过拟合训练数据。两个网络通常使用重参数化技巧联合训练,尽管噪声模型的方差可以单独学习。虽然这种类型的模型最初是为无监督学习设计的,但其在半监督学习和监督学习中的有效性已得到证明。
架构与操作概述
变分自编码器是一种生成模型,分别具有先验分布和噪声分布。通常,此类模型使用期望最大化元算法(例如,概率PCA、稀疏编码)进行训练。这种方案优化数据似然的下界,该下界通常在计算上难以处理,并且这样做需要发现q分布,即变分后验。这些q分布通常针对每个单独的数据点,在单独的优化过程中进行参数化。然而,变分自编码器使用神经网络作为摊销方法,跨数据点联合优化。这样,相同的参数被多个数据点复用,可以带来巨大的内存节省。第一个神经网络将数据点本身作为输入,并输出变分分布的参数。由于它从已知的输入空间映射到低维潜在空间,因此被称为编码器。
解码器是该模型的第二个神经网络。它是一个从潜在空间映射到输入空间的函数,例如,作为噪声分布的均值。可以使用另一个神经网络来映射方差,但为简单起见可以省略。在这种情况下,方差可以通过梯度下降进行优化。
要优化此模型,需要知道两个项:“重建误差”和Kullback–Leibler散度(KL散度)。这两个项都源自概率模型的自由能表达式,因此根据噪声分布和数据的假设先验(此处称为p分布)而有所不同。例如,像IMAGENET这样的标准VAE任务通常被假设具有高斯分布的噪声;然而,像二值化MNIST这样的任务需要伯努利噪声。来自自由能表达式的KL散度最大化q分布与p分布重叠的概率质量,这不幸地可能导致模式寻求行为。“重建”项是自由能表达式的其余部分,需要采样近似来计算其期望值。
更近期的研究用各种统计距离取代了Kullback–Leibler散度(KL散度),参见下面的“统计距离VAE变体”。
公式化
从概率建模的角度来看,人们希望最大化数据\(x\)在其选定的参数化概率分布\(p_\theta(x)=p(x|\theta)\)下的似然。该分布通常选择为高斯分布\(N(x|\mu,\sigma)\),分别由\(\mu\)和\(\sigma\)参数化,并且作为指数族的一员,作为噪声分布易于处理。简单分布易于最大化,然而在潜在变量\(z\)上假设先验的分布会导致难以处理的积分。让我们通过对\(z\)进行边缘化来找到\(p_\theta(x)\)。
\(p_\theta(x) = \int_z p_\theta({x,z}) \, dz,\)
其中\(p_\theta({x,z})\)表示在\(p_\theta\)下可观测数据\(x\)及其潜在表示或编码\(z\)的联合分布。根据链式法则,该方程可以重写为
\(p_\theta(x) = \int_z p_\theta({x|z}) p_\theta(z) \, dz.\)
在实践中,对\(z\)的积分是难以处理的,因为潜在空间是高维的,并且真实后验\(p_\theta(z|x)\)是未知的。VAE引入编码器网络\(q_\phi(z|x)\)来近似真实后验,以及解码器网络\(p_\theta(x|z)\)来重建数据。训练目标是证据下界(ELBO),它是重建项和KL散度项的总和。重参数化技巧通过将\(z\)表示为\(z = \mu + \sigma \odot \epsilon\)(其中\(\epsilon\)从标准正态分布中采样)允许通过采样过程进行反向传播。
训练与优化
VAE通过最大化关于参数\(\theta\)和\(\phi\)的ELBO来训练。重建项鼓励解码器准确重建输入数据,而KL散度项将潜在空间正则化以接近先验(通常是标准正态分布)。这种平衡有助于防止过拟合,并通过从先验采样和解码来生成新的数据点。
重参数化技巧对于使用随机梯度下降进行高效训练至关重要。通过将随机性转移到噪声变量\(\epsilon\),梯度可以流过网络的确定性部分。噪声模型的方差可以单独学习,重建误差通常使用均方误差(对于连续数据)或二元交叉熵(对于二元数据)来计算。
应用与影响
VAE已成为Generative AI中的基础模型,支持图像生成、异常检测和表示学习等任务。它已扩展到各个领域,包括Deep learning和Machine learning,并影响了其他生成模型(如Large language model)的发展,尽管这些模型通常使用不同的架构。VAE也用于半监督和监督学习设置,展示了其在无监督学习之外的通用性。
Kingma和Welling的原始论文具有高度影响力,VAE框架已以多种方式被改编,例如使用不同的统计距离代替KL散度来解决模式崩溃问题。该模型学习平滑潜在空间的能力使其对于数据属性的插值和操作非常有用。
变体与扩展
已经提出了几种VAE变体来改进其性能。例如,beta-VAE在KL散度项上引入权重因子,以鼓励更解耦的表示。其他变体使用不同的先验,如高斯混合模型,或采用对抗训练来提高生成样本的真实感。重参数化技巧也已推广到其他分布,例如分类变量,使用Gumbel-softmax近似。
在Artificial intelligence的背景下,VAE经常与生成对抗网络(GAN)进行比较,后者是另一类生成模型。虽然GAN可以生成更清晰的图像,但VAE往往训练更稳定,并提供对不确定性估计有用的概率框架。截至2020年代初期,VAE仍然是一个活跃的研究领域,在Neural network设计及其他方面都有应用。