CNN中,1X1卷积核到底有什么作用呢?

Question

从NIN 到Googlenet mrsa net 都是用了这个,为什么呢?

发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得,1X1卷积核就是对输入的一个比例缩放,因为1X1卷积核只有一个参数,这个核在输入上滑动,就相当于给输入数据乘以一个系数。不知道我理解的是否正确。

Answer

[ruirui_ICT]:我来说说我的理解,我认为1×1的卷积大概有两个方面的作用吧:

1、实现跨通道的交互和信息整合 2、进行卷积核通道数的降维和升维

下面详细解释一下:

1、这一点孙琳钧童鞋讲的很清楚。1×1的卷积层(可能)引起人们的重视是在NIN的结构中,论文中林敏师兄的想法是利用MLP代替传统的线性卷积核,从而提高网络的表达能力。文中同时利用了跨通道pooling的角度解释,认为文中提出的MLP其实等价于在传统卷积核后面接cccp层,从而实现多个feature map的线性组合,实现跨通道的信息整合。而cccp层是等价于1×1卷积的,因此细看NIN的caffe实现,就是在每个传统卷积层后面接了两个cccp层(其实就是接了两个1×1的卷积层)。

2、进行降维和升维引起人们重视的(可能)是在GoogLeNet里。对于每一个Inception模块(如下图),原始模块是左图,右图中是加入了1×1卷积进行降维的。虽然左图的卷积核都比较小,但是当输入和输出的通道数很大时,乘起来也会使得卷积核参数变的很大,而右图加入1×1卷积后可以降低输入的通道数,卷积核参数、运算复杂度也就跟着降下来了。

以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数量,左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大。而右图在pooling后面加了通道为32的1×1卷积,使得输出的feature map数降到了256。GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)。

最近大热的MSRA的ResNet同样也利用了1×1卷积,并且是在3×3卷积层的前后都使用了,不仅进行了降维,还进行了升维,使得卷积层的输入和输出的通道数都减小,参数数量进一步减少,如下图的结构。(不然真不敢想象152层的网络要怎么跑起来TAT)

Comment:

[孙琳钧 ]:对于单通道的feature map和单个卷积核之间的卷积来说,题主的理解是对的,CNN里的卷积大都是多通道的feature map和多通道的卷积核之间的操作(输入的多通道的feature map和一组卷积核做卷积求和得到一个输出的feature map),如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。接在普通的卷积层的后面,配合激活函数,就可以实现network in network的结构了.

[shiorioxy]:还有一个重要的功能,就是可以在保持feature map 尺寸不变(即不损失分辨率)的前提下大幅增加非线性特性,把网络做得很deep。

[月光里的阳光ysu]:对于两位在解答中说的1X1卷积核能够对多个feature map实现线性组合。我的个人理解是不是和全局平均池化类似,只不过一个是求feature map的平均值,一个是线性组合?

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-11-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能算法

集成学习算法----Adaboost

1. Adaboost 算法思想 AdaBoost 是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构...

3298
来自专栏机器学习原理

机器学习(13)——adaboostAdaboost

前言:下面介绍另外一种集成算法思想—boosting,提升学习(Boosting)是一种机器学习技术,可以用于回归和分类的问题,它 每一步产生弱预测模型(如决策...

3336
来自专栏AI科技评论

干货 | 深度学习时代的目标检测算法

AI 科技评论按:本文作者 Ronald,首发于作者的知乎专栏「炼丹师备忘录」,AI 科技评论获其授权转发。 目前目标检测领域的深度学习方法主要分为两类:two...

5257
来自专栏PaddlePaddle

解析卷积神经网络——数据扩充

《解析卷积神经网络——深度学习实践手册》基础理论篇部分已经更新完毕,从今天开始更新实践应用篇,正文部分为数据扩充篇目的知识

1053
来自专栏目标检测和深度学习

综述:深度学习时代的目标检测算法

来源:https://zhuanlan.zhihu.com/p/33277354 目前目标检测领域的深度学习方法主要分为两类:two stage的目标检测算法;...

3925
来自专栏应用案例

机器学习三人行-手写数字识别实战

前面三个系列我们分别从机器学习入门,洞悉数据,已经数据预处理,回归建模等方面进行了系统的学习。 今天我们根据mnist手写数字的数据集来对0-9共10个数字进行...

2285
来自专栏AI研习社

训练深度神经网络的必知技巧,你知道哪些?

本文将主要介绍 8 种深度神经网络实现细节的技巧或 tricks,包括:数据增广、图像预处理、网络初始化、训练过程中的技巧、激活函数的选择、不同正则化方法、来自...

3095
来自专栏目标检测和深度学习

深度学习时代的目标检测综述

1241
来自专栏机器之心

深度 | L2正则化和对抗鲁棒性的关系

两个高维聚类由一个超平面分离,考虑超平面和图中水平线之间的夹角,在线性分类中,这个夹角取决于 L2 正则化的程度,你知道为什么吗?上图:L2 正则化程度较小;下...

1281
来自专栏机器之心

CVPR2018 | 海康、UCLA、北理联合提出3D DescriptorNet:可按条件生成3D形状,克服模式崩溃

选自arXiv 作者:Jianwen Xie等 机器之心编译 参与:Huiyuan Zhuo、刘晓坤 近日,海康威视、UCLA、北理工联合提出了新的模型 3D ...

32911

扫码关注云+社区