论文链接:http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks
图片来源:http://www.sohu.com/a/134347664_642762
摘要
Alex Krizhevsky在2012年提出的AlexNet网络结构模型引爆了神经网络的应用热潮,并赢得了2012届图像识别大赛的冠军,使得CNN成为在图像分类上的核心算法模型。同时,用GPU实现使得训练在可接受的时间范围内得到结果,也让GPU火了一把。
AlexNet大概有60M参数以及650k神经元,结构共有8层,其中5层卷积层与3层全连接层。模型通过非饱和激活函数ReLU与GPU加速了训练过程;通过dropout减少过拟合现象。
1 The Architecture
1.1 Rectified Linear Units(ReLUs) Nonlinearity
在这之前用的激活函数一般为 f ( x ) = t a n h ( x ) f(x)=tanh(x) f(x)=tanh(x)与 f ( x ) = ( 1 + e − x ) − 1 f(x) = ( 1 + e ^ {-x} ) ^ {-1} f(x)=(1+e−x)−1,然而这些饱和非线性函数比起非饱和非线性函数ReLU: f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)。使用这个激活函数不仅可以加速收敛速度,而且能解决由Sigmoid函数在网络较深时的梯度消失问题。
1.2 Training on Multiple GPUs
作者通过2个GPU并行处理1.2M训练样本使得训练速度显著提升,同时利用限制输入来源的技巧,使得计算量可接受。
1.3 Local Response Normalization(LRN)
LRN原理是仿照生物学上活跃的神经元对相邻神经元的抑制现象(侧抑制),即对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,可以看出LRN能够增强模型的泛化。
具体的响应归一化表达式如下:
b
x
,
y
i
=
a
x
,
y
i
/
(
k
+
α
∑
j
=
m
a
x
(
0
,
i
−
n
/
2
)
m
i
n
(
N
−
1
,
i
+
n
/
2
)
(
a
x
,
y
i
)
2
)
b_{x,y}^i = a_{x,y}^i / (k + \alpha \sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{x,y}^i)^2)
bx,yi=ax,yi/(k+αj=max(0,i−n/2)∑min(N−1,i+n/2)(ax,yi)2)
其中
a
x
,
y
i
a_{x,y}^i
ax,yi是卷积并经过激活函数后的一个特征值,
k
,
n
,
α
,
β
k,n,\alpha,\beta
k,n,α,β作为由验证集确定的超参数,
N
N
N为总的特征图个数,
n
n
n为相邻特征图个数。
见示意图如下,这就是在
(
x
,
y
,
i
)
(x,y,i)
(x,y,i)处的特征值在通道方向
(
m
a
x
(
0
,
i
−
n
/
2
)
,
m
i
n
(
N
−
1
,
i
+
n
/
2
)
)
(max(0,i-n/2),min(N-1,i+n/2))
(max(0,i−n/2),min(N−1,i+n/2))的归一化处理。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/156211e93f3018e83eeb696e39119a91.png)
1.4 Overlapping Pooling
这类池化与以往池化的差别在于,它的步长 z z z大于它的尺寸 s s s,所以在滑动的时候会有重叠部分,而因为这个特点,能轻微改善过拟合现象。
1.5 Overall Architecture
论文的贴图中对输入的处理分成了上下两个部分。即前面提到的两个GPU并行。其中第三层的输入来自第二层所有的输出,而第四层的输入仅仅来自第三层同个GPU上的输出,通过此类方式处理可以减少计算量。
下面对于各层的流图引用自顶部第二个链接。
2 Reducing Overfitting
此模型对抗过拟合现象的两个主要方式分别为:
数据增强通过在原始训练图像中提取小尺寸图像并进行随机旋转、翻转等变化,以及在RGB像素值上进行PCA处理来获得更大的训练集。
Dropout该技术是由G.E. Hinton同年在《Improving neural networks by preventing co-adaptation of feature detectors》中提出,它是指在模型训练时随机让网络某些隐含层节点的权重失效,这些节点可暂时认为不是网络结构的一部分,但它的权重会保留下来,因为只是本次不更新,下次样本输入时可能会更新。在MNIST实验中,可以看出使用Dropout后,虽然训练样本的错误率更高,但是测试样本的错误率降低了,说明Dropout的泛化能力不错,可以防止过拟合。
3 Discussion
结果表明,一个大型的深度卷积神经网络能够使用纯监督学习在具有高度挑战性的数据集上实现创纪录的结果。值得注意的是,如果移除单个卷积层,网络性能会下降。例如,删除任何中间层会导致网络在top-1上性能损失约2%,所以深度对于结果非常重要。