标准自编码器(AE)在降维和学习用于重建任务的压缩表示方面表现出色,但它们作为生成模型的用途明显受限。为了理解变分自编码器(VAE)等更精巧模型的能力,有必要弄清楚为何在目标是生成新的、合理的数据样本时,原始自编码器表现不足。回顾一下,一个标准自编码器包含一个编码器 $f$,它将输入 $x$ 映射到潜在编码 $z = f(x)$;以及一个解码器 $g$,它从此编码重建输入 $\hat{x} = g(z)$。训练目标通常是最小化重建损失,例如均方误差(MSE): $$ L(x, \hat{x}) = ||x - g(f(x))||^2 $$ 此过程有效地训练编码器在潜在空间 $Z$ 中捕获输入数据最显著的特征,并训练解码器从这些特征重建原始数据。然而,这种对重建的侧重导致了用于生成目的的几个固有不足。非结构化潜在空间一个主要限制是标准AE学习到的潜在空间 $Z$ 的结构或其缺失。编码器学会将训练实例 $x_i$ 映射到潜在空间中的特定点 $z_i = f(x_i)$。解码器相应地学会将这些特定的 $z_i$(以及非常接近它们的点)映射回逼真的重建 $\hat{x}_i$。问题在于当我们考虑 $Z$ 中那些不对应任何训练数据编码的点时。流形中的“空洞”:学习到的表示 $z_i$ 在高维潜在空间中常形成一个流形(一个低维曲面)。然而,标准AE训练中没有机制确保这个流形是连续的或密集填充的。如果从这个流形中的“间隙”或“空洞”中采样一个潜在编码 $z_{\text{sample}}$,解码器 $g(z_{\text{sample}})$ 可能会产生无意义、模糊或与训练数据完全不同的输出。解码器根本没有训练过如何解释这样的点。流形外行为:类似地,如果采样一个远离训练数据编码所在区域的 $z_{\text{sample}}$,解码器的输出通常是不可预测且质量不佳的。这种缺乏规则结构使得仅仅向解码器输入任意潜在编码,并将其用作可靠的生成器变得困难。digraph G { rankdir=TB; splines=true; overlap=false; node [style="filled", fontname="Arial", fontsize=10]; edge [fontname="Arial", fontsize=9]; subgraph cluster_latent_space { label="潜在空间 Z"; bgcolor="#e9ecef"; node [shape=circle, fixedsize=true, width=0.7]; z_data1 [label="z_data1", fillcolor="#74c0fc"]; z_data2 [label="z_data2", fillcolor="#74c0fc"]; z_interp_ok [label="z_interp_ok", fillcolor="#a9e34b", shape=diamond]; z_hole [label="z_hole", fillcolor="#ff8787", shape=diamond]; z_far [label="z_far", fillcolor="#f03e3e", shape=diamond]; label_manifold_hint [shape=plaintext, label="训练数据编码\n所在区域", fontcolor="#495057"]; } subgraph cluster_output_space { label="解码输出 g(Z)"; bgcolor="#dee2e6"; node [shape=box, width=1.8, height=0.6]; out_data1 [label="g(z_data1)\n逼真输出", fillcolor="#69db7c"]; out_data2 [label="g(z_data2)\n逼真输出", fillcolor="#69db7c"]; out_interp_ok [label="g(z_interp_ok)\n合理过渡", fillcolor="#a9e34b"]; out_hole [label="g(z_hole)\n不逼真/模糊", fillcolor="#fa5252"]; out_far [label="g(z_far)\n无意义", fillcolor="#f03e3e"]; } z_data1 -> out_data1 [label=" 解码"]; z_data2 -> out_data2 [label=" 解码"]; z_interp_ok -> out_interp_ok [label=" 解码"]; z_hole -> out_hole [label=" 解码"]; z_far -> out_far [label=" 解码"]; // 虚线表示潜在空间中的关系,用于说明 z_data1 -> z_interp_ok [style=dashed, arrowhead=none, constraint=false, color="#868e96"]; z_data2 -> z_interp_ok [style=dashed, arrowhead=none, constraint=false, color="#868e96"]; }标准自编码器将输入映射到潜在空间。虽然解码从训练数据中学到的点($z_{\text{data1}}$,$z_{\text{data2}}$)或它们之间合理的插值($z_{\text{interp_ok}}$)会产生逼真的输出,但从流形中的“空洞”($z_{\text{hole}}$)或远离它的区域($z_{\text{far}}$)采样通常会导致生成质量差或无意义。潜在空间缺乏可靠生成采样所需的规则结构。没有显式先验分布 $p(z)$A个基本方面是概率生成模型从潜在变量的先验分布 $p(z)$ 中采样的能力,然后使用生成网络(解码器)将这些样本转换到数据空间。标准AE不显式定义或学习这样的先验。如何采样?:如果想生成新数据,我们应该从什么分布中抽取 $z$ 向量?训练集 $x_i$ 的潜在编码的经验分布 ${f(x_i)}$ 可能复杂且高维,本身不是一个方便直接采样的分布。任意选择:可能会尝试将一个简单的分布(例如,多元高斯分布)拟合到观测到的 $f(x_i)$,但这个拟合的分布可能与解码器能映射到逼真输出的 $Z$ 区域不匹配,特别是如果真实数据流形形状复杂。缺乏概率依据:如果没有模型被鼓励遵守的明确定义的 $p(z)$,生成过程缺乏坚实的概率依据。插值质量差虽然可以通过取 $t \in [0,1]$ 的凸组合 $z_{\text{interp}} = (1-t)z_a + t z_b$ 来在两个数据点 $z_a = f(x_a)$ 和 $z_b = f(x_b)$ 的潜在编码之间进行插值,但解码插值 $g(z_{\text{interp}})$ 的质量通常不令人满意。穿过不良区域的路径:潜在空间中 $z_a$ 和 $z_b$ 之间的线性路径可能会穿过前面提到的“空洞”或稀疏填充的区域。因此,解码的中间样本可能表现为不自然或突然的过渡,而不是从 $x_a$ 到 $x_b$ 的平滑、有意义的变化。侧重重建,而非平滑性:AE的目标函数只惩罚单个训练样本的差重建。它不显式鼓励潜在空间结构化,使得插值在语义上有意义。生成新颖、逼真样本的难度生成模型的最终考验是其生成样本的能力,这些样本不仅新颖(即,不是训练数据的简单复制或微小变体),而且逼真多样。标准AE通常未能通过此考验。解码器特异性:解码器高度专注于从训练期间学习到的特定流形重建输入。当接收到从简单、宽泛分布(如标准高斯 $N(0, I)$)中采样的 $z$ 时,它通常产生模糊、超出分布范围或低保真度的输出。这样的先验所覆盖的区域可能与学习到的潜在流形的高密度区域不匹配。模式崩溃(隐式):虽然不是GAN意义上的“模式崩溃”,但有效的生成能力通常仅限于非常接近训练数据编码的区域。模型难以将其生成能力推广到潜在空间更大的区域。本质上,标准自编码器是针对压缩和重建进行优化的。它们的潜在空间是这种优化的副产品,并非本质上经过正则化或结构化以支持新样本的生成。这些局限性突出了对模型的需要,这些模型明确应对学习行为良好的潜在空间以及植根于概率论的生成过程的挑战。这为理解变分自编码器背后的动机铺垫,变分自编码器结合概率原理来克服这些不足,并为学习生成模型提供更规范的框架。