推荐一个deep learning绝佳的入门资料
* UFLDL(Unsupervised Feature Learning and Deep Learning)教程 http://deeplearning.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B
故意把链接地址也写出来,方便看到来源,嘿嘿。
资料写得相当赞,还有中文版。看懂里面的idea是很快,exercise要写的话就得把公式细节搞搞清楚了,一定要做一下,加深理解。代码我是不会贴的,记录一些有的没的吧。特别是用octave遇到的坑,用matlab貌似是没有的,(哭
一开始用octave,因为coursera的那个课程就用octave。后来慢慢发现不对劲,UFLDL这个课程用的是matlab,而且要64bit的,不然可能内存不够。哎,发现免费的东西有时候确实不太行。
一些小技巧
- return 命令中间退出。先调试前几个step的时候有用。
- pause() 中间停住。任意键继续。不想继续就ctrl+c退出。哎,原来matlab有节的概念,就没这个问题,可以按小节运行。
- fflush(stdout) 不要缓冲了,赶紧输出迭代进度。
- close all 弹出好多figure,一个一个点太麻烦了。
Exercise:Sparse Autoencoder
直接跑发现有问题,挺烦的,原本公式就有点乱的,容易写错,还要整一些语言的问题。我的环境是win10 + octave 4.0,调用lbfgsC.c有问题,会出现lbfgsC undefined的问题,只能自己编译一下了。虽然把代码里面的lbfgsC改成lbfgs是能跑,但貌似太慢了。minFunc.m里面可以在fprintf迭代次数Iteration之后加上fflush(stdout);不然输出不及时,等得蛋疼,都不知是挂了还是怎样。
lbfgsC.mex*是供matlab/octave调用的c接口。minFunc的主页。下载下来后改改mexAll.m,然后就可以编译,没啥坑爹的依赖问题。然后把*.mex 文件拷贝到start