1. 简介
2012年,Alex Krizhevsky, Ilya Sutskever和Geoffrey E. Hinton在论文《ImageNet Classification with Deep Convolutional Neural Networks》中提出AlexNet,夺得ILSVRC 2012的冠军。 AlexNet是最早的现代神经网络,AlexNet证明了CNN在复杂模型下的有效性,使用GPU使得训练在可接受的时间范围内得到结果,推动了有监督深度学习的发展。 主要特点 :
采用GPU实现 :两个GPU并行化计算,采用交叉验证,提高了准确率(第二、三层卷积层之间用了两个GPU的“串联”)
采用ReLU激活函数 :克服了梯度消失问题且收敛速度较快,优于tanh与sigmoid函数
采用数据增强 :数据增强采用图像平移和翻转来生成更多的训练图像,提升了模型的泛化能力
采用Dropout :降低了神经元之间互适应关系,迫使神经元不会过度依赖某个神经元或特征,可学习更为鲁棒的特征,防止过拟合
2. 网络结构
Layer 1 : CONV + POOL
CONV
输入:
227
×
227
×
3
227 \times 227 \times 3
2 2 7 × 2 2 7 × 3
卷积核:
11
×
11
11 \times 11
1 1 × 1 1 ,深度
48
48
4 8 ,步长
4
4
4
输出:
55
×
55
×
96
55 \times 55 \times 96
5 5 × 5 5 × 9 6
Relu激活函数
POOL
输入:
55
×
55
×
96
55 \times 55 \times 96
5 5 × 5 5 × 9 6
池化核:最大池化,
3
×
3
3 \times 3
3 × 3 ,步长
2
2
2
输出:
27
×
27
×
96
27 \times 27 \times 96
2 7 × 2 7 × 9 6
LRN(局部响应归一化)
Layer 2 :CONV + POOL
CONV
输入:
27
×
27
×
96
27 \times 27 \times 96
2 7 × 2 7 × 9 6 (SAME Padding)
卷积核:
5
×
5
5 \times 5
5 × 5 ,深度
128
128
1 2 8 ,步长
1
1
1
输出:
27
×
27
×
256
27 \times 27 \times 256
2 7 × 2 7 × 2 5 6
Relu激活函数
POOL
输入:
27
×
27
×
256
27 \times 27 \times 256
2 7 × 2 7 × 2 5 6
池化核:最大池化,
3
×
3
3 \times 3
3 × 3 ,步长
2
2
2
输出:
13
×
13
×
256
13 \times 13 \times 256
1 3 × 1 3 × 2 5 6
LRN(局部响应归一化)
Layer 3 : CONV
CONV
输入:
13
×
13
×
256
13 \times 13 \times 256
1 3 × 1 3 × 2 5 6 (SAME Padding)
卷积核:
3
×
3
3 \times 3
3 × 3 ,深度
192
192
1 9 2 ,步长
1
1
1
输出:
13
×
13
×
384
13 \times 13 \times 384
1 3 × 1 3 × 3 8 4
Relu激活函数
Layer 4 : CONV
CONV
输入:
13
×
13
×
384
13 \times 13 \times 384
1 3 × 1 3 × 3 8 4 (SAME Padding)
卷积核:
3
×
3
3 \times 3
3 × 3 ,深度
192
192
1 9 2 ,步长
1
1
1
输出:
13
×
13
×
384
13 \times 13 \times 384
1 3 × 1 3 × 3 8 4
Relu激活函数
Layer 5 : CONV-POOL
CONV
输入:
13
×
13
×
384
13 \times 13 \times 384
1 3 × 1 3 × 3 8 4 (SAME Padding)
卷积核:
3
×
3
3 \times 3
3 × 3 ,深度
128
128
1 2 8 ,步长
1
1
1
输出:
13
×
13
×
256
13 \times 13 \times 256
1 3 × 1 3 × 2 5 6
Relu激活函数
POOL
输入:
13
×
13
×
256
13 \times 13 \times 256
1 3 × 1 3 × 2 5 6
池化核:最大池化,
3
×
3
3 \times 3
3 × 3 ,步长
2
2
2
输出:
6
×
6
×
256
6 \times 6 \times 256
6 × 6 × 2 5 6
Layer 6 : FC1
输入:
9216
9216
9 2 1 6
输出:
4096
4096
4 0 9 6
Relu激活函数
Layer 7 : FC2
输入:
4096
4096
4 0 9 6
输出:
4096
4096
4 0 9 6
Relu激活函数
Layer 8 : FC3
输入:
4096
4096
4 0 9 6
输出:
1000
1000
1 0 0 0
Sigmoid激活函数
说明:
原始图像大小
256
×
256
×
3
256 \times 256 \times 3
2 5 6 × 2 5 6 × 3 ,经过随机裁剪、旋转等预处理,形成
227
×
227
×
3
227 \times 227 \times 3
2 2 7 × 2 2 7 × 3 。
Layer 1中卷积核深度为
48
48
4 8 ,由于是分在2个GPU上训练,所以总数为
96
96
9 6 ;其他层同理。