自编码器是一种[[神经网络]]类型,经过训练后能够通过一个狭窄的瓶颈层重现其自身输入。它由两部分组成:一个编码器,将输入压缩为紧凑的内部代码;以及一个解码器,从该代码重建原始输入。由于网络只能通过瓶颈传递少量信息,因此它被迫学习数据中哪些特征最为重要,从而产生一个比原始输入更小且通常更有意义的[[潜在空间]]表示。
历史与变体
自编码器可追溯至20世纪80年代的联结主义文献,但作为一种[[无监督学习]]形式,它在现代获得了新的相关性,因为它们不需要标签:输入本身即作为训练目标,这是现在所称的[[自监督学习]]的早期例子。2013年变分自编码器(VAE)的引入增添了概率性转折,将潜在空间约束为近似平滑、已知的分布,而非任意形状。这使得通过从该分布中抽取随机点并解码来生成新样本成为可能,将自编码器从压缩工具转变为生成工具。其他变体包括去噪自编码器,训练用于从损坏版本中恢复干净输入;以及稀疏自编码器,鼓励大多数潜在单元保持接近零,这一特性后来在[[可解释性]]研究中被重用,以隔离大型语言模型中的个体特征。
应用
除了直接生成外,自编码器广泛用于降维和异常检测,因为模型重建效果差的输入很可能相对于训练分布而言是异常的。在图像生成中,自编码器的编码器-解码器对是潜在[[扩散模型]](如Stable Diffusion)的关键组成部分:图像被压缩为一个小型潜在网格,扩散过程在该压缩空间中运行,解码器将结果扩展回全分辨率图像。这种分工是现代[[文本到图像]]系统能在消费级硬件上运行的主要原因。自编码器也出现在推荐系统中,帮助重建稀疏的用户-项目交互数据,以及在[[语音识别]]和音频处理流程中,作为在进一步处理前压缩波形的一种方式。
与其他架构的关系
自编码器与[[生成对抗网络]]相关但有所区别:GAN的生成器也将潜在向量映射到输出,但它通过对抗判别器进行训练,而非最小化重建误差,这往往产生更锐利但可控性较差的输出。基于Transformer的系统已在很大程度上取代了简单自编码器用于大规模[[自然语言处理]],尽管编码器-解码器模式本身,在Seq2seq模型中早已形式化,仍然是自编码器和Transformer (architecture)架构的概念祖先。用于BERT等模型的掩码预测预训练目标也可视为应用于文本的去噪自编码器任务。
局限性
标准自编码器仅优化重建,这并不能保证潜在空间是平滑、解耦的或对下游任务有用;变分及其他正则化变体部分解决了这一问题,但通常以重建锐度为代价换取更结构化的潜在空间。截至2020年代中期,自编码器主要作为更大生成流程中的组件存续,而非独立的建模方法。