您的位置:首页 > 其它

ImageNet Classification with Deep Convolutional Neural Networks 阅读笔记

2016-05-03 14:36 483 查看
这篇发表于NIPS2012的文章,是Hinton与其学生为了回应别人对于deep learning的质疑而将deep learning用于ImageNet(图像识别目前最大的数据库)上,最终取得了非常惊人的结果,其结果相对原来的state of the art好了非常多(前5选错误率由25%降低为17%)。

ImageNet目前共包含大约22000类,15兆左右的标定图像。其中,目前最常用的LSVRC-2010 contest包含1000类,1.2兆图像。本文的结果在这个测试集上得到了前五选错误率17%的结果。

下图给出了整个deep net的结构:




共包含8层,其中前5层是cnn,后面3层是全连接的网络,其中最后一层是softmax组成的输出决策层(输出节点数等于类别数目1000)。

具体的实现上,这篇文章在结构上面的一些改进在于:
1,采用ReLU来代替传统的tanh引入非线性,;
2,采用2块显卡来进行并行计算,减少了更多显卡需要host传递数据的时间消耗,在结构上,部分分布在不同显卡上面的前后层节点之间无连接,从而提高了训练速度;
3,同层相邻节点的响应进行局部归一化提高了识别率(top5错误率降低1.2%);
4,有交叠的pooling(top5错误率降低0.3%);

此外,为了降低over-fitting,文章采用了两种方式:
1,数据加强:
对训练数据进行左右对称以及平移变换,将训练数据增加为原来的2048倍;对像素进行PCA变换构造新样本(此机制使得top5错误率降低%1);
2,Dropout:

优化算法:
采用mini-batch SGD算法来优化,每个batch128个样本,momentum = 0.9, weight decay = 0.0005




随机初始化权重和bias(具体随机参数请参见论文)

论文链接:
http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf

源码地址: http://code.google.com/p/cuda-convnet/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CNN 图像处理