自编码器可以理解为一个试图去还原其原始输入的系统。自编码器模型如下图所示。
image.png
https://zhuanlan.zhihu.com/p/80377698

youtube 视频讲解

https://www.youtube.com/watch?v=3jmcHZq3A5s
image.png
最简单的自编码器是一个神经网络,它尝试做两件事情:1.将数据从高维度压缩到低维度 2.将压缩得到的低维度数据重建为高维度数据。然后比较原始输入和模型输出之间的差异,输入和输出的不同被称为重建损失,通过神经网络训练方法将误差最小化。
编码器:将原始数据从高维度压缩到一个低纬度的特征表示上(降维)。
为什么降维是可行的?通常真实数据往往只是数据所在空间的一个低维度子空间上。如下图是一个均匀分布的三维空间,其包含了三维数据的所有可能分布。对于该种分布,是无法通过低维子空间进行表示的。只可能通过(x,y,z)进行表示。需要三个维度进行表示。
image.png
真实的数据可能只是三维空间的一个子集,如下图的螺旋形。但是对于这个螺旋形而言,虽然其存在于三维的特征空间中,但是其实只需要一个维度的特征就可以进行表达。只需要一个角度即可。
image.png
image.png
总结一下:我们真实的数据不是随机的,而是具有一定的结构特性的,针对具有结构的数据,我们并不需要完整输入空间的每一个部分来表达我们的数据,编码器的工作就是利用这种特点将结构数据的完整表示映射为有意义的低维度数据。