题目:ImageNet Classification with Deep Convolutional
Neural Networks
作者:Alex Krizhevsky; Ilya Sutskever; Geoffrey E. Hinton
摘要:
60,000个参数,650,000个神经元,5个卷积池化层,3个全连接层,1000路的softmax,使用ReLU实现加速,使用dropout来防止过拟合。
简介
CNN具有以下性质:
- 宽度和深度灵活可变
- 关注input的局部相关性
- 比全连接的网络参数更少,更容易训练
所以成为图像处理的神器。
ReLU函数
相对于sigmoid函数和tanh函数,ReLU函数具有的无饱和区特性和非线性的特性能大大加速训练。
normalization
由于ReLU的存在,数据将不需要预先的normalization。但是作者在activation之后增加了一个local response normalization。记
b
x
,
y
i
=
a
x
,
y
i
/
(
k
+
α
∑
j
=
max
(
0
,
i
−
n
/
2
)
min
(
N
−
1
,
j
+
n
/
2
)
(
a
x
,
y
j
)
2
)
β
b_{x,y}^i=a_{x,y}^i/(k+\alpha\sum_{j=\max(0,i-n/2)}^{\min(N-1,j+n/2)}(a_{x,y}^j)^2)^\beta
bx,yi=ax,yi/(k+αj=max(0,i−n/2)∑min(N−1,j+n/2)(ax,yj)2)β
求和对象是不同feature map上同一位置处的元素,保证了同一index的像素在层数递进过程中的相关性。其中
k
k
k、
α
\alpha
α、
n
n
n、
β
\beta
β是超参数。
overlapping pooling
传统的池化方法为“分割-择优”,然而本文采用重叠池化,令 z × z z\times z z×z的像素区域中择优之后,计 s t r i d e < z stride<z stride<z,这意味着池化层输入矩阵的内部(相对于边界区域)的某些像素参与了多次池化。经实验,此方法可以提高准确率。
减少过拟合
此种包括两种数据增强(data augmentation)方法:
- 通过平移、翻折增加寻训练图片;
- 对RGB通道做PCA之后,再进行乘性高斯随机扰动。
以及训练过程中采用dropout(神经元以0.5的概率置零,从而使得最终的网络结果类似于adaboost)也能避免overfitting。
学习过程:动量随机梯度下降
v
i
+
1
:
=
0.9
v
i
−
0.0005
ϵ
w
i
−
ϵ
∂
L
∂
w
∣
w
i
v_{i+1}:=0.9v_i-0.0005\epsilon w_i-\epsilon \dfrac{\partial L}{\partial w}|_{w_i}
vi+1:=0.9vi−0.0005ϵwi−ϵ∂w∂L∣wi
w
i
+
1
:
=
w
i
+
v
i
+
1
w_{i+1}:=w_i+v_{i+1}
wi+1:=wi+vi+1
初始化:卷积核权值高斯随机初始化,bias初始化为1/0。
超参数:batch size 128,momentum 0.9,权值decay 0.0005,学习率0.01并变小。
架构
第一层96个,
11
×
11
×
3
11\times11\times3
11×11×3 stride 4;
第二层256个,
5
×
5
×
48
5\times5\times48
5×5×48;
第三层384个,
3
×
3
×
256
3\times3\times256
3×3×256;
第四层384个,
3
×
3
×
192
3\times3\times192
3×3×192;
第五层256个,
3
×
3
×
192
3\times3\times192
3×3×192;