Exercise : RICA
本节内容参考ng网页教程 http://ufldl.stanford.edu/tutorial/unsupervised/ExerciseRICA/
实验内容:使用MNIST数据集进行特征学习,图片大小9*9,特征数目50 ;由于电脑内存限制,仅使用2000张样本。
优化方法:LBFGS方法,由于没有正交化限制,因此可以使用LBFGS方法进行优化,迭代次数500,ICA中使用的backtracking方法比较耗时。
实验比较:
- 由于RICA可以学习过完备基,因此在该实验中作者分别对学习过完备基:特征数目为100;不完备基:特征数目50
- 在教程中作者提到,RICA对未白化的数据更加鲁棒(不太清楚为什么),本人也分别跑了下完备基与不完备基未白化情况下的结果
- 训练样本数目,是否白化等完全相同下,比较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/

浙公网安备 33010602011771号