基于Paddle的计算机视觉入门教程——第8讲 常用的卷积结构

B站教程地址

https://www.bilibili.com/video/BV18b4y1J7a6/

残差结构

残差网络在2015年,由何凯明等四位中国深度学习研究者在论文《Deep Residual Learning for Image Recognition》提出,极大地提高了卷积神经网络在图像领域的精度。残差网络中反复使用到了残差结构,这种结构在之后的新型网络中被反复使用

为什么会提出这种结构?原因在于,更加深层的卷积网络往往更能提取出图像的特征,而且拟合能力更强,这样的深层网络给训练带来了很大的困难。网络层数越深,SGD优化梯度变得更困难,很容易出现梯度为0或者梯度爆炸的情况。残差网络很好地解决了这个问题。

残差结构的通用形式如上图,输入X分成两路,一路不经过任何的操作(shortcut),另外一路经过相应的权重层和激活函数(residual),最后将这两路直接相加,再经过一个激活函数输出结果。

可以看到残差结构有一个明显的特征就是有一条捷径什么都不做,直接和另一路相加。相当于将原始图像和处理后图像进行了特征融合,而且解决了难以训练的问题。这个简单的加法并不会给网络增加额外的参数和计算量,却可以大大增加模型的训练速度、提高训练效果。

作者提出了两种具体的实现方式:

左图对应输入通道为64时,用两个(3,3)的卷积,中间不改变通道数,最后相加激活得到输出。右图对应于输入通道为256时,先用一个(1,1)的卷积把通道数缩小为1/4,然后在这个通道数上进行(3,3)的卷积,最后再经过一个(1,1)的卷积改为原通道,然后相加激活的到输出。

ResNet34中使用的是左图的残差结构,ResNet50/101/152使用的是右图的残差结构。

深度可分离卷积

深度可分离卷积也是一个非常常用的卷积结构,特别是在轻量化的卷积网络中应用广泛。它的结构如下图:

对于一个输入矩阵,我先用一个(3,3)的卷积,各个通道不相加,这个过程其实就是分组卷积分组的个数等于输入通道数,之后再用(1,1)的卷积改变输出通道数

可以明显地看出,深度可分离卷积极大地降低了卷积的参数量,这一大有点也就意味着这种卷积结构非常适合应用于轻量化的网络中。例如Google团队开发的MobileNet网络。其中就用到了很多这样的结构。

MobileNetV2中先用(1,1)的卷积改变通道数,对于这个输出用深度可分离卷积,最后也使用了残差结构,有一个相加的部分。和原始残差结构不同的是,原始残差结构中间通道数最小,两头大MobileNet中间通道数大,两头小。这种结构也叫做反残差

注意力机制

注意力机制是当前研究的热点问题,这里我们介绍最简单的SE注意力机制。SE注意力机制把目光放在了通道之间的关系上,之前所有的所有运算,对于所有通道数都是一视同仁的SE注意力机制希望模型可以自动学习到不同channel特征的重要程度,因为很显然各个通道间所包含特征的重要程度是不一样的。它的结构如下:

通过一个全局平局池化层,将输入大小压缩成1,通道数不变,我们对这个1维的矩阵做激励,这样得到一个一维的矩阵,相当于是各个通道的权重,将这个激励和原输入相乘,就得到了一个通道重要程度不同的输出。这样就区分出了各个通道的重要性。

原始SE注意力机制的压缩激励如下:

激励部分使用两个全连接层,使用的激活函数为rulesigmoid,之后和输入相乘即可。

ResNetMobileNet使用注意力机制之后,精度都得到了相应的提升。

ResNet中的SE注意力机制放在了(1,1)卷积之后,激励部分使用的是全连接层。MobileNetV3中SE注意力机制放在了(1,1)卷积之前,并且激励部分使用的是卷积层

参考资料

https://arxiv.org/abs/1512.03385

https://arxiv.org/abs/1905.02244

https://arxiv.org/abs/1709.01507

https://blog.csdn.net/qq_42617455/article/details/108165206

https://machinethink.net/blog/mobilenet-v2/

https://mp.weixin.qq.com/s?__biz=MzA5ODEzMjIyMA==&mid=2247496109&idx=1&sn=a7a6558b086266c062925600e3e71394&source=41#wechat_redirect

猜你喜欢

转载自blog.csdn.net/weixin_45747759/article/details/122651884
今日推荐