VGG系列

VGG16相比AlexNet的一个改进如下:

  • 采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。 一个7 x 7的卷积核参数量是 Backbone - 图1

三个3 x 3代替之后参数量是 Backbone - 图2
Backbone - 图3

VGG优缺点
VGG优点

  • VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。
  • 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好:
  • 验证了通过不断加深网络结构可以提升性能。

VGG缺点

  • VGG耗费更多计算资源,并且使用了更多的参数(这里不是3x3卷积的锅),导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。VGG可是有3个全连接层啊!

PS:有的文章称:发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。

ResNet系列

随着网络的加深,一般伴随以下几个问题:

  1. 计算资源的消耗
  2. 模型容易过拟合
  3. 梯度消失/梯度爆炸问题的产生

梯度消失/梯度爆炸问题的产生:因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。对于更普遍的梯度消失问题,可以考虑用ReLU激活函数取代sigmoid激活函数。
解释:
在反向传播过程中需要对参数进行求导,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失
Resnet为了解决这一现象提出了残差结构
ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。

Backbone - 图4
下面是各个网络结构:
Backbone - 图5
对于跳跃结构,当输入与输出的维度一样时,不需要做其他处理,两者相加就可,但当两者维度不同时,输入要进行变换以后去匹配输出的维度,主要经过两种方式,1)用zero-padding去增加维度,2)用1x1卷积来增加维度
主要有两种不同的跳跃结构,使用了不同的卷积核。左边参数要比右边的多很多(快一倍)。所以当网络很深时,用右边的比较好。
Backbone - 图6

Effientnet系列

新的模型缩放方法,它使用一个简单而高效的复合系数来以更结构化的方式放大 CNNs。 不像传统的方法那样任意缩放网络维度,如宽度,深度和分辨率,该论文的方法用一系列固定的尺度缩放系数来统一缩放网络维度。 通过使用这种新颖的缩放方法和 AutoML[5] 技术,作者将这种模型称为 EfficientNets ,它具有最高达10倍的效率(更小、更快)。
探究CNN的深度,宽度,分辨率的这三者的关系平衡从而达到更好的accuracy-efficiency tradeoff。
该论文的工作系统地研究了ConvNet对网络深度、宽度和分辨率这三个维度进行了缩放对网络的影响。
image.png
这里的 Backbone - 图8 都是由一个很小范围的网络搜索得到的常量,直观上来讲, Backbone - 图9 是一个特定的系数,可以控制用于资源的使用量。efficientnet是搜索到的,搜索目标是:

Backbone - 图10
然后以EfficientNet-B0为baseline模型,我们将我们的复合缩放方法应用到它上面,分为两步:

  • STEP 1:我们首先固定 Backbone - 图11 ,假设有相比于原来多了2倍的资源,我们基于等式(2)和(3)先做了一个小范围的搜索,最后发现对于EfficientNet-B0来说最后的值为 Backbone - 图12 ,在 Backbone - 图13 的约束下;
  • STEP 2:接着我们固定 Backbone - 图14 作为约束,然后利用不同取值的 Backbone - 图15 对baseline网络做放大,来获得Efficient-B1到B7;

    MobileNet系列

    mobilenet详解

    mobilenet-v1

    mobilenet-v1整体结构类似与VGG那种直通的结构,没有什么像resnet那样的残差结构,和之前大多数网络不一样的主要有两点:
  1. 采用了depthwise separable convolution来提高网络的计算速度,depthwise separate convolution包含了depthwise convolution和pointwise convolution
  2. 采用了Width Multiplier,Width Multiplier简单来说就是引入一个新的超参数来调节卷积输出的通道数从而更方便的平衡了网络的计算速度和精度。

计算量对比
对于输入feature大小为Backbone - 图16,输出为Backbone - 图17的情况(其中Backbone - 图18为feature分辨率,M和N分别表示输入输出的通道数),对于大小为Backbone - 图19的标准卷积的计算量为
Backbone - 图20
对于大小为Backbone - 图21的depthwise convolution,整个depthwise separable convolution的计算量为
Backbone - 图22

mobilenet-v2

首先v2还是继承了v1的思想,即仍然采用了depthwise separable convolution。
其次文章提出两点结论:

  1. 感兴趣的特征在ReLU之后保持非零,近似认为是线性变换。
  2. ReLU能够保持输入信息的完整性,但仅限于输入特征位于输入空间的低维子空间中。

Shufflenet