Inception-v3总结及部分Inception-v2原理讲解

论文:Rethinking the Inception Architecture for Computer Vision
一、内容概括
  本文是Inception结构四篇中的第三篇,具体介绍了BN层论文附录中提到的Inception-v2结构,同时又提出了Inception-v3结构,最后构建了一个42层的深度神经网络模型。文中提出的卷积分解等方法为之后的CNN模型提供了一种新思路。经实验表明,经过改进的网络性能要优于2014年提出的GoogLeNet以及其加入了BN层以及Inception-v2之后的模型。
二、Motivation
  Inception-v1和GoogLeNet问世之后得到了广泛的应用,为了在不增加过多计算量的同时提高模型性能,对Inception结构再次进行了改进。
三、方法与模型结构
1.卷积分解:提出使用3个33的卷积层代替1个77的卷积层,使用2个33的卷积层代替1个55的卷积层,这样在减少参数数量的同时不会导致图像特征的缺失。
        Inception-v3总结及部分Inception-v2原理讲解_第1张图片
  Inception-v2结构的改进就是将原来的Inception-v1结构中的55卷积层进行修改,用两个33卷积层代替。
   Inception-v3总结及部分Inception-v2原理讲解_第2张图片
         Inception-v3总结及部分Inception-v2原理讲解_第3张图片
文中进一步使用1n的卷积层接一个n1的卷积层来替代本身的nn卷积层,不过经实验验证发现在整个模型开始的时候使用这个方法效果并不好,在feature maps尺寸在1212到2020时效果最好。在Inception-v3中使用时n取了7,输入的尺寸为1717。
         Inception-v3总结及部分Inception-v2原理讲解_第4张图片
2.图像尺寸缩小
  提出将将池化和卷积并行的结构用来减少计算复杂度,左图为模块内的操作过程,右图是从具体的尺寸大小变化展示的。
       Inception-v3总结及部分Inception-v2原理讲解_第5张图片
3.模型总体结构
  最终的44层的模型结构如表,其中figure5代表的是使用2个33卷积层代替1个55卷积层的改进了的Inception-v2模块,figure6代表将1717尺寸的feature map输入后使用17卷积层接71卷积层替代77卷积层的Inception-v3模块。与之前的GoogLeNet不同的是,网络开始时的77卷积层用3个33的卷积层代替,同时输入尺寸从2242243变成了2992993。该模型和GoogLeNet都在最后使用了平均池化层来代替全连接层,这样可以在不影响精度的情况下减小模型的大小。
       Inception-v3总结及部分Inception-v2原理讲解_第6张图片
  其中figure7的块结构如下图,只对最粗糙尺寸最小的88的feature map使用。
      Inception-v3总结及部分Inception-v2原理讲解_第7张图片
4.label smoothing
  一般的标签采用的都是one hot编码,已知样本属于某一类别的概率是为1的确定事件,属于其他类别的概率则均为0。但是这样做有两个问题,首先模型学习给每一个样本分配全概率(概率为1)可能导致过拟合现象的发生,其次全概率和0概率的类与其他类差异过大,可能导致模型的泛化性变差。计算公式为如下,当k=y(真实标签)时q为1,否则为0。
              在这里插入图片描述
  采用label smoothing可以有效缓解这个问题,计算公式如下,加入了一个smoothing参数∈,当k=y时计算得到的概率为1-∈,k≠y时概率为∈/K。其中K是一个很小的数,在文中实验中取K=0.001,∈=0.1。
            
四、实验结果
                 表1
         Inception-v3总结及部分Inception-v2原理讲解_第8张图片
  在训练方法中学习率的调整按照的是上周第一篇中效果最好的那种,即初始值设置为0.045,以0.94的指数速率每两个轮次衰减一次。
  表1可以看出,从Inception-v2下面依次为加入RMSProp优化器;使用label smoothing的方法;将第一个7
7的卷积层用3个3*3的卷积层代替以及在辅助分类器的全连接层前也加入BN层。结果表明单独使用每种方法都能提高Inception-v2模型的性能。
表2
       Inception-v3总结及部分Inception-v2原理讲解_第9张图片
  表2为Inception-v3和各种现有的方法进行对比,其中Inception-v3使用了文中所有提出的技巧。从实验结果可以看出其性能最好。

一些总结:理解了Inception第一篇中提到的辅助分类器的作用,即将有效的梯度放到较低的层次,使它们能够快速发挥作用,这样能够在深层网络中解决梯度消失的问题,从而提高训练中模型的收敛性。此外,有研究认为辅助分类器能使模型更稳定地学习且能够更好的收敛。文章中还通过实验发现辅助分类器在训练的早期并没有带来更好的收敛性,但在训练快结束时有辅助分类器的模型性能要高于没有辅助分类器的模型。下图展示了在最后一个1717768的feature map后加入的辅助分类器,实验表明它可以提高一定的模型准确率。
      Inception-v3总结及部分Inception-v2原理讲解_第10张图片

你可能感兴趣的:(CNN基础论文总结)