CNN深度神经网络之AlexNet模型

前言

Alex在2012年提出的alexnet网络结构模型引爆了神经网络的应用热潮,并赢得了2012届图像识别大赛的冠军,使得CNN成为在图像分类上的核心算法模型。 由于这时候的GPU性能还不足,Alex采用两块GPU同时训练模型,模型被分成了两路,但是现在的GPU性能已经完全可以容得下整个网络的训练,因此在网络分离这部分可以忽略。
CNN深度神经网络之AlexNet模型
整个网络共有8层,前5个为卷积层,后三层是全连接层。

第一层-卷积层1

  1. 输入的图片大小为:227*227*3
  2. 第一次卷积操作,卷积核大小11*11*3,尺寸为96,步长4,边缘丢弃。因此卷积输出为55*55*96。(227-11)/4+1=55.
  3. 卷积层后跟ReLU,尺寸不变.
  4. 最大池化层,核大小为3*3,步长为2,因此feature map的大小为:27*27*96.(55-3)/2+1=27

第二层-卷积层2

  1. 输入的图片就是第一层输出,大小为:27*27*96
  2. 第一次卷积操作,卷积核大小5*5*96,尺寸为256,步长1,边缘补齐。因此卷积输出为27*27*256。
  3. 卷积层后跟ReLU,尺寸不变.
  4. 最大池化层,核大小为3*3,步长为2,因此feature map的大小为:13*13*256.(27-3)/2+1=13

第三层-卷积层3

  1. 输入的图片就是第二层输出,大小为:13*13*256
  2. 第一次卷积操作,卷积核大小3*3*256,尺寸为384,步长1,边缘补齐。因此卷积输出为13*13*384。
  3. 卷积层后跟ReLU,尺寸不变.不进行池化。

第四层-卷积层4

  1. 输入的图片就是第三层输出,大小为:13*13*384
  2. 第一次卷积操作,卷积核大小3*3*384,尺寸为384,步长1,边缘补齐。因此卷积输出为13*13*384。
  3. 卷积层后跟ReLU,尺寸不变.不进行池化。

第五层-卷积层5

  1. 输入的图片就是第三层输出,大小为:13*13*384
  2. 第一次卷积操作,卷积核大小3*3*384,尺寸为256,步长1,边缘补齐。因此卷积输出为13*13*256。
  3. 卷积层后跟ReLU,尺寸不变。
  4. 最大池化层,核大小为3*3,步长为2,因此feature map的大小为:6*6*256.(13-3)/2+1=6

第六层-全连接层1

第六层输入数据的尺寸是6*6*256,采用6*6*256尺寸的滤波器对第六层的输入数据进行卷积运算;每个6*6*256尺寸的滤波器对第六层的输入数据进行卷积运算生成一个运算结果,通过一个神经元输出这个运算结果;共有4096个6*6*256尺寸的滤波器对输入数据进行卷积运算,通过4096个神经元输出运算结果;这4096个运算结果通过relu**函数生成4096个值;
上面的卷积操作由于卷积核大小与第五层输出的feature map大小完全一致,因此与全连接完全一样,所以叫做全连接层。
全连接层后跟随一个dropout层,防止过拟合。通过drop运算后输出4096个本层的输出结果值。

第七层-全连接层2

第七层有4096个神经元进行全连接,然后经由relu进行处理后生成4096个数据,再经过dropout处理后输出4096个数据。

第八层-全连接层3

第七层输出的4096个数据与第八层的1000个神经元进行全连接,经过训练后输出被训练的数值

模型训练

在学习过程中,我们使用随机梯度下降法和一批大小为128、动力为0.9、权重衰减为0.0005的样例来训练我们的网络。我们发现,这少量的权重衰减对于模型学习是重要的。换句话说,这里的权重衰减不仅仅是一个正则化矩阵:它减少了模型的训练误差。
我们用一个均值为0、标准差为0.01的高斯分布初始化了每一层的权重。我们用常数1初始化了第二、第四和第五个卷积层以及全连接隐层的神经元偏差。该初始化通过提供带正输入的ReLU来加速学习的初级阶段。我们在其余层用常数0初始化神经元偏差。
对于所有层都使用了相等的学习率,这是在整个训练过程中手动调整的。我们遵循的启发式是,当验证误差率在当前学习率下不再提高时,就将学习率除以10。学习率初始化为0.01,在终止前降低三次。