qianqian神经网络 神经网络inception_神经网络分类图片和文字


qianqian神经网络 神经网络inception_卷积_02


下图给出了网络的层次结构和参数,其中:

  • type 列:给出了每个模块/层的类型。
  • patch size/stride 列:给出了卷积层/池化层的尺寸和步长。
  • output size 列:给出了每个模块/层的输出尺寸和输出通道数。
  • depth列:给出了每个模块/层包含的、含有训练参数层的数量。
  • #1x1列:给出了每个模块/层包含的1x1 卷积核的数量,它就是1x1 卷积核的输出通道数。
  • #3x3 reduce列:给出了每个模块/层包含的、放置在3x3 卷积层之前的1x1 卷积核的数量,它就是1x1 卷积核的输出通道数。
  • #3x3列:给出了每个模块/层包含的3x3 卷积核的数量,它就是3x3 卷积核的输出通道数。
  • #5x5 reduce列:给出了每个模块/层包含的、放置在5x5 卷积层之前的1x1 卷积核的数量,它就是1x1 卷积核的输出通道数。
  • #5x5列:给出了每个模块/层包含的5x5 卷积核的数量,它就是5x5卷积核的输出通道数。
  • pool proj列:给出了每个模块/层包含的、放置在池化层之后的1x1 卷积核的数量,它就是1x1 卷积核的输出通道数。
  • params列:给出了每个模块/层的参数数量。
  • ops列:给出了每个模块/层的计算量。


qianqian神经网络 神经网络inception_卷积核_03


Inception V1 的参数数量为 697.7 万,其参数数量远远小于AlexNet(6千万)、VGG-Net(超过1亿)。

Inception V1 参数数量能缩减的一个主要技巧是:在inception(5b)输出到linear之间插入一个平均池化层avg pool。

  • 如果没有平均池化层,则inception(5b) 到 linear 之间的参数数量为:7x7x1024x1024,约为 5 千万。
  • 插入了平均池化层之后,inception(5b) 到 linear 之间的参数数量为:1x1x1024x1024,约为 1百万。

Inception 模块

  1. 原始的Inception 模块对输入同时执行:3个不同大小的卷积操作(1x1、3x3、5x5)、1个最大池化操作(3x3 )。所有操作的输出都在深度方向拼接起来,向后一级传递。
  • 三种不同大小卷积:通过不同尺寸的卷积核抓取不同大小的对象的特征。
  • 使用1x1、3x3、5x5 这些具体尺寸仅仅是为了便利性,事实上也可以使用更多的、其它尺寸的滤波器。
  • 1个最大池化:提取图像的原始特征(不经过过滤器)。


qianqian神经网络 神经网络inception_qianqian神经网络_04


原始Inception 模块中,模块的输出通道数量为四个子层的输出通道数的叠加。这种叠加不可避免的使得Inception 模块的输出通道数增加,这就增加了Inception 模块中每个卷积的计算量。因此在经过若干个模块之后,计算量会爆炸性增长。

解决方案是:在3x3 和 5x5 卷积层之前额外添加1x1 卷积层,来限制输入给卷积层的输入通道的数量。

注意:

  • 1x1 卷积是在最大池化层之后,而不是之前。这是因为:池化层是为了提取图像的原始特征,一旦它接在1x1 卷积之后就失去了最初的本意。
  • 1x1 卷积在3x3、5x5 卷积之前。这是因为:如果1x1 卷积在它们之后,则3x3 卷积、5x5 卷积的输入通道数太大,导致计算量仍然巨大。


qianqian神经网络 神经网络inception_池化_05


辅助分类器

  1. 为了缓解梯度消失的问题,InceptionNet V1 给出了两个辅助分类器。这两个辅助分类器被添加到网络的中间层,它们和主分类器共享同一套训练数据及其标记。其中:
  • 第一个辅助分类器位于Inception(4a) 之后,Inception(4a) 模块的输出作为它的输入。

  • 第二个辅助分类器位于Inception(4d) 之后,Inception(4d) 模块的输出作为它的输入。

  • 两个辅助分类器的结构相同,包括以下组件:
  • 一个尺寸为5x5、步长为3的平均池化层。
  • 一个尺寸为1x1、输出通道数为128 的卷积层。
  • 一个具有1024 个单元的全连接层。
  • 一个drop rate = 70%的 dropout 层。
  • 一个使用softmax 损失的线性层作为输出层。
  1. 在训练期间,两个辅助分类器的损失函数的权重是0.3,它们的损失被叠加到网络的整体损失上。在推断期间,这两个辅助网络被丢弃。
  2. 在Inception v3 的实验中表明:辅助网络的影响相对较小,只需要其中一个就能够取得同样的效果。
  3. 事实上辅助分类器在训练早期并没有多少贡献。只有在训练接近结束,辅助分支网络开始发挥作用,获得超出无辅助分类器网络的结果。
  4. 两个辅助分类器的作用:提供正则化的同时,克服了梯度消失问题。