Exercise : RICA

 

本节内容参考ng网页教程 http://ufldl.stanford.edu/tutorial/unsupervised/ExerciseRICA/

实验内容:使用MNIST数据集进行特征学习,图片大小9*9,特征数目50 ;由于电脑内存限制,仅使用2000张样本。

优化方法:LBFGS方法,由于没有正交化限制,因此可以使用LBFGS方法进行优化,迭代次数500,ICA中使用的backtracking方法比较耗时。

实验比较:

  1. 由于RICA可以学习过完备基,因此在该实验中作者分别对学习过完备基:特征数目为100;不完备基:特征数目50
  2. 在教程中作者提到,RICA对未白化的数据更加鲁棒(不太清楚为什么),本人也分别跑了下完备基与不完备基未白化情况下的结果
  3. 训练样本数目,是否白化等完全相同下,比较ICA 与RICA训练的不完备基

理论基础:

由于 ICA只能学习非完备基,并且有正交的硬约束条件,因此在许多应用方面受到限制,因此为了解决该问题提出了RICA方法,RICA方法通过增加重构项,使RICA可以像sparse coding学习过完备基,且取消了正交的硬约束条件。 

目标函数:

梯度

由于博主在ICA一节中使用的目标函数与RICA一致,因此这里关于梯度计算等请参考博文Exercuse:Independent Component Analysis

 

实验结果:

  可以看出,RICA学习结果比ICA好,RICA学出的特征为边缘,而ICA学习到的大多数为点或短边缘。并且在实验过程中RICA的学习速度比ICA快,即LBFGS的效率比backtracking高。

  特征数50,白化

          RICA                                            ICA

                                     

   特征数100,未白化

  

  特征数100,未白化

  

  特征数50,未白化

  

 

Undone:

  ICA不进行白化的代码,如果在原来的基础上简单删掉白化操作,在使用backtracking优化时从循环中跳不出来,今天没时间了,明白调一下

参考资料:

http://ufldl.stanford.edu/tutorial/unsupervised/RICA/

http://ufldl.stanford.edu/tutorial/unsupervised/ExerciseRICA/

http://www.cnblogs.com/dupuleng/articles/4153696.html

http://www.cnblogs.com/dupuleng/articles/4153863.html

posted @ 2014-12-15 23:34  dupuleng  阅读(623)  评论(0)    收藏  举报