卷积层的主要作用_【基础积累】1x1卷积到底有哪些用处?

1x1卷积在卷积神经网络中起到跨通道信息整合、降维/升维以及增加非线性等关键作用。通过线性组合不同通道的信息,它能调控深度,实现网络的结构优化,同时在不损失分辨率的情况下增强网络的表达能力。
摘要由CSDN通过智能技术生成

关注上方深度学习技术前沿,选择“星标公众号”

资源干货,第一时间送达!b5f3ace45476d9edb7c1406004ac40a7.png

820dd0ab4ace4f7d646df2286e431860.png

  【导读】 前面我们已经详细介绍了卷积神经网络中的卷积层、池化层以及相应的参数计算,详细内容请见:干货|最全面的卷积神经网络入门教程。 本篇文章我们就来一起讨论一下,1x1卷积核的作用到底有哪些?1x1卷积核最先是在Network In Network(NIN)中提出的,这个方法也在后面比较火的方法,如 googLeNet、ResNet、DenseNet ,中得到了非常广泛的应用。特别是在 googLeNet 的Inception中,发挥的淋漓尽致。
1x1卷积核

如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。

87ff8de60cac9fbc3e22ed0935e9cf85.gif

1x1卷积核的作用

1x1卷积的作用可以总结为以下三点:

  • 可以实现信息的跨通道整合和交互

  • 具有降维和升维的能力,减少网络参数。这里的维度指的是卷积核通道数(厚度),而不改变图片的宽和高。

  • 在保持feature map 尺寸不变(即不损失分辨率)的前提下大幅增加非线性特性,既可以把网络做得很deep,也可以提升网络的表达能力

跨通道信息交互(channel)

例子:使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64channels的卷积核后面添加一个1x1,28channels的卷积核,就变成了3x3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window

降维/升维

在卷积神经网络中,channels 的含义一般是指每个卷积层中卷积核的数量。

1×1卷积核并不会改变 height 和 width,改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里通常都称之为升维、降维。而且改变的只是 height × width × channels 中的 channels 这一个维度的大小而已。

979b68e30ee0a904a71b4c103baad095.png

这里我们以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,

而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了:1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。

同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量,(feature map尺寸指W、H是共享权值的sliding window,feature map 的数量就是channels)

左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大。

而右图在pooling后面加了通道为32的1×1卷积,使得输出的feature map数降到了256。GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)

c3cad57da795249c57f306a7e03b9d40.png

增加非线性

在CNN里的卷积大都是多通道的feature map和多通道的卷积核之间的操作(输入的多通道的feature map和一组卷积核做卷积求和得到一个输出的feature map),如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。

备注:一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。

参考链接:

  1. https://blog.csdn.net/u014114990/article/details/50767786

  2. http://www.caffecn.cn/?/question/136

  3. https://www.zhihu.com/question/56024942

  4. https://blog.csdn.net/sscc_learning/article/details/79863922

  5. https://zhuanlan.zhihu.com/p/40050371


推荐阅读

(点击标题可跳转阅读)

  • 干货|最全面的卷积神经网络入门教程
  • 一文详解深度学习中的Normalization:BN/LN/WN
  • 【卷积神经网络结构专题】一文详解LeNet(附代码实现)
  • 【最新综述】轻量级神经网络架构综述
  • 【汇总】一大波CVPR2020开源项目重磅来袭!

重磅!深度学习技术前沿-微信群已成立

扫码添加群助手可申请加入 深度学习技术前沿 微信群,旨在交流深度学习方面的学习、科研、工程项目等内容,其中研究方向主要包括:图像识别、图像分类、目标检测、图像分割、人脸识别、模型剪枝与压缩、自然语言处理、知识图谱、强化学习、NAS、GAN等。并且还会第一时间在群中分享一线大厂求职内推资料。

一定要备注:研究方向+学校/公司+姓名(如图像分割+浙大+李四),按照格式备注,可更快被通过且邀请进群。(广告商、博主请绕道!)

182918a3cf5a20d9d4af8a32b142219d.png

长按识别,即可加群

51c83c9739fbc8add65b220e7a24885c.png

长按识别,即可关注

原创不易,在看鼓励!比心哟!f5ba14b9338ca16f1c276369002fd99d.png

35c05828f6bbbd3ac83e81bc825bf13d.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值