自编码器

Autoencoder

自编码器是一种无监督的神经网络,其核心目标是学习输入数据的有效表示 (Representation),通常用于数据降维特征提取。它通过训练网络去重构其自身的输入来实现这一目标,即让输出尽可能地与输入相同。

核心思想:编码与解码

自编码器的思想非常精巧:它强迫数据通过一个“信息瓶颈”,然后再尝试将其恢复。如果网络能够成功地从这个瓶颈中重构出原始数据,那么这个瓶颈本身就包含了对原始数据最重要、最核心信息的压缩表示

结构组成

一个标准的自编码器由两个主要部分组成,形成一个对称的、沙漏状的结构:

  1. 编码器 (Encoder): 负责将高维的输入数据 x 逐步压缩,并将其映射到一个低维的潜在空间 (Latent Space),得到一个潜在表示编码 z。这个过程可以看作是数据的“压缩”。

  2. 瓶颈 (Bottleneck): 网络中间最窄的一层,即潜在表示 z 所在的位置。它是对输入数据最紧凑的表示。

  3. 解码器 (Decoder): 负责接收潜在表示 z,并尝试将其“解压”,重构出原始的输入数据,得到输出 x^

训练目标:最小化重构误差

自编码器是一种自监督学习,因为它不需要外部标签。它的“标签”就是输入数据本身。训练的目标是最小化重构误差 (Reconstruction Error),即输入 x 和解码器输出 x^ 之间的差异。

常用的损失函数包括:

L(x,x^)=xx^2

主要变体与应用

基础的自编码器可能会学习到一个“恒等函数”,即简单地复制输入到输出,而没有学到有用的特征。为了迫使网络学习到更有意义的表示,研究者们提出了多种变体:

应用领域