现在的位置: 首页 > 综合 > 正文

一些Deep Network代码的整理

2012年06月25日 ⁄ 综合 ⁄ 共 1471字 ⁄ 字号 评论关闭

这里指的Deep Network包括: Convolutional Sparse Coding, Deep RBM, TCNN,Sparse Autoencoder等等。

这方面的基本知识可以参照

1. http://deeplearning.net/tutorial/

2. http://ufldl.stanford.edu/wiki/index.php/Main_Page (昨天刚发现的一个新的tutorial,关于unsupervised feature learning的)

最近一直在研究这方面东西,积累了一些代码,放上来留档并分享。

主要代码在deeplearning.net上都有,但由于那个网站两年没更新了,而Deep Learning这块又是最近比较火的一块,代码新陈代谢相当快,因此在这边分享几个最近找到的不错的代码 (主要是matlab的):

1. DeconvNet Toolbox:

http://www.matthewzeiler.com/software/

相当全的一个toolbox,里面基本包含了convolutional sparse coding从算法层面到gui层面所有功能 (但结构也有点复杂)。由于是作者一个人开发的,所以还有些bug。花了近两个月时间把它搞通了,收获颇丰。

2. TCNN

http://ai.stanford.edu/~quocle/TCNNweb/index.html

最近刚刚尝试,相比DeconvNet写得比较简洁易懂。但是原来代码里面给的数据似乎没法跑。所幸同作者还有一些代码用到了TCNN,比如action recognition,可以一起下载下来参考。这个代码主要特色就是tiled结构,可以用来参考,然后把里面ICA的优化函数换成RICA,Sparse Coding等等。总之,在这个代码里也了解了不少(比如line search等)。

现在调下来感觉sparse coding比ICA鲁棒很多的,至少对于sparsity penalty不那么敏感。而且Sparse Coding比较bio-plausible, 这个日后会写点东西分析一下的。

3. lush

http://lush.sourceforge.net/

Lecun组的镇山之宝,里面包含了不少代码,用的是自己发明的编程语言lush,但本人没调成功 (linux下安装成功,但调试路径方面不知道怎么设置)。。。而且由于有了之前两个的框架,Lecun paper里面的idea可以轻松implement,所以也就没有花太多时间在上面了。

4. pylearn

http://www.iro.umontreal.ca/~lisa/twiki/bin/view.cgi/Public/PublicCode

Python写的,貌似是加拿大那两个组(Bengio and Hinton)的成员主力开发的。里面包括许多deep learning方面的东西 (各种RBM)。

文档见 http://deeplearning.net/software/pylearn2/index.html, 写得很简洁,主要是一个google group, 要不懂可以到上面去问问题。但由于个人对matlab黏性太大,暂时没有转到Python的打算,所以只是把代码放在这里供参考。

补:

另外两个年代久远但还是比较基础的算法:

sparse coding:

http://redwood.berkeley.edu/bruno/sparsenet/

ICA:

http://www.cs.helsinki.fi/u/phoyer/software.html

抱歉!评论已关闭.