跳转至

自编码器 (AE) 与变分自编码器 (VAE)

自编码器的基本结构是什么?编码器和解码器的作用分别是什么?

image.png

自编码器是一种无监督神经网络,目标是让输出尽可能重构输入。其基本结构由两部分串联而成:

image.png

整体架构可以表示为:

image.png

训练损失通常为重构误差,例如均方误差(MSE)或二元交叉熵:

image.png

编码器的作用:学习数据的紧凑、有意义的低维表示,提取最重要的特征,起到降维和特征学习的作用。

解码器的作用:根据编码还原出尽可能接近原始输入的数据,证明潜在表示包含了足够的信息。

自编码器本身即可用于降维、去噪、预训练等任务。


自编码器为何能用于降维?与 PCA 相比有什么异同?

自编码器降维原理

编码器将高维数据压缩到低维瓶颈层(如2维或3维)。由于网络必须通过低维表示重建原始数据,该表示被迫捕获数据中最关键的变化因素,丢弃冗余和噪声。在低维空间中,相似的样本会被映射到相近的位置,从而实现非线性降维。

与 PCA 的异同

  • 相同点:
  • 都是降维技术,将数据投影到低维空间。
  • 都可以通过最小化重构误差来优化(PCA 最小化投影后的重构误差,等价于最大化保留方差)。
  • 均可用于数据压缩、去噪和可视化。

  • 不同点:

image.png

  • 有监督 vs 无监督的细微差异:虽然两者都是无监督,PCA 有解析解(特征分解),自编码器需通过梯度下降迭代训练。

  • 正交性:PCA 的主成分相互正交;自编码器潜在维度不一定正交。

  • 可逆性:PCA 重构矩阵是编码矩阵的转置(正交变换),自编码器的编码器和解码器参数独立,无此约束。

  • 全局最优:PCA 得到全局最优的线性投影(在均方误差意义下);自编码器可能陷入局部极小。

如果自编码器使用线性激活且瓶颈层无偏置,训练收敛后能复现 PCA 的主子空间,但不等同于 PCA 主成分。在实践中,深度自编码器能够捕捉 PCA 无法表征的高度非线性结构。


降噪自编码器(Denoising AE)是如何工作的?它学到了什么?

工作方式

image.png

训练时,编码器接收含噪输入,解码器输出干净数据。推理时可直接用干净输入,模型已学到稳健表示。

学到了什么

  • 鲁棒特征:由于必须忽略噪声干扰,编码器被迫学习数据中真正稳定的模式和结构,而不是简单地记忆输入。这使学到的表示对微小扰动不敏感。

  • 数据分布的流形结构:去噪过程相当于沿着数据流形向高概率区域移动,模型隐含地捕捉了数据生成分布。Vincent et al. 证明,去噪自编码器训练的准则与得分匹配(score matching)密切相关,可从噪声中估计数据分布的梯度。

  • 更强的泛化能力:作为正则化手段,降噪自编码器能防止过拟合,尤其适合作为深度网络的预训练初始化,因为它迫使隐层学习有意义的统计规律。

因此,降噪自编码器不仅学会了压缩,还学会了“修复”数据。


栈式自编码器的训练方式通常是怎样的?

栈式自编码器(Stacked Autoencoder)由多个自编码器逐层堆叠而成,形成深层结构。其训练过程常采用逐层贪婪预训练 + 整体微调。

步骤

image.png

优点

  • 解决了深层网络难以从随机初始化训练的问题(早于 Batch Normalization 和残差网络的时代)。

  • 每一层都学习数据的不同层次的特征,例如图像中边缘→部件→对象。

  • 可方便地用于有监督任务的预训练:堆叠编码器后添加分类器,再用标签微调。

这种训练方式在2000年代后期推动了深度学习的复兴,后来逐渐被更好的初始化和归一化技术取代,但思路仍有价值。


变分自编码器(VAE)与普通自编码器的核心区别是什么?

核心区别:

image.png

进一步区别

  • 目标函数: 普通 AE 仅最小化重构误差。 VAE 最大化证据下界(ELBO),由重构误差 + KL 散度(潜在分布与先验的 KL 散度)组成。KL 项正则化潜在空间,使其趋向标准正态分布。

  • 生成能力: 普通 AE 没有明确的生成机制,不能随意采样生成新数据;VAE 学习到了连续、平滑的潜在空间,可从先验分布直接采样 zz,通过解码器生成新样本。

  • 潜在空间连续性: VAE 的概率性质迫使相近的输入在潜在空间中有重叠的分布,使得空间连续(插值平滑)。普通 AE 的潜在空间可能不连续,存在空洞。

总之,VAE 是生成模型,而 AE 是确定性特征学习模型。


VAE 的损失函数由哪两部分组成?分别有什么作用?

VAE 的损失函数为负的 ELBO(Evidence Lower Bound),即最大化 ELBO 等价于最小化以下损失:

image.png

  1. 重构损失(期望负对数似然)

image.png

image.png

两者通过优化相权衡:重构项要求 z 信息丰富,KL 项强制 z 分布规整。训练的目标是最小化这个组合损失。


推导 VAE 的 ELBO(Evidence Lower BOund),并解释每项的含义。

image.png

最终 VAE 的损失函数取负 ELBO 进行最小化。ELBO 是对数边际似然的下界,通过优化 ELBO,我们间接最大化了数据似然,同时学习到有意义的生成模型。


什么是重参数化技巧?为什么 VAE 需要它?写出其公式。

重参数化技巧(Reparameterization Trick)

image.png


VAE 的潜在空间为何是连续的?如何从潜在空间采样生成新样本?

连续性原因

VAE 的编码器输出分布参数(均值和方差),而非单一向量。由于 KL 散度正则化迫使所有数据的后验分布接近同一先验(如标准正态),不同的输入会在潜在空间中产生重叠的高斯分布。相邻的输入具有相似的分布,因此它们的潜在编码区域相互覆盖。从而潜在空间呈现出平滑、连续的流形:在潜在空间中两点之间插值,解码器会输出平滑过渡的样本。

生成新样本 直接从先验分布 p(z) 中采样(如 z∼N(0,I)),然后将采样的 zz 输入解码器 pθ(x∣z),即可生成新数据。由于训练时 KL 项迫使编码映射与先验对齐,随机采样出的点往往对应有意义的输出。这是 VAE 作为生成模型的根本用法。


KL 散度在 VAE 中起什么作用?如果去掉 KL 散度会怎样?

KL 散度的作用

  • 正则化潜在空间:使编码器产生的后验分布 qϕ(z∣x) 接近先验 N(0,I),防止过拟合,促进潜在空间规整。

  • 连续性与平滑性:保证不同输入在潜在空间的分布有重叠,插值有意义。

  • 生成能力:训练后,采样自先验的 zz 才能被解码器正确解释。没有 KL,解码器只熟悉训练数据的编码点,随机采样会输出乱码。

  • 信息瓶颈:KL 项限制了 z 中可存储的关于 x 的信息量,鼓励学习解耦表示。

如果去掉 KL 散度

  • 损失只剩重构项,模型退化为普通的概率自编码器,编码器会把每个 x 编码成一个确定性的 z(方差极小),不同样本的编码在空间中可能任意分散,毫无结构。

  • 潜在空间不再连续,插值无意义,也无法从先验采样生成有效样本。实际上变成了一个标准自编码器,不具备生成能力。

  • 还可能出现“后验崩塌”现象,但一般崩塌指的是 KL 项被忽略,这里正好相反。去掉 KL 则潜在空间无约束,难以实现生成。


VAE 生成的图像通常比较模糊,原因是什么?如何改进?

模糊原因

  • 高斯似然假设:VAE 通常假设 pθ(x∣z) 为各向同性的高斯分布,此时最大化对数似然等价于最小化 MSE。MSE 损失倾向于预测“平均”结果,因为在对不确定的细节进行平均时,均方误差最小,导致高频细节丢失,图像模糊。

  • 潜在空间的过分平滑:KL 项强制潜在空间为标准正态,限制了模型编码细粒度细节的能力。模型可能忽视次要的变化因素,仅捕获主要的全局结构。

  • 后验崩塌:强大解码器可能忽略 z 中的部分信息,只依赖自身生成模糊的平均图;但主要问题仍是似然性质。

改进方法

  • 更强大的解码器:使用 PixelCNN、自回归解码器,避免独立像素假设。

  • 对抗损失:结合 GAN 的判别器(VAE-GAN),用对抗损失替换或补充像素级损失,能够产生更清晰的图像。

  • 更好的先验:使用更复杂的先验(如 VampPrior、可学习先验),而非固定标准正态。

  • 感知损失:在特征空间计算重构误差,保留纹理和边缘。

  • VQ-VAE:使用离散潜在表示和高性能解码器(如 PixelCNN 先验),生成质量大幅提升。

  • 调整 KL 权重:采用 β-VAE 或退火策略,增加重构项权重或逐步增加 KL 项影响。


条件 VAE(CVAE)是如何引入条件信息的?

CVAE 在编码器和解码器中同时接受条件变量 c。输入不仅包括 x,还包括 c。例如,在 MNIST 数字生成中,c 是类别标签。模型修改为:

  • 编码器:qϕ(z∣x,c),输入是拼接了 xx 和 cc(或融合表示)。

  • 解码器:pθ(x∣z,c),输入是拼接了 zz 和 cc

  • 先验:通常仍为 p(z)(独立于 c),但也可学习条件先验 p(zc)。

损失函数(ELBO)变为:

image.png

条件信息指导生成过程。生成时,给定所需条件 c,从先验采样 z,再通过解码器生成 x^。这允许控制输出属性(如生成特定数字、特定风格的图像)。CVAE 广泛应用于图像生成、对话生成等需可控生成的领域。


什么是 β-VAE?增大 β 会对潜在表示和生成质量有什么影响?

β-VAE 是对标准 VAE 目标的简单修改,在 KL 散度项前乘以一个超参数 β

image.png

β>1 时,对潜在空间施加更强的约束。

增大 β 的影响:

  • 潜在表示:更强的正则化迫使潜在编码携带更少的信息,各个维度趋向独立、因子分解,更容易解耦出数据中的独立变化因素(解耦表示)。在许多基准上,β-VAE 能发现更可解释的特征。

  • 生成质量:由于限制信息瓶颈,重构能力下降,生成图像可能更加模糊或丢失细节。需要在解耦程度和重构质量之间权衡。通常 β 越大,重构越差,但潜在变量更具解释性。

  • 训练稳定性:适度的 β 可避免后验崩塌;若 β 过大,编码器会几乎忽略输入,解码器生成的是平均数据,信息瓶颈过紧。

实际应用中,常使用退火 β 策略:训练初期 β 较小,注重重构,然后逐步增大 β 以增强解耦。


VQ-VAE 与 VAE 有何不同?它如何实现离散潜在编码?

核心不同

  • VAE 使用连续潜在变量,且潜在分布是参数化的高斯分布。

  • VQ-VAE(Vector Quantized VAE)使用离散潜在变量。编码器输出连续向量,但通过与一个可学习的离散码本(Codebook)进行比较,将每个位置映射到最近的码本向量(离散索引)。解码器接收离散码本向量(或对应嵌入)进行重构。

实现离散编码

image.png

由于潜在空间是离散的,VQ-VAE 可以配合强大的自回归先验(如 PixelCNN)在离散潜在序列上建模,从而生成高质量图像、音频等,避免了连续 VAE 的模糊问题。


VQ-VAE 中的码本(Codebook)和承诺损失(Commitment Loss)起什么作用?

码本(Codebook)

image.png

承诺损失(Commitment Loss)

训练时,若仅用重构损失,编码器输出的分布可能不与码本对齐。VQ-VAE 引入了特殊的损失项:

image.png

其中 sg 表示停止梯度。

  • 第一项是码本损失:更新码本向量,使其靠近编码器输出。

  • 第二项是承诺损失:鼓励编码器输出靠近码本向量,防止输出在空间中任意漂移。β 是权重(通常 0.25)。 通过这种设计,编码器和码本相互靠近,实现稳定的离散量化。


如何评估 VAE 生成样本的质量和多样性?

评估生成模型主要从保真度(质量)和多样性(覆盖)两方面:

  1. 重构误差

测试集上的负对数似然(NLL)或重构损失。直接衡量模型对数据分布的拟合程度。NLL 越低,模型越精确。但对于 VAE 模糊问题,NLL 可能较好但视觉质量差。

  1. 样本质量指标

  2. FID(Fréchet Inception Distance):将真实样本和生成样本映射到 Inception 特征空间,计算其均值与协方差的 Fréchet 距离。值越低表示生成图像质量和多样性越好,是目前最常用的指标。

  3. IS(Inception Score):评估单张生成图像的清晰度和类别多样性。高 IS 表示生成图像类别明确且多样。但存在缺陷,不适合非 ImageNet 数据。

  4. 多样性

  5. 生成样本之间的多样性:通过计算生成样本的成对距离或聚类分析。

  6. 模式崩溃检测:训练多个类别上的分类器,检查生成样本的类别分布。

  7. 改进的精度和召回率:Precision(生成样本的真实度)和 Recall(真实样本被覆盖的程度)。

  8. 其他

  9. 定性评价:人工观察生成样本,检查模糊、伪影、多样性。

  10. 插值平滑性:潜在空间插值查看过渡是否自然。

组合使用 FID 和 NLL,并结合人工判断,能较好评估 VAE 的生成性能。


VAE 在 NLP 中应用较少,原因是什么?有什么变体可用于文本生成?

应用较少的原因

  • 离散序列的挑战:自然语言是离散符号序列,而标准 VAE 假设连续高斯似然,适合连续数据。文本重构需使用分类分布和 teacher forcing,这导致“后验崩塌”:强大的解码器(RNN/LSTM)往往学会忽略潜在变量 zz,仅依赖自身的自回归能力生成,从而使 KL 项趋近于 0,z 与输入无关,退化为普通语言模型。

  • 重参数化不可用:对离散分布(如多项式分布)的重参数化技巧不直接适用,需使用 Gumbel-Softmax 等近似,但训练更困难。

  • 序列长度可变:编码句子到一个固定维度向量容易丢失信息,且 RNN 解码器的解码过程极易崩塌。

用于文本生成的变体

  • VAE + RNN 配合 KL 退火:训练时逐步增加 KL 权重,并加入词袋损失(Bag-of-Words Loss)等辅助目标,迫使编码保留全局语义。

  • 离散 VAE / VQ-VAE for Text:使用离散潜在变量,避免后验崩塌,并可配合自回归先验。

  • 使用强大的先验与对抗训练,例如引入对抗损失提高生成质量。

  • Transformer-based VAE:用预训练 Transformer 优化,结合适当的目标以稳定训练。

  • OPTIMUS 等结合 BERT 和 GPT 的大型 VAE 在文本生成和风格迁移上取得了进展。

尽管 NLP 中 VAE 不如 GAN 或自回归模型普遍,但通过精心设计,仍可以在文本生成、风格控制和表示学习中有用。


比较 AE、VAE、GAN 在生成模型范式上的根本区别。

自编码器 (AE)

  • 范式:确定性编码-解码。学习恒等映射。

  • 目标:最小化重构误差。

  • 潜在空间:无概率结构,潜在向量固定。

  • 生成方式:无法直接生成,通常不视为生成模型。

  • 输出质量:重构可较好,但采样通常无意义。

  • 优点:训练稳定,适合降维和特征提取。

  • 缺点:缺乏生成能力。

变分自编码器 (VAE)

  • 范式:概率生成模型,最大化数据似然下界(ELBO)。

  • 目标:重构损失 + KL 正则化。

  • 潜在空间:连续概率分布,平滑且可插值。

  • 生成方式:从先验分布采样潜在变量,经解码器生成。

  • 输出质量:提供明确的对数似然评估,但样本往往偏模糊(因高斯假设)。

  • 优点:稳定的训练,具有编码器,可推断潜在表示。

  • 缺点:生成质量通常不如 GAN。

生成对抗网络 (GAN)

  • 范式:博弈论框架,生成器与判别器对抗。

  • 目标:最小化生成分布与真实分布的 Jensen-Shannon 散度(或其他距离)。

  • 潜在空间:隐式,通常无编码器,不能直接推断给定数据的潜在变量。

  • 生成方式:从简单噪声分布采样,经生成器网络映射到数据空间。

  • 输出质量:可以生成高清晰度、逼真的样本(尤其图像)。

  • 优点:生成质量极佳,不依赖显式似然假设。

  • 缺点:训练不稳定(模式崩塌、收敛问题),缺乏对数据似然的直接评估,难以做推断。

根本区别总结

AE 追求有效编码,VAE 学习数据的显式概率分布并规范潜在空间以实现生成,GAN 通过对抗训练隐式匹配数据分布以生成逼真样本。VAE 注重概率建模和推断,GAN 注重样本质量。近年来,VQ-VAE、扩散模型等模糊了界限,但三者的设计哲学和目标依然清晰。