CNN图像分类模型(二)——AlexNet

  关于AlexNet模型论文,网上很多地方都可以下载到;我在学习的过程中,也看到SnailTyan把论文的翻译放在了个人博客中,也供大家学习参考:http://noahsnail.com/2017/07/04/2017-07-04-AlexNet论文翻译/

一)简介

  Alex在2012年提出的AlexNet网络结构模型赢得了2012年ImageNet竞赛的冠军,使得CNN成为在图像分类上的核心算法,并引爆了神经网络的应用热潮。在此之后,更多的更深的神经网路被提出,比如优秀的VGG,GoogleLeNet等。同时,作者也强调了一点,在AlexNet模型中移除任何一个卷积层都会使得性能会降低,可见深度对模型精度非常重要。

二)AlexNet模型介绍

AlexNet网络结构

  AlexNet模型共有8层(不包含输入层),5个卷积层和3个全连接层,每一个卷积层中包含了激励函数ReLU、局部响应归一化(LRN)处理,以及池化(下采样)。模型结构如下图所示。
在这里插入图片描述
  论文中的结构之所以分为上下两部分,是因为当时显卡容量有限,无法在一张显卡上操作网络中60M的网络参数,作者不得不在两张显卡上分别运算,并在特定的网络层进行交互。为了更方便的理解,我们可以假设全部在一块GPU计算,从稍微简化点的方向来分析这个网络结构。

2.1)输入图像

  AlexNet的输入图像是227x227x3大小(论文中的224x224需要padding)。

2.2)卷积层C1

 ?卷积
  卷积核的大小为11x11,stride为4,共48x2个卷积核
  经过卷积处理后,输出的featuremap边长为(216-11)/4+1=55,特征图则为55x55x96
 ?激活
 ?池化
  池化核大小为3x3,stride为2(论文表明重叠池化的训练效果更优)
  池化处理后的featuremap边长为(55-3)/2+1=27,特征图则为27x27x96
 ?归一化

2.3)卷积层C2

 ?卷积
  C1输出的featuremap需要在边缘扩充2个像素,变为31x31x96
  卷积核的大小为5x5,stride为1,共128x2个卷积核
  经过卷积处理后,输出的featuremap边长为(31-5)+1=27,特征图则为27x27x256
 ?激活
 ?池化
  池化核大小为3x3,stride为2。
  池化处理后的featuremap边长为(27-3)/2+1=13,特征图则为13x13x256
 ?归一化

2.4)卷积层C3

 ?卷积
  C2输出的featuremap需要在边缘扩充1个像素,变为15x15x256
  卷积核的大小为3x3,stride为1,共192x2个卷积核
  经过卷积处理后,输出的featuremap边长为(15-3)+1=13,特征图则为13x13x384
 ?激活

2.5)卷积层C4

 ?卷积
  C3输出的featuremap需要在边缘扩充1个像素,变为15x15x384
  卷积核的大小为3x3,stride为1,共192x2个卷积核
  经过卷积处理后,输出的featuremap边长为(15-3)+1=13,特征图则为13x13x384
 ?激活

2.6)卷积层C5

 ?卷积
  C4输出的featuremap需要在边缘扩充1个像素,变为15x15x384
  卷积核的大小为3x3,stride为1,共128x2个卷积核
  经过卷积处理后,输出的featuremap边长为(15-3)+1=13,特征图则为13x13x256
 ?激活
 ?池化
  池化核大小为3x3,stride为2
  池化处理后的featuremap边长为(13-3)/2+1=6,特征图则为6x6x256

2.7)全连接层F6

 ?全连接
  C5的输出为6x6x256尺寸的featuremap,利用4096个尺寸为6x6x256的卷积核对C5输出做卷积,得到4096个神经元的输出
 ?激活
 ?dropout

2.8)全连接层F7

 ?全连接
  C7同样含有4096个神经元,与C6的神经元进行全连接
 ?激活
 ?dropout

2.9)全连接层F8

 ?全连接
  C8含有1000个神经元(即分类数目),与C6的神经元进行全连接

三)ReLU、LRN、Dropout的说明

  AlexNet模型中引入ReLU激活函数、LRN处理、Dropout处理,都对模型的训练效率和结果有着重要影响。

3.1)激活函数ReLU

 什么是激活函数?

 ReLU的特点

  基于ReLU的深度卷积网络比基于tanh和sigmoid的网络训练快数倍。

3.2)局部相应归一化(Local Response Normalization)

  AlexNet模型中首次提出了LRN。LRN对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
  关于LRN的理解,大家可以阅读https://blog.csdn.net/program_developer/article/details/79430119

3.3)Dropout处理

  Dropout是防止神经网络过拟合的有效手段。
  以0.5的概率对每个隐层神经元的输出置0,这些神经元则不再进行前向传播,并且不参与反向传播。因此每次输入时,神经网络会采样一个不同的架构,但所有架构共享权重。这样减少了复杂的神经元互适应,因为一个神经元不能依赖特定的其它神经元的存在。因此,神经元被强迫学习更鲁棒的特征,它在与许多不同的其它神经元的随机子集结合时是有用的。
  关于Dropout的理解,推荐大家阅读https://blog.csdn.net/stdcoutzyx/article/details/49022443

3.4)数据增强

  数据增强是利用平移、旋转、翻转、缩放、颜色变换等方式,人工增大训练集样本的个数,从而获得更充足的训练数据,使模型训练的效果更好,减轻过拟合程度。
  作者在文论中也描述了自己的图像增强方法:
  1)从256×256图像上提取出5个224x224子图像(四个角及中心),并分别进行水平翻转,得到共10个子图像;
  2)改变训练图像的RGB通道的强度,可以减小自然下光照颜色、强度对识别的影响。

参考:
1.https://blog.csdn.net/guoyunfei20/article/details/78122504
2.https://blog.csdn.net/Rasin_Wu/article/details/80017920

猜你喜欢

转载自blog.csdn.net/qq_33604695/article/details/90182561