CNN中,1X1卷积核到底有什么作用呢?
https://www.cnblogs.com/DicksonJYL/p/9617328.html
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的平均值,一个是线性组合?
CNN中,1X1卷积核到底有什么作用呢?相关推荐
- CNN 中1X1卷积核的作用
转载自: http://blog.csdn.net/u014696921/article/details/52950247 http://www.caffecn.cn/?/question/136 从 ...
- 【深度学习】CNN 中 1x1 卷积核的作用
最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前接触过的教材的例子中最小的卷积核是 3x3 , ...
- python 图像卷积_[卷积神经网络(CNN)中的卷积核到底是如何提取图像特征的(python实现图像卷积运算)]...
1.前言 我们知道,卷积核(也叫滤波器矩阵)在卷积神经网络中具有非常重要的作用.说白了,CNN主要作用在于提取图像的各种特征图(feature maps). CNN主要是通过卷积运算来完成特征提取的. ...
- CNN中的卷积核及TensorFlow中卷积的各种实现
声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...
- 为什么CNN中的卷积核一般都是奇数?
本博客只用于自身学习,如有错误,虚心求教!!! 为什么CNN中的卷积核一般都是奇奇数*奇数,没有偶数*偶数的? 咱们经常见到的多为 3 * 3.5*5;怎么从来没有见过 4*4,6*6 之类的卷积核? ...
- 为什么CNN中的卷积核一般都是奇数
本博客只用于自身学习,如有错误,虚心求教!!! 为什么CNN中的卷积核一般都是奇奇数*奇数,没有偶数*偶数的? 咱们经常见到的多为 3 * 3.5*5;怎么从来没有见过 4*4,6*6 之类的卷积核? ...
- CNN中的maxpool到底是什么原理?
2019独角兽企业重金招聘Python工程师标准>>> http://www.techweb.com.cn/network/system/2017-07-13/2556494.sht ...
- 网络工程中,VLAN到底有什么作用?
什么是VLAN呢? VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术. 在IEEE802.1Internetwork ...
- 卷积核_漫画:卷积神经网络中的卷积核到底是什么?
卷积计算的直观体现 如上所示,一张汽车图片经过了多次卷积操作,一开始卷积在提取低层次的特征(检测边缘),然后逐渐提取高层次的特征(完整的物体) 不同的卷积探测器 我们可以看到同一张图片经过不同的卷积核 ...
最新文章
- python 字典代码_Python 字典(Dictionary)
- 小学计算机考查方案,宋家塘街道中心学校2020年理化生实验操作和信息技术考试方案...
- Angular2学习笔记——在子组件中拿到路由参数
- IDEA(2018版)实用快捷键整理
- FuelPHP 系列(三) ------ Model 模型
- Spring Boot 知识笔记(集成zookeeper)
- 如何清空Python的List
- 【水果蔬菜识别】基于matlab GUI形态学水果蔬菜识别【含Matlab源码 919期】
- k3 设置 虚拟服务器,k3设置服务器映射功能
- html 打印 使用模板,HTML针式打印机打印模板
- Linux 打包压缩(tar、gzip、bzip、xz)备份(备份dump genisoimage 还原restore)
- 为防泄密 新加坡政府将断掉公务员的网络连接
- 史上最详细最易懂的EventBus源码解析
- 华为鸿蒙系统有没有畅玩7c,华为荣耀畅玩7C有什么新功能
- 西门子840d高级编程手册_斯沃系统手册--西门子高级编程手册_840D_810Di_810D_FM_NC高级篇.pdf...
- canvas绘制刮刮卡,超过一定面积显示全图
- 方舟服务器怎么请求芯片,方舟指令哔哩芯片这么获得?哔哩芯片获得方法详解分享...
- Blockathon2018(上海)顺利结束,9个项目打开区块链落地新思路
- 求最短路径 —— 弗洛伊德算法
- 关于圣经的十大误解 Top 10 Misconceptions About The Bible
热门文章
- I210网卡LINUX的mac,linux i210 网卡驱动解读
- Jenkins部署SpringBoot应用到远程服务器
- Android学习第一书
- 基于深度学习和迁移学习的识花实践
- 生成对抗网络学习笔记5----DCGAN(unsupervised representation learning with deep convolutional generative adv)的实现
- 基于 TensorFlow 在手机端实现文档检测
- 零知识证明实践教程,第二部分
- 威斯康辛大学《机器学习导论》2020秋季课程完结,课件、视频资源已开放(附下载)...
- 独家 | 一文读懂Corda分布式记账技术
- 手把手教你用python抢票回家过年 !(附代码)