接着我的微博继续八卦吧
微博里问了几个人,关于deep learning和cnn的区别,有不少热心网友给了回答,非常感谢。结合我听课和看文章的理解,我大胆大概总结一下:
在上世纪90年代,neural network火了后就不再火了,听说,在投稿到nips时,如果你的关键词是neural network等,会大大降低你的文章的接受率,而如果是bayesian parameters or svm等,就会提高接受率,云云,但是在06年左右,neural network又开始出来闹腾了。
其实,之前neural network之所以偃旗息鼓了,主要是因为深层神经网络中,使用BP进行训练,是走不动了,层一深,训练无差就被前面层吃掉了,这样就没法再进行进一步训练了。因此,很多使用neural network的都是一两层的,唯一一个比较成功的案例是1998年lecun的lenet,用了七层,也就是cnn, convolutional neural network,这个是通过convolutional 和subsampling对network进行了降维,只有在最后三层是fully connected的,维度降低了,再用BP梯度进行训练,就好些了。当时是对图像手写体进行了识别,很成功的说,当时的图片大小是32X32。
06年时,hinton提出了RBM训练多层,同时,微软什么的又成功将多层neural network成功应用了,于是neural network又火了。这个,我最近还没仔细跟踪,不八卦了。
接着说cnn吧,cnn在12年的imagenet上火了,当时是hinton的学生,就是那个Alex,用cnn,成功用在了大图片大数据上,基于gpu, cuda进行编程,娃哈哈,效果很好,甩了第二名很远。我看文章中,就是用的lecun的cnn,一共8层,5层是做convolutional 和pooling的,后面三层是fully connected的,也是用梯度下降进行训练的,在训练时,用到了dropout,同时还用了局部normalization,其实这个我也不懂。
基于两块GPU,完成的效果还不错,而且人家可真是实打实的大图片大数据,好吧,12年的文章,至今已经被引用超过100次了。
另外,看了几篇文章,best practice for cnn applied to document 还有几篇介绍的博客什么的,目前对cnn的训练思路是没问题了,打算就着网上的代码,咀嚼一遍试试,只是,目前看Alex的imagenet代码,还是很不清晰,主要是基于cuda的编程,不明白,再者,人家的程序写的框架性是真好,框架性越好,其实对某一个针对性问题越不容易理解,是的,扩展性好,可我小虾米只想顺着结构走,还不会跟着对象走。