【深度学习】卷积神经网络中的代表性操作

前言

AlexNet的提出标志着卷积神经网络的再一次兴起,随后出现了很多各式各样的卷积神经网络,每种都有自己的创新之处。这里根据一篇比较好的文章对一些代表操作进行总结,并提出一些自己的想法,总结其中一些创新的思路,以供参考与学习。

代表操作

1、Group convolution

分组卷积首先出现在AlexNet,由于硬件资源有限,卷及操作不能放在同一个GPU,因此将feature maps分给了多个GPU进行处理,最后再把结果融合起来。
这样做的好处是可以大大减少参数量,比如原来input channel和output channel都为256,如果group为8,那么每个group的input和output就都是32,总参数量从256×3×3×256变为8×(32×3×3×32),缩小为原来的1/group。当然,这样的做的结果与原来也不完全一样,原来是所有的input channel经过卷积构成output channel里的一个channel,而现在是1/group个input channel构成一个output channel,最后再结合起来,参数的减少其实连接也是变少了。
或者说,每一组输出的feature maps是以concatenate的方式组合,而不是element-wise add,从而减少了参数量。

2、3×3 convolution

这个之前很多网络都有介绍过,3×3卷积一方面可以避免一些噪声,同时通过等价也可以减少一些计算量,最终你的效果会更好,所以现在很多网络都普遍采用这种方式。

3、Inception

Inception结构不同于传统的CNN进行卷积层的堆叠,而是在同一层使用多种卷积核,以“并联”的方式结合,最终得到更好的特征,不过这也会导致参数量增加,可以通过Bottleneck改进。

4、Bottleneck

Bottleneck即通过1×1卷积首先改变通道数,然后再进行对应的卷积还原到output channel。由于通道数已经被缩小了,所以后面的卷积操作运算量将大大减少,经过实验对性能也没有太大影响。

5、ResNet

ResNet是跨层连接的一个典型代表,解决了当层数加深训练效果变差的问题。其引入的skip connection能够有效解决梯度消失现象,因此残差单元也成为了很多经典的卷积神经网络的基本模块。(具体可以看前面介绍ResNet的博客)

6、DepthWise


一般的卷积操作仔细想想其实是同时考虑了图像区域与通道,其实也可以将通道和空间分开考虑。比如说先对每一个通道进行各自的卷及操作,有多少通道就有多少个filter,得到的feature maps进行标准的1×1跨通道卷积操作。这种操作被称为 “DepthWise convolution” 。这样做不仅可以有很好的准确率表现还能够降低参数量。
举例来说,假设input channel为3,输出通道为256,那么分别的参数量如下:

  • 传统的卷积方式:参数量为3×3×3×256 = 6,912
  • DW操作:参数量为3×3×3 + 3×1×1×256 = 795

可以看到depthwise操作大大降低了参数量。这里我们自然可以想到Bottleneck,其是先进行1×1卷积降低通道数然后再进行一般的卷积操作,depthwise是先卷积然后而1×1控制参数量。前者是大通道数到小通道数,后这是小通道数到大通道数。

7、ShuffleNet

在AlexNet的Group Convolution当中,特征的通道被平均分到不同组里面,最后再通过两个全连接层来融合特征,这样一来,就只能在最后时刻才融合不同组之间的特征,对模型的泛化性是相当不利的。为了解决这个问题,ShuffleNet在每一次层叠这种Group conv层前,都进行一次channel shuffle,shuffle过的通道被分配到不同组当中。进行完一次group conv之后,再一次channel shuffle,然后分到下一层组卷积当中,以此循环。
经过channel shuffle之后,Group conv输出的特征能考虑到更多通道,输出的特征自然代表性就更高。另外,AlexNet的分组卷积,实际上是标准卷积操作,而在ShuffleNet里面的分组卷积操作是depthwise卷积,因此结合了通道洗牌和分组depthwise卷积的ShuffleNet,能得到超少量的参数以及超越MobileNet、媲美AlexNet的准确率!
这个思想我觉得是很好的,Group Convolution尽管降低了参数量,但如果是人为的进行分组很容易影响泛化能力,而随机分组就如同Dropout的感觉,模型就有更多自主学习的空间,从而达到更好的学习效果。

8、SENet

SENet提出了通道Attention,将权重赋予更重要的feature map,先通过Global Average Pooling进行Squeeze,然后FC进行Excitation,最终得到的向量乘到原来的特征上,从而实现特征通道权重的分配。

9、Dilated convolution



一般的卷积的卷积核操作的区域都是相邻的,而空洞卷积操作的区域是有“空洞”的,有种等间隔采样的感觉。这样卷积核的总大小可能比如还是3×3,但是感受野扩大了很多。

10、Deformable convolution


上面的空洞卷积对卷积已经有了比较大的扩展,但卷积核至少还是矩形的。MSRA提出的Deformable convolution更进一步,认为卷积核的形状是可变化的,变形的卷积核能够让它只看感兴趣的图像区域,从而识别出更好的特征。
要做到这个操作,可以直接在原来的过滤器前面再加一层过滤器,这层过滤器学习的是下一层卷积核的位置偏移量(offset),这样只是增加了一层过滤器,或者直接把原网络中的某一层过滤器当成学习offset的过滤器,这样实际增加的计算量是相当少的,但能实现可变形卷积核,识别特征的效果更好。

总结

看到这么做巧妙的操作可以总结的地方还是很多的。我们从操作的目标来看,无非是减少参数量和增大特征提取效果。其创新之处有也有两个方向,一个是从司空见惯的操作进行改造,打破常规,例如卷积操作为什么非要是完整的矩形?为什么一定要一步完成?或者group convolution的通道为什么要是事先设置好的?网络一层的卷及操作为什么只能有一个?为什么层直接非要相邻的才能连接?另一个则是思考一些新的方法来提取特征,比如Attention,shortcut。
总结一下,这些操作说白了就是为了更快更好地学习特征,而采取的方式要么是打破常规要么则是设计一些新的结构来弥补损失的信息,提高特征提取能力。这既需要有挑战常规的思维也需要有实践的与经验的验证。

参考资料

https://mp.weixin.qq.com/s/ky52jO92jsRZ9qpkcUmxEA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值