UFLDL练习(Sparse Autoencoder)
最近开始学习UFLDL,一个deep learning的教程
这个练习的地址:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Sparse_Autoencoder
Sparse Autoencoder是用神经网络进行feature learning的一个算法,详细的就见教程,我只是贴贴代码
从早上十点多一直debug到下午四点多,问题多多,究其原因还是对算法理解不够深刻,虽然以前还写过一个nn
所以收获还是有的,理解算法嘛
最主要的部分就是sparseAutoencoderCost.m了
但实际上这个步骤计算的是J(W,b;x,y),是针对某个训练数据来的,即使你把所有的累积起来,并没有满足要求
因为真正的梯度计算式子是:
我们算的不过是求和符号的那一坨,还需要加入外面的部分
看起来不止我一个人犯了这样的错误,因为微博上一人帖的代码也有问题
训练结果:
嗯嗯,就这样了,话说matlab 2012挺好用的