AlexNet模型

时间:2024-03-16 19:34:34

一、AlexNet模型简介
  上面对LeNet这个网络模型进行了介绍,该模型对手写数字是被具有较高的识别率,但是对于大数据量、复杂的物体图片分类,该模型的效果还是远远达不到要求的。在此背景下,AlexNet模型被提出,该模型在2012年imagenet上的图像分类challenge上赢得了的冠军。AlexNet模型证明了CNN在复杂模型下的有效性,并使用GPU使得大数据训练在可接受的时间范围内得到结果。
  AlexNet模型的基本网络结构如下图所示:

AlexNet模型

  该模型一共分为八层,5个卷积层,,以及3个全连接层,有60M以上的参数量。在每一个卷积层中包含了激励函数ReLu以及局部响应归一化(LRN)处理,然后在经过降采样(pooling处理),下面逐一的对每一层进行详细分析。

二、AlexNet模型网络层详解
1、第一个卷积层
  第一层卷积层的结构如下图所示:

AlexNet模型

  第一层卷积层在caffe网络中数据的转化如下图所示:

AlexNet模型

  输入Input的图像规格: 224*224*3(RGB图像),实际上会经过预处理变为227*227*3。该层使用的96个大小规格为11*11的过滤器filter(或卷积核)来进行特征提取,(图上之所以看起来是48个是由于采用了2个GPU服务器处理,每一个服务器上承担了48个)。原始图片为RBG图像,也就是三个通道的,我们这96个过滤器也是三通道的,也就是我们使用的实际大小规格为11*11*3,也就是原始图像是彩色的,我们提取到的特征也是彩色的,在卷积的时候,我们会依据这个公式来提取特征图: [img_size - filter_size]/stride +1 = new_feture_size,所以这里我们得到的特征图大小为:([227-11] / 4 + 1 )= 55。所以我们得到的新的特征图规格为55*55,注意这里提取到的特征图是彩色的。这样得到了96个55*55大小的特征图了,并且是RGB通道的。所以神经元数目为55*55*96=290400。卷积层结束后, 使用Relu激励函数,来确保特征图的值范围在合理范围之内。然后进行降采样处理(pooling也称池化),池化层的内核是3*3大小,该过程就是3*3区域的数据进行处理(求均值,最大/小值,就是区域求均值,区域求最大值,区域求最小值),通过降采样处理,我们可以得到( [55-3] / 2 + 1 ) = 27 ,也就是得到96个27*27的特征图,然后再以这些特征图为输入数据,进行第二次卷积。
2、第二卷积层
  第二层卷积层的结构如下图所示:

AlexNet模型

  第二层卷积层在caffe网络中数据的转化如下图所示:

AlexNet模型

  conv2和conv1不同,conv2中使用256个5*5大小的过滤器filter对96*27*27个特征图,进行进一步提取特征,但是处理的方式和conv1不同,过滤器是对96个特征图中的某几个特征图中相应的区域乘以相应的权重,然后加上偏置之后所得到区域进行卷积,经过这样卷积之后,而宽度高度两边都填充2像素,所以会得到一个新的256个特征图。故特征图的大小为:([27+2*2 - 5]/1 +1) = 27 ,得到256个27*27大小的特征图。然后进行Relu操作,再进行降采样(pooling操作)处理,得到[(27-3)/2 +1 ]= 13 ,所以得到256个13*13大小的特征图。
3、第三层卷积层
  第三层卷积层的结构如下图所示:

AlexNet模型

  第三层卷积层在caffe网络中数据的转化如下图所示:

AlexNet模型

  同样,按照上面的方法进行计算,得到((13+2*1 -3)/1 +1 )= 13 , 384个13*13的新特征图。所以本层的神经元个数为13*13*384=64896个。conv3没有使用降采样层(即池化层)。
4、第四层卷积层
  第四层卷积层的结构如下图所示:

AlexNet模型

  第四层卷积层在caffe网络中数据的转化如下图所示:

AlexNet模型

  同样,按照上面的方法进行计算,得到((13+2*1 -3)/1 +1 )= 13 , 384个13*13的新特征图。所以本层的神经元个数为13*13*384=64896个。conv3没有使用降采样层(即池化层)。
5、第五层卷积层
  第五层卷积层的结构如下图所示:

AlexNet模型

  第五层卷积层在caffe网络中数据的转化如下图所示:

AlexNet模型

  同样,按照上面的计算方法,计算得到256个13*13个特征图,然后进行降采样层pooling,计算得到最终的输出为256个6*6的特征图。
6、第一个全连接层
  第一层全连接层如下图所示:

AlexNet模型

  第一个全连接层在caffe网络中数据的转化如下图所示:

AlexNet模型

  这里使用4096个神经元,对256个大小为6*6特征图,进行一个全链接,也就是将6*6大小的特征图,进行卷积变为一个特征点,然后对于4096个神经元中的一个点,是由256个特征图中某些个特征图卷积之后得到的特征点乘以相应的权重之后,再加上一个偏置得到。之后进行池化,然后再进行dropout(随机从4096个节点中丢掉一些节点信息,也就是值清0。),最后得到一个新的4096个神经元。
7、第二个全连接层
  和fc6基本上一样。数据转化如下图所示:

AlexNet模型

8、第三个全连接层

AlexNet模型

  采用的是1000个神经元,然后对fc7中4096个神经元进行全连接,然后会通过利用softmax,得到1000个float型的值,这是我们所看到的预测的可能性。在训练模型时,会通过标签label进行对比误差,然后求解出残差,再通过链式求导法则,将残差通过求解偏导数逐步向前传递,并将权重进行倒推更改,类似与BP网络思想,然后会逐层逐层的调整权重以及偏置。
三、AlexNet模型的特点
AlexNet模型能取得成功是因为它有以下的创新点:
  (1)大数据训练,百万级ImageNet图像数据输入。
  (2)多GPU训练。
  (3)LRN局部响应归一化。
  (4)重叠池化。
  (5)采用Dropout来避免过拟合。
  (6)非线性**函数,使用Relu非线性函数收敛的速度更快。