inception网络_经典网络模型-inception v1 v2 v3 v4

V1

inception网络_经典网络模型-inception v1 v2 v3 v4_第1张图片
inception v1网络结构图

inception网络_经典网络模型-inception v1 v2 v3 v4_第2张图片

上图是inception的基本结构,一个inception的网络有多个inception module。inception model会将上一层产生的feature map,分别使用1*1、3*3、5*5三种大小的卷积和3*3的最大池化并行生成4个形状相同的feature map,然后将4个feature map进行concatenate拼接作为下一层网络的输入。

为什么可以使用不同大小的卷积和池化生成同一尺度的特征图?

因为是卷积和池化的时候使用的是填充模式是same,步长为1*1,而这种情况下生成的特征图大小不变。

源码中卷积使用的方法conv2d_bn,默认使用padding='same',strides=(1, 1)作为超参

inception网络_经典网络模型-inception v1 v2 v3 v4_第3张图片

inception网络_经典网络模型-inception v1 v2 v3 v4_第4张图片

V2

相对于v1,v2添加了两处改动:

  1. 添加了batch_normalization
  2. 将一个5*5的卷积核变成了两个3*3大小串联的卷积核

V3

  1. 7*7的卷积变成1*7和7*1的串联
  2. 3*3的卷积变成1*3和3*1的串联
  3. 并且将输入图片的大小改为229

为什么可以将大的卷积核改为两个小的卷积核串联的方式?

如下图:感受野范围为5*5,卷积后生成一个特征值,如果使用3*3大小来卷5*5的感受野,会生成一个3*3的特征图,再接一层3*3的卷积,也会生成一个特征值。

同理3*3的卷积也可以分解为1*3和3*1的卷积串联。

而且,将更大的卷积核分成两个小的卷积核串联可以减少参数量,提高训练速度。

inception网络_经典网络模型-inception v1 v2 v3 v4_第5张图片
5*5分解为两个3*3串联

inception网络_经典网络模型-inception v1 v2 v3 v4_第6张图片
3*3分解为1*3和3*1串联

V4

inception v4实际上是把原来的inception加上了resnet(残差网络)的方法,从一个节点能够跳过一些节点直接连入之后的一些节点,并且残差也跟着过去一个。

另外就是V4把一个先1*1再3*3那步换成了先3*3再1*1.

论文说引入resnet不是用来提高深度,进而提高准确度的,只是用来提高速度的。

inception网络_经典网络模型-inception v1 v2 v3 v4_第7张图片

上图就是一个残差单元,在正向传播过程中,x会跳层往下传递,所以在反向传播过程中,也会把梯度跳层往前传,在一定程度上解决了梯度消失或网络退化问题。

你可能感兴趣的:(inception网络)