【Imagenet LSVRC系列模型】Alexnet-2012 Imagenet Classification with Deep Convolutionnal Neural Networks
文章链接:http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%)。由此,DCNN的潜力受到广泛认可,一炮而红。
Alxnet中用到了Relu、Training on Multiple GPUs、LRN(Local Response Normalization)、Overlapping Pooling、DataAugmentation、Dropout等多种技巧,每种技巧对于模型分类错误率的降低都有贡献。
1、模型结构如图1所示。5个卷积层,3个全连接层,后接1000类的softmax分类层。Conv1和Conv2后接pooling层和LRN(Local Response Normalization)。Con5后接pooing层。Conv1的输入为224*224*3,fc8输出为4096维向量。共计0.65M个神经元,60M参数,1.2M的训练集。
图1 Alexnet网络结构
2、模型包含的各种技巧:
(1)Relu:
形式:f(x)=max(0,x)
作用:在这里,主要用于提高收敛速度。比起tanh,收敛速度快几倍。
(2)M-GPU
主要是为了能训练更大的模型。Alexnet中卷积层featuremap个数还是挺多的。GTX 580 GPU只有3GB内存,训练时内存不够用。于是采用两个GPU并联的方式。net有的层只连接自己本身GPU上的上一层,而有的是交叉连接。具体见图1。如此降低top-1和Top-5错误率分别是1.7%和1.2%。
(3)LRN
操作公式如图2所示。主要是为了减少图像明亮度对分类的影响。降低top-1和Top-5错误率分别是1.4%和1.2%。
图2 LRN公式
(4)Overlapping Pooling
就是pooling时stride小于窗口大小。文中说能有助于防止过拟合。降低top-1和Top-5错误率分别是0.4%和0.3%。
(5)DataAugmentation
主要是label-preserving transformations,包括裁剪、翻转。另外有PCA变换增强。降低top-1错误率分别是1%。
(6)Dropout
每个神经元有0.5的概率不被**,没有前馈也不参与反馈,相当于被网络dropout。如此一来,每次迭代,网络的结构都有所变化。防止过拟合,相当于多个网络联合进行取平均的效果。在这里,在fc6和fc7进行dropout操作。加入dropout后,模型收敛所需的迭代次数增加大约一倍。
3、结果
4、文中提到的其他相关文章
关于relu:. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010.
关于dropout:G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R.R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.
除了Imagenet外,另一个常用的图像分类数据库labelme:B.C. Russell, A. Torralba, K.P. Murphy, and W.T. Freeman. Labelme: a database and web-based tool for image annotation. International journal of computer vision, 77(1):157–173, 2008.
文中还提到,用cnn训练好的模型提取特征是4096维,不方便图像检索,可以再训练一个自动编码器对特征压缩为二进制编码。方法参考:A. Krizhevsky and G.E. Hinton. Using very deep autoencoders for content-based image retrieval. In
ESANN, 2011.