自编码器是一种无监督学习算法,训练样本集合是没有带类别标签的,即
自编码器的基础是神经网络算法:在一个神经网络里,当我们设定,即输入等于输出时,神经网络相当于模拟了一个输入到自身的映射。一个自编码器就是这样一种三层的神经网络:
从第一层到第二层相当于是一个编码(encode)的过程,从第二层到第三层相当于是一个解码(decode)的过程。
在一个自编码器中,由于只有无标签数据,将输入信息(Input)输入到一个编码器(encoder),就会得到一个编码(code),之后再通过一个解码器(decoder),就会得到一个输出信息(output)。如果这个“输出信息”和原始的“输入信号”是一样的,我们就有理由相信,中间得到的编码code是输入信息input的另外一个表示。通过调整编码器和解码器中的参数,来最小化重构误差,此时就可以得到编码code。从第二层(隐含层)到第三层(输出层)是正向运算,因此自编码器的第二层可以完整地描述输入信号,也就是可以从第二层中无损的将输入信号重构出来,即自编码。