自编码器 (AE) 与变分自编码器 (VAE)
自编码器的基本结构是什么?编码器和解码器的作用分别是什么?¶

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

整体架构可以表示为:

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

编码器的作用:学习数据的紧凑、有意义的低维表示,提取最重要的特征,起到降维和特征学习的作用。
解码器的作用:根据编码还原出尽可能接近原始输入的数据,证明潜在表示包含了足够的信息。
自编码器本身即可用于降维、去噪、预训练等任务。
自编码器为何能用于降维?与 PCA 相比有什么异同?¶
自编码器降维原理
编码器将高维数据压缩到低维瓶颈层(如2维或3维)。由于网络必须通过低维表示重建原始数据,该表示被迫捕获数据中最关键的变化因素,丢弃冗余和噪声。在低维空间中,相似的样本会被映射到相近的位置,从而实现非线性降维。
与 PCA 的异同
- 相同点:
- 都是降维技术,将数据投影到低维空间。
- 都可以通过最小化重构误差来优化(PCA 最小化投影后的重构误差,等价于最大化保留方差)。
-
均可用于数据压缩、去噪和可视化。
-
不同点:

-
有监督 vs 无监督的细微差异:虽然两者都是无监督,PCA 有解析解(特征分解),自编码器需通过梯度下降迭代训练。
-
正交性:PCA 的主成分相互正交;自编码器潜在维度不一定正交。
-
可逆性:PCA 重构矩阵是编码矩阵的转置(正交变换),自编码器的编码器和解码器参数独立,无此约束。
-
全局最优:PCA 得到全局最优的线性投影(在均方误差意义下);自编码器可能陷入局部极小。
如果自编码器使用线性激活且瓶颈层无偏置,训练收敛后能复现 PCA 的主子空间,但不等同于 PCA 主成分。在实践中,深度自编码器能够捕捉 PCA 无法表征的高度非线性结构。
降噪自编码器(Denoising AE)是如何工作的?它学到了什么?¶
工作方式

训练时,编码器接收含噪输入,解码器输出干净数据。推理时可直接用干净输入,模型已学到稳健表示。
学到了什么
-
鲁棒特征:由于必须忽略噪声干扰,编码器被迫学习数据中真正稳定的模式和结构,而不是简单地记忆输入。这使学到的表示对微小扰动不敏感。
-
数据分布的流形结构:去噪过程相当于沿着数据流形向高概率区域移动,模型隐含地捕捉了数据生成分布。Vincent et al. 证明,去噪自编码器训练的准则与得分匹配(score matching)密切相关,可从噪声中估计数据分布的梯度。
-
更强的泛化能力:作为正则化手段,降噪自编码器能防止过拟合,尤其适合作为深度网络的预训练初始化,因为它迫使隐层学习有意义的统计规律。
因此,降噪自编码器不仅学会了压缩,还学会了“修复”数据。
栈式自编码器的训练方式通常是怎样的?¶
栈式自编码器(Stacked Autoencoder)由多个自编码器逐层堆叠而成,形成深层结构。其训练过程常采用逐层贪婪预训练 + 整体微调。
步骤

优点
-
解决了深层网络难以从随机初始化训练的问题(早于 Batch Normalization 和残差网络的时代)。
-
每一层都学习数据的不同层次的特征,例如图像中边缘→部件→对象。
-
可方便地用于有监督任务的预训练:堆叠编码器后添加分类器,再用标签微调。
这种训练方式在2000年代后期推动了深度学习的复兴,后来逐渐被更好的初始化和归一化技术取代,但思路仍有价值。
变分自编码器(VAE)与普通自编码器的核心区别是什么?¶
核心区别:

进一步区别
-
目标函数: 普通 AE 仅最小化重构误差。 VAE 最大化证据下界(ELBO),由重构误差 + KL 散度(潜在分布与先验的 KL 散度)组成。KL 项正则化潜在空间,使其趋向标准正态分布。
-
生成能力: 普通 AE 没有明确的生成机制,不能随意采样生成新数据;VAE 学习到了连续、平滑的潜在空间,可从先验分布直接采样 zz,通过解码器生成新样本。
-
潜在空间连续性: VAE 的概率性质迫使相近的输入在潜在空间中有重叠的分布,使得空间连续(插值平滑)。普通 AE 的潜在空间可能不连续,存在空洞。
总之,VAE 是生成模型,而 AE 是确定性特征学习模型。
VAE 的损失函数由哪两部分组成?分别有什么作用?¶
VAE 的损失函数为负的 ELBO(Evidence Lower Bound),即最大化 ELBO 等价于最小化以下损失:

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


两者通过优化相权衡:重构项要求 z 信息丰富,KL 项强制 z 分布规整。训练的目标是最小化这个组合损失。
推导 VAE 的 ELBO(Evidence Lower BOund),并解释每项的含义。¶

最终 VAE 的损失函数取负 ELBO 进行最小化。ELBO 是对数边际似然的下界,通过优化 ELBO,我们间接最大化了数据似然,同时学习到有意义的生成模型。
什么是重参数化技巧?为什么 VAE 需要它?写出其公式。¶
重参数化技巧(Reparameterization Trick)

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(z∣c)。
损失函数(ELBO)变为:

条件信息指导生成过程。生成时,给定所需条件 c,从先验采样 z,再通过解码器生成 x^。这允许控制输出属性(如生成特定数字、特定风格的图像)。CVAE 广泛应用于图像生成、对话生成等需可控生成的领域。
什么是 β-VAE?增大 β 会对潜在表示和生成质量有什么影响?¶
β-VAE 是对标准 VAE 目标的简单修改,在 KL 散度项前乘以一个超参数 β:

β>1 时,对潜在空间施加更强的约束。
增大 β 的影响:
-
潜在表示:更强的正则化迫使潜在编码携带更少的信息,各个维度趋向独立、因子分解,更容易解耦出数据中的独立变化因素(解耦表示)。在许多基准上,β-VAE 能发现更可解释的特征。
-
生成质量:由于限制信息瓶颈,重构能力下降,生成图像可能更加模糊或丢失细节。需要在解耦程度和重构质量之间权衡。通常 β 越大,重构越差,但潜在变量更具解释性。
-
训练稳定性:适度的 β 可避免后验崩塌;若 β 过大,编码器会几乎忽略输入,解码器生成的是平均数据,信息瓶颈过紧。
实际应用中,常使用退火 β 策略:训练初期 β 较小,注重重构,然后逐步增大 β 以增强解耦。
VQ-VAE 与 VAE 有何不同?它如何实现离散潜在编码?¶
核心不同
-
VAE 使用连续潜在变量,且潜在分布是参数化的高斯分布。
-
VQ-VAE(Vector Quantized VAE)使用离散潜在变量。编码器输出连续向量,但通过与一个可学习的离散码本(Codebook)进行比较,将每个位置映射到最近的码本向量(离散索引)。解码器接收离散码本向量(或对应嵌入)进行重构。
实现离散编码

由于潜在空间是离散的,VQ-VAE 可以配合强大的自回归先验(如 PixelCNN)在离散潜在序列上建模,从而生成高质量图像、音频等,避免了连续 VAE 的模糊问题。
VQ-VAE 中的码本(Codebook)和承诺损失(Commitment Loss)起什么作用?¶
码本(Codebook)

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

其中 sg 表示停止梯度。
-
第一项是码本损失:更新码本向量,使其靠近编码器输出。
-
第二项是承诺损失:鼓励编码器输出靠近码本向量,防止输出在空间中任意漂移。β 是权重(通常 0.25)。 通过这种设计,编码器和码本相互靠近,实现稳定的离散量化。
如何评估 VAE 生成样本的质量和多样性?¶
评估生成模型主要从保真度(质量)和多样性(覆盖)两方面:
- 重构误差
测试集上的负对数似然(NLL)或重构损失。直接衡量模型对数据分布的拟合程度。NLL 越低,模型越精确。但对于 VAE 模糊问题,NLL 可能较好但视觉质量差。
-
样本质量指标
-
FID(Fréchet Inception Distance):将真实样本和生成样本映射到 Inception 特征空间,计算其均值与协方差的 Fréchet 距离。值越低表示生成图像质量和多样性越好,是目前最常用的指标。
-
IS(Inception Score):评估单张生成图像的清晰度和类别多样性。高 IS 表示生成图像类别明确且多样。但存在缺陷,不适合非 ImageNet 数据。
-
多样性
-
生成样本之间的多样性:通过计算生成样本的成对距离或聚类分析。
-
模式崩溃检测:训练多个类别上的分类器,检查生成样本的类别分布。
-
改进的精度和召回率:Precision(生成样本的真实度)和 Recall(真实样本被覆盖的程度)。
-
其他
-
定性评价:人工观察生成样本,检查模糊、伪影、多样性。
-
插值平滑性:潜在空间插值查看过渡是否自然。
组合使用 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、扩散模型等模糊了界限,但三者的设计哲学和目标依然清晰。