参阅知乎“科言君”:https://www.zhihu.com/question/41490383
个人理解:
1、稀疏自编码:
通常情况下,自编码的隐藏层神经元数量会少于输入神经元,因此,自编码网络能够学习主要特征,并依据主要特征重构输入,这种学习方式通常也是有效的。
然而,训练出来的模型通常更具有针对性:比如说对于人脸识别,自编码能够学习出人脸的固定结构及不同器官等主要特征,该模型用于人脸识别时能够有较好的表现,但如果引入其他图像(比如猫)作为输入时,模型依然重构的是一张人脸,那么对于这种情况,模型不能区分人脸与非人脸,问题在于人脸与猫的主要特征不尽相同。图片来自PCA训练,而PCA实质上就是一个线性的自编码器(它对输入进行降维得到主要特征,并能够对输入进行重构)
上述例子也许不够恰当,但它确实暴露了一定问题,甚至可能造成过拟合的现象发生。稀疏自编码则是一种有效的方式。它用更多的神经元表示隐藏层,使得隐藏层的维数大于输入层;同时,网络增加了稀疏的约束(正则化),对于每个输入,只允许隐藏层的极少数的神经元处于激活状态。那么,对于每个输入来说,隐藏层依然是降维的,而对于整个网络来说,不同的输入可能学习到不同的特征表示,增加了网络的灵活性,从另一个角度看,它是一个特征选择的过程。
最后,借用“科言君”的一句话:“高维而稀疏的表达是好的”。
2、自编码与预训练
自编码实质上对特征进行了提取与选择,把自编码得到的中间层参数作为分类问题的输入时,避免了随机初始化输入导致结果差异或者train失败的问题,因此,自编码可以作为数据的预训练过程,通过自监督学习得到有效的初始化输入。