一、基本概念
1985年Rumelhart和Hinton通过使用输入数据作为引导解决“没有引导的反向传播”问题而提出的模型是自编码器的最初形式,结构如图所示,其中模型包含两部分:编码器(Encoder)和解码器(Decoder),给定输入 X X X,首先编码器将高维输入 X X X编码到低维空间 Z Z Z中,随后解码器将低维空间 Z Z Z进行解码还原输入 X X X,自编码器通过求解两个映射 f f f和 g g g使得重建误差达到最小,如下式所示:
f : X → Z g : Z → X ′ f:X\to Z \\ g:Z\to X' f:X→Zg:Z→X′
f , g = arg min f , g ( X , f ( g ( X ) ) ) L f,g=\mathop{\arg\min}_{f,g}(X,f(g(X)))_{L} f,g=argminf,g(X,f(g(X)))L
当输出 X ′ X' X′无限接近于输入 X X X,即 X ′ ≈ X X'\approx X X′≈X时,就得到了自编码器模型
![](https://i-blog.csdnimg.cn/blog_migrate/d76304f6cc6d3a88bfcfe55ad7ca6a66.png)
二、作用
自编码器实质上是一种神经网络,属于无监督学习算法。自编码器在编码和解码阶段具有高度对称的网络结构,输入为无标签数据集,主要通过梯度下降和反向传播算法学习输入到输出之间的映射,并根据输出与输入之间的误差不断调整模型参数,最终使重构误差最小
自编码器能够自动提取目标特征,有效地解决了传统手动方法提取特征不足的问题,同时还能有效地避免过拟合情况。在应用方面,自编码器被应用到了很多领域,例如图像分类、目标识别以及自然语言处理等。自编码器依然存在一些缺点,例如逐层训练使得模型训练时间较长,自编码器属于无监督学习,不能用物理意义来很好的描述所其学习到的特征,但是随着技术的发展和研究的深入,相信上述问题能够被很好地解决