自动编码器(Auto Encoder)是一个映射函数,通常使用神经网络来实现。它的目的是使输出跟输入尽量保持一致。
自动编码器的映射包含两个过程:编码和解码,其中编码过程将输入的高维度数据压缩为低维度数据,解码过程将低维度数据还原为高维度数据。
自动编码器的作用是能够进行降维操作,把原始数据通过编码过程变为低维数据,然后对低维数据进行分析,把分析的结果再通过解码过程变为高维数据,这样,就可以通过低维度的处理方法来达成高维度的处理效果了。
最简单的自动编码器如图所示。
其中,代价函数为输入跟输出的差异,通过对代价函数执行梯度下降操作就可以更新参数w和b,来训练神经网络。
自动编码器的一些变体
1、堆叠自动编码器 SAE(stack auto encoder)
神经网络采用多个隐藏层,可以表达源数据的深层特征
2、降噪自动编码器 DAE
对有所损失的数据通过编码和解码过程也能得到与原数据一致的结果
上图表示了 自编码器 跟 降噪自编码器 工作的流程。
3、稀疏自动编码器 SAE
为损失函数添加正则化参数,防止过拟合
参考资料