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/
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/
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- 使用Java进行图像处理的一些基础操作
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- PHP图像处理类库及演示分享
- php图像处理函数大全(推荐收藏)
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- Javascript图像处理―平滑处理实现原理
- Swift图像处理之优化照片
- CUDA搭建
- 深入理解CNN的细节
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- TensorFlow人工智能引擎入门教程所有目录
- VTK学习笔记之图像处理