自编码器是一种人工神经网络(NN),主要用于无监督学习任务,特别是降维和特征提取。它的基本目标是学习输入数据的压缩表示(编码),通常是通过训练网络来重建自己的输入。它由两个主要部分组成:一个是将输入数据映射到低维潜在空间的编码器,另一个是根据压缩表示重建原始数据的解码器。这一过程迫使自动编码器捕捉训练数据中最显著的特征。
自动编码器的工作原理
自动编码器的运行包括两个阶段:编码和解码。
- 编码器:这部分采用输入数据(如图像或矢量),并将其压缩为一种称为潜空间或瓶颈的低维表示。这种压缩迫使网络学习有意义的模式,摒弃噪音或冗余。编码器通常由几层组成,通常使用ReLU或Sigmoid 等激活函数。
- 瓶颈:这是自动编码器的中心层,是输入数据的压缩低维表示所在。它是捕捉基本信息的 "代码"。这一层的维度是一个关键的超参数。
- 解码器:解码器:这部分从瓶颈处获取压缩表示,并尝试尽可能精确地重建原始输入数据。它反映了编码器的结构,但却是反向的,将数据上采样回原来的尺寸。
训练包括向网络输入输入数据,并使用损失函数将输出(重建数据)与原始输入数据进行比较,如连续数据的平均平方误差 (MSE)或二进制数据的二进制交叉熵。使用反向传播和优化算法(如Adam或SGD)调整网络权重,使重建误差最小化。
自动编码器的类型
基本的自动编码器结构有几种变体,每种都是为特定任务而设计的:
- 去噪自动编码器:经过训练,可以重建被噪声破坏的输入的干净版本。这使得它们在图像去噪等任务中表现强劲。了解有关去噪自编码器的更多信息。
- 稀疏自动编码器:在瓶颈层上引入稀疏性惩罚(一种正则化),迫使网络学习每次只有少数节点处于活动状态的表征。
- 变异自动编码器(VAE):一种生成式人工智能模型,可学习潜在空间的概率映射,从而生成与训练数据类似的新数据样本。阅读 VAE 论文。
- 收缩式自动编码器:在损失函数中添加惩罚项,鼓励编码器学习对输入的微小变化具有鲁棒性的表示。
实际应用
自动编码器是用于各种机器学习(ML)应用的多功能工具:
- 异常检测:通过学习数据中的正常模式,自动编码器可以识别异常值或异常现象。如果某个特定数据点的重构误差很大,则表明输入数据与训练数据有很大差异,有可能表明存在异常情况,如金融领域的欺诈交易或制造业的故障设备。进一步了解异常检测。
- 图像压缩和去噪:自动编码器可以学习图像的紧凑表示,从而有效地进行压缩。去噪自动编码器专门用于去除图像中的噪点,这在医学图像分析(如增强核磁共振成像或 CT 扫描)或修复老照片中非常有价值。参见医学成像解决方案。
- 降维:与主成分分析(PCA)类似,自动编码器也能降低数据维度,但却能捕捉 PCA 无法捕捉的复杂非线性关系。这对于数据可视化和作为其他 ML 模型的预处理步骤非常有用。
- 特征学习:编码器部分可用作图像分类或物体检测等下游任务的特征提取器,通常能提供比原始数据更强大的特征。虽然像 Ultralytics YOLO等模型使用专门的骨架,而自动编码器的原理则为表征学习提供了参考。
自动编码器与相关概念
- PCA:虽然两者都能降低维度,但PCA只限于线性变换。而自动编码器作为一种神经网络,可以学习复杂的非线性映射,通常能为复杂的数据集提供更好的表征。
- 生成对抗网络 生成对抗网络(GAN)主要用于生成高度逼真的新数据。虽然 VAE(自动编码器的一种)也能生成数据,但它们的重点通常是学习结构良好的潜在空间,而 GAN 擅长输出保真度,有时会以潜在空间的可解释性为代价。
- CNN 和变换器:自动编码器定义了一种架构模式(编码器-解码器)。它们通常利用其他网络类型,如用于图像数据的卷积神经网络(CNN)或用于顺序数据的变换器,作为编码器和解码器的构建模块。