最近开始在学习 Deep Learning 的基础知识,找了些文献来读,觉得有些晦涩。目前对于 DBN 的算法框架已经有个大概了解,但具体实现细节还不是太清楚,在网上搜到了日本学者 Yusuke Sugomori 在 Github 上的一个 deeplearning 项目,认真读了其 C 语言的版本,感觉收获蛮大,特将程序翻译成数学描述,希望对正在读或者将要读这个代码的朋友有些帮助。
注意,本文只是客观翻译程序,并作一些相关的评注,个人觉得这个程序与目前流行的 DBN 算法有较大差别,不能直接用来实战。学习 Deep Learning 的朋友可将其作为入门,特别是用来理解 Contrastive Divergence 和 Gibbs Sampling 比较有帮助。
补充:
文中描述的算法在框架上问题不大,但在一些细节处理上可能有些问题,例如,关于 RBM 中的参数刷新公式, fine-tuning 过程中并没有将之前的层联级微调等,望读者知晓。另外,关于 RBM 算法,我后来又花了点功夫学习了一下,并整理成系列博客(见下面的链接),供大家参考。
目录链接
(五)梯度计算公式作者: peghoty
出处: http://blog.csdn.net/peghoty/article/details/9079973
欢迎转载/分享, 但请务必声明文章出处.