在学习《深度学习》时,我主要是通过Andrew Ng教授在http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial上提供的UFLDL(Unsupervised Feature Learning and Deep Learning)教程,本文在写的过程中,多有借鉴这个网站提供的资料。
稀疏自编码器(Sparse Autoencoder)可以自动从无标注数据中学习特征,可以给出比原始数据更好的特征描述。在实际运用时可以用稀疏编码器发现的特征取代原始数据,这样往往能带来更好的结果。本文将给出稀疏自编码器的算法描述,并演示说明稀疏编码器自动提取边缘特征。
转载请注明出处:http://blog.csdn.net/u010278305。
稀疏自编码器是具有一层隐含层的神经网络,其思路是让输出等于输入,(即,其中
表示训练样本集合),让编码器自己发现输入数据中隐含的特征,自编码神经网咯的结果如下图:
![\textstyle h_{W,b}(x) \approx x](https://i-blog.csdnimg.cn/blog_migrate/7df55d20d97646aad95ddb1dd96c19fa.png)
![\textstyle \hat{x}](https://i-blog.csdnimg.cn/blog_migrate/a302c2de2fe199ab3c44b37064416b5e.png)
![\textstyle x](https://i-blog.csdnimg.cn/blog_migrate/4762590476a291c100bdef3b2e13f87d.png)
稀疏性可以被简单地解释如下。如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。这里我们假设的神经元的激活函数是sigmoid函数(如果你使用tanh作为激活函数的话,当神经元输出为-1的时候,我们认为神经元是被抑制的)。
我们使用 来表示在给定输入为
情况下,自编码神经网络隐藏神经元