2012年ImageNet图像分类大赛冠军AlexNet网络结构解析
一、AlexNet
1.AlexNet结构简介
AlexNet层数变多了,LeNet5不加输入层共7层,不严格讲它已经有11层了。

2.AlexNet优势何在?
01卷积池化并行化
输入图像像素为224×224
把同一层的卷积池化拆成两块,每一块在一个GPU上跑
第一层用的11×11的大卷积对原始图做卷积,
第一层96通道分为两组,每48个放到一个GPU上面,每一个卷积核对上一层输入做卷积核是独立。
02激活函数
激活函数是relu,比饱和函数训练速度更快。
03防止过拟合
避免过拟合采用数据增强与dropout防止过拟合
04GPU加速
采用GPU实现,并行化进行模型训练,在每个GPU放置一半的核。
二、AlexNet结构大解析
1.第一层卷积

输入层是224×224×3的图像,Padding后变为227×227
-
第一层使用96个11×11×3的卷积核,步长为4,卷积核个数为96所以输出图像通道数为96,输出的是55×55×96的图像
-
输出图像尺寸计算:(227-11)/4+1=55
-
ReLU:55×55×96的输入图像经过relu激活输出仍为55×55×96
-
重叠池化:55×55×96通过3×3的池化核,步长为2的池化操作后输出图像为27×27×96
-
(55-3)/2+1=27
-
局部响应归一化后仍是27×27×96
-
96个特征图分为两组,各自在一个独立的GPU上进行运算
-
输入层的节点总数为224×224×3=150528
-
第一个卷积层与输入层之间的连接数目:
卷积后的特征图中每个神经元与11×11×3的卷积块相连,每个神经元的参数数目为363+1个偏置
第一个卷积层的参数数目:特征图内共享参数:11×11×3×96+96=34848+96=34944
卷积层的参数 = 卷积核大小 x 卷积核的数量
第一个卷积层节点数量:55×55×48×2=290400
输入图像通道数等于卷积核的通道数,输出图像的通道数等于卷积核的数量
2.第二层卷积
96个特征图分为两组一组各48个,因此输入图像为27×27×48

-
每组的27×27×48的输入图像各使用128个5×5×48的卷积核,Padding为2+2,步长为1进行卷积操作后输出图像大小为27×27×128
-
卷积后输出图像计算:(27+4-5)+1=27
-
ReLU:27×27×128的输入图像经过relu激活输出仍为27×27×128
-
重叠池化:27×27×128的图像经过3×3的池化核,步长为2的池化后,输出图像大小为13×13×128
-
池化后输出图像计算:(27-3)/2+1=13
-
局部响应归一化后仍是13×13×128
-
特征图分为两组,各自在一个独立的GPU上进行运算
第二个卷积层参数数目:(5×5×48×128+128)×2=307456
卷积层的参数 = 卷积核大小 x 卷积核的数量
第二个卷积层节点数量:
只跟同一个GPU的上一层连接,节点数量=27×27×128×2=186624
3.第三、四、五层卷积:
以一个GPU来分析:
- 第三层卷积:输入图像Padding在周围填充一圈零变为15×15,15×15×128的图像使用卷积384个3×3×256的卷积核,步长为1卷积后输出图像为13×13×192
第三层参数数量:3×3×256×384+384=885120
第三层节点数目:13×13×192×2=64,896 - 第四层卷积:13×13×192的图像输入图像Padding在周围填充一圈零变为15×15,使用卷积384个3×3×192的卷积核,步长为1卷积后输出图像为13×13×192
第四层参数数量:(3×3×192×192+192)×2=663936
第四层节点数目:13×13×192×2=64896 - 第五层卷积: 13×13×192的图像输入图像Padding在周围填充一圈零变为15×15,使用卷积256个3×3×192的卷积核,步长为1卷积后输出图像为13×13×128
第五层参数数量:(3×3×192×128+128)×2=442624
第五层节点数目:13×13×128×2=43264

4.最后三层是全连接层
- 第六层全连接层:节点数为4096,参数量为(6×6×128×2)×4096+4096 = 37752832
- 全连接层的参数数量 = 上一层节点数量(pooling之后的) x 下一层节点数量 + 偏置数量(即下一层的节点数量)
- 第七层全连接层:节点数量为4096,参数量为4096×4096+4096=16781312
- 第八层全连接层:节点数量为1000,参数量为4096×1000+1000=4097000
最后回顾一下AlexNet的结构吧
