分组卷积计算量_计算机视觉知识点汇总(1)

分组卷积计算量_计算机视觉知识点汇总(1)_第1张图片

1×1卷积旨在对每个空间位置的D维向量做一个相同的线性变换。通常用于增加非线性,或降维,这相当于在通道数方向上进行了压缩。1×1卷积是减少网络计算量和参数的重要方式


池化层根据特征图上的局部统计信息进行下采样,在保留有用信息的同时减少特征图的大小。和卷积层不同的是,池化层不包含需要学习的参数。最大池化(max-pooling)在一个局部区域选最大值作为输出,而平均池化(average pooling)计算一个局部区域的均值作为输出。局部区域池化中最大池化使用更多,而全局平均池化(global average pooling)是更常用的全局池化方法。
池化层的作用主要有以下三点作用。1. 增加特征平移不变性。池化可以提高网络对微小位移的容忍能力。2. 减小特征图大小。池化层对空间局部区域进行下采样,使下一层需要的参数量和计算量减少,并降低过拟合风险。3. 最大池化可以带来非线性。这是目前最大池化更常用的原因之一。近年来,有人使用步长为2的卷积层代替池化层。而在生成式模型中,有研究发现,不使用池化层会使网络更容易训练。


up-sampling 和 pooling layer 的设计缺点:1、不可学习。2、内部数据结构丢失;空间层级化信息丢失。3、小物体信息无法重建 (假设有四个pooling layer 则 任何小于 2^4 = 16 pixel 的物体信息将理论上无法重建。)


GoogLeNet ILSVRC 2014的冠军网络。GoogLeNet试图回答在设计网络时究竟应该选多大尺寸的卷积、或者应该选汇合层。其提出了Inception模块,同时用1×1、3×3、5×5卷积和3×3汇合,并保留所有结果。GoogLeNet的关键点是:(1)多分支分别处理,并级联结果。(2)为了降低计算量,用了1×1卷积降维。GoogLeNet使用了全局平均池化替代全连接层,使网络参数大幅减少。


Inception v3/v4在GoogLeNet的基础上进一步降低参数。其和GoogLeNet有相似的Inception模块,但将7×7和5×5卷积分解成若干等效3×3卷积,并在网络中后部分把3×3卷积分解为1×3和3×1卷积。这使得在相似的网络参数下网络可以部署到42层。此外,Inception v3使用了批量归一层。Inception v3是GoogLeNet计算量的2.5倍,而错误率较后者下降了3%。Inception v4在Inception模块基础上结合了residual模块(resnet),进一步降低了0.4%的错误率。


Xception作为Inception v3的改进,主要是在Inception v3的基础上引入了depthwise separable convolution,在基本不增加网络复杂度的前提下提高了模型的效果。引入depthwise separable convolution没有大大降低网络的复杂度?因为depthwise separable convolution在mobileNet中主要就是为了降低网络的复杂度而设计的。原因是作者加宽了网络,使得参数数量和Inception v3差不多,然后在这前提下比较性能。因此Xception目的不在于模型压缩,而是提高性能。


ResNet的关键点是:(1)使用短路连接,使训练深层网络更容易,并且重复堆叠相同的模块组合。(2)ResNet大量使用了批量归一层。(3)对于很深的网络(超过50层),ResNet使用了更高效的瓶颈(bottleneck)结构。ResNet在ImageNet上取得了超过人的准确率。

分组卷积计算量_计算机视觉知识点汇总(1)_第2张图片

ResNeXt是resnet的改进,取名意为‘下一代resnet’,性能增加的同时也带来计算开销的增大。其关键在于:

1、沿用resnet的短路连接且堆叠相同的模块。2、仿照googLenet在模块种使用多分枝处理。3、使用1x1卷积核来降低计算量,巧妙利用分组卷积。4、增加分支数是比加深或加宽更有效地提升网络性能的方式。

分组卷积计算量_计算机视觉知识点汇总(1)_第3张图片

DenseNet 也是由许多residual模块组成的,与resnet不同之处在于,DenseNet每两个模块都使用了短路连接,其目的也是为了避免训练过程中的梯度消失。DenseNet中卷积层的滤波器数很少,也是为了减少参数量。DenseNet只用ResNet一半的参数即可达到ResNet的性能。但是直接将输出级联会占用很大GPU存储,因此会增加网络的训练时间。

分组卷积计算量_计算机视觉知识点汇总(1)_第4张图片

分组卷积 将特征图和卷积分别分组,组和组之间一一对应计算,作用是减少参数量,有时候可以起到正则化的效果,如下图所示。

分组卷积计算量_计算机视觉知识点汇总(1)_第5张图片

深度可分离卷积包含深度卷积和逐点卷积,深度可分离卷积可以减少参数,一定程度上提高速度。

深度卷积Depthwise Convolution的大概意思是特征图的一个通道对应一个卷积核进行计算所以深度卷积不改变图像的通道数量,但是并没有有效的利用不同通道在相同空间位置上的feature信息。

分组卷积计算量_计算机视觉知识点汇总(1)_第6张图片

因此需要逐点卷积Pointwise Convolution来将这些Feature map进行组合生成新的Feature map;逐点卷积主要用来对通过深度卷积计算后的特征图进行扩充通道,使用1x1卷积核,所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。

分组卷积计算量_计算机视觉知识点汇总(1)_第7张图片

空洞卷积(dilated convolution)虽然在参数不变的情况下保证了更大的感受野,但是对于一些很小的物体,本身就不要那么大的感受野来说,这是嫉妒不友好的。空洞卷积和Pooling最大的区别在于,空洞卷积保持了特征图相对的空间位置,而pooling会引入平移不变性,这就是抽象和具体之间的矛盾。分类模型需要平移不变性来保证抽象不因空间位置的改变而发生改变,但分割则要求像素精确保持空间相对位置不变,属于具体精细的任务。下面两张图就可以很好地理解什么是空洞卷积。

分组卷积计算量_计算机视觉知识点汇总(1)_第8张图片
普通卷积

分组卷积计算量_计算机视觉知识点汇总(1)_第9张图片
空洞卷积

随机深度 ResNet的改进。旨在缓解梯度消失和加速训练。类似于随机失活(dropout),其以一定概率随机将residual模块失活。失活的模块直接由短路分支输出,而不经过有参数的分支。在测试时,前馈经过全部模块。随机深度说明residual模块是有信息冗余的。


SENet ILSVRC 2017的冠军网络。SENet通过额外的分支(gap-fc-fc-sigm)来得到每个通道的[0, 1]权重,自适应地校正原各通道激活值响应。以提升有用的通道响应并抑制对当前任务用处不大的通道响应。

分组卷积计算量_计算机视觉知识点汇总(1)_第10张图片

你可能感兴趣的:(分组卷积计算量)