ImageNet Classification with Deep Convolutional Neural Networks
序言:
本篇文章于2012年发表,是近年来深度学习领域的代表之作,同样是由多伦多大学G.Hinton大神领导的人工智能小组发表,从此引发了卷积网络在图像领域应用的高潮。 本文主要提出了一个8层的深度神经网络,包括5层卷积层和3层连接层,以及三个池化层(不计入总层数),并且使用Relu作为激活函数,取得了优异的效果,这种网络架构被称为AlexNet(论文一作是Alex Krizhevsky)
1.数据介绍
文章主要用到的数据集是ILSVRC-2010,包括1.2million张training images,5000张validate images以及15000张test images。首先对图片处理取一个固定的分辨率256X256,然后对每个训练样本都进行了零均值处理。
2.网络特点
(1)Relu Nonlinearity
使用Relu(non-saturating nonlinearity)作为激活函数取代传统的tanh和sigmoid(satiration nonlinearity)函数, 可以有效加快收敛速度和减少计算量,因为Relu:f(x)=max(0,x)更易于求导。
(2)Training on Multiple GPUs
受限于当时的算理使用了两块GTX 580 GPU,共6GB内存来计算,有效提高了计算速度和支持更复杂的网络。
(3)Local Response Normalization
在每一层的输出进行normalization,此方法已经被batch-normalization取代?
(4)Overlapping Pool
原理很简单,每个卷积层的运算可看做是一个pooling unit的网格,每个网格大小为z*z,stride=s。if s=z,这样每个pooling unit就不会有重合;if s<z,这样就会产生重合(overlapping)。对于一个pooling unit可能包含的像素只是有效信息的一部分,如果不重合下一个pooling unit里就会完全跳过上一个pooling unit,这样上一个pooling unit的有效信息就会被当前unit忽略掉,overlapping有效的避免了这个问题。如本文使用的就是s=2,z=3。
3.网络架构
(1)整体结构
各层结构如下:
Input: [ m x227 x 227 x 3 ] (#images x width x height x #channels)
Conv1: [ 96 x 11 x 11 x 3/ s = 4 _{s=4} s=4] (#filters x width x height x #channels)
Maxpool1: [ 3 x 3/ s = 2 _{s=2} s=2 ] (#filters x width x height x #channels)
Conv2: [ 256 x 5 x 5 x 48 /$_{p=2} $ ] (#filters x width x height x #channels)
Maxpool2: [ 3 x 3/ s = 2 _{s=2} s=2 ] (#filters x width x height x #channels)
Conv3: [ 384 x 3 x 3 x 256 ] (#filters x width x height x #channels)
Conv4: [ 384 x 3 x 3 x 192 ] (#filters x width x height x #channels)
Conv5: [ 256 x 3 x 3 x 192 ] (#filters x width x height x #channels)
Maxpool3: [ 3 x 3/ s = 2 _{s=2} s=2