卷积神经网络中用1*1 卷积有什么作用或者好处呢?
点击上方“视学算法”,选择加"星标"或“置顶”
重磅干货,第一时间送达
来自 | 知乎
作者 | 陈运锦
地址 | https://www.zhihu.com/question/56024942
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
目录:
part I :来源
part II :应用
part III :作用(降维、升维、跨通道交互、增加非线性)
part IV :从fully-connected layers的角度理解
一、来源:[1312.4400] Network In Network (如果1×1卷积核接在普通的卷积层后面,配合激活函数,即可实现network in network的结构)
二、应用:GoogleNet中的Inception、ResNet中的残差模块
三、作用:
1、降维(减少参数)
例子1 : GoogleNet中的3a模块
输入的feature map是28×28×192
1×1卷积通道为64
3×3卷积通道为128
5×5卷积通道为32
左图卷积核参数:192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072
右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了:
192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184
同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量(feature map尺寸指W、H是共享权值的sliding window,feature map 的数量就是channels)
左图feature map数量:64 + 128 + 32 + 192(pooling后feature map不变) = 416 (如果每个模块都这样,网络的输出会越来越大)
右图feature map数量:64 + 128 + 32 + 32(pooling后面加了通道为32的1×1卷积) = 256
GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)
例子2:ResNet中的残差模块
假设上一层的feature map是w*h*256,并且最后要输出的是256个feature map
左侧操作数:w*h*256*3*3*256 =589824*w*h
右侧操作数:w*h*256*1*1*64 + w*h*64*3*3*64 +w*h*64*1*1*256 = 69632*w*h,,左侧参数大概是右侧的8.5倍。(实现降维,减少参数)
2、升维(用最少的参数拓宽网络channal)
例子:上一个例子中,不仅在输入处有一个1*1卷积核,在输出处也有一个卷积核,3*3,64的卷积核的channel是64,只需添加一个1*1,256的卷积核,只用64*256个参数就能把网络channel从64拓宽四倍到256。
3、跨通道信息交互(channal 的变换)
例子:使用1*1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3*3,64channels的卷积核后面添加一个1*1,28channels的卷积核,就变成了3*3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。
注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window
4、增加非线性特性
1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。
备注:一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。
四、从fully-connected layers的角度来理解1*1卷积核
将其看成全连接层
左边6个神经元,分别是a1—a6,通过全连接之后变成5个,分别是b1—b5
左边6个神经元相当于输入特征里面的channels:6
右边5个神经元相当于1*1卷积之后的新的特征channels:5
左边 W*H*6 经过 1*1*5的卷积核就能实现全连接
In Convolutional Nets, there is no such thing as “fully-connected layers”. There are only convolution layers with 1x1 convolution kernels and a full connection table– Yann LeCun
参考:https://iamaaditya.github.io/2016/03/one-by-one-convolution/
点个在看 paper不断!
卷积神经网络中用1*1 卷积有什么作用或者好处呢?相关推荐
- 收藏 | 卷积神经网络中用1*1 卷积有什么作用或者好处呢?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:来自 | ...
- 卷积神经网络(一)- 卷积神经网络
本次学习笔记主要记录学习深度学习时的各种记录,包括吴恩达老师视频学习.花书.作者能力有限,如有错误等,望联系修改,非常感谢! 卷积神经网络(一)- 卷积神经网络 一.计算机视觉(Computer vi ...
- NNDL 实验六 卷积神经网络(1)卷积
文章目录 前言 第5章 卷积神经网络 一.5.1 卷积 5.1.1 二维卷积运算 5.1.2 二维卷积算子 5.1.3 二维卷积的参数量和计算量 5.1.4 感受野 5.1.5 卷积的变种 5.1.5 ...
- 最细! 卷积神经网络的历史和 各层的作用
目录 一 历史发展 二 卷积层 2.1 卷积层的作用 2.1.1提取图像的特征 2.1.2 局部感知,参数共享 2.1.3 二维卷积运算 2.1.4 特征图和感受野 2.1.5 卷积中的填充和步幅 ...
- 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )
文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...
- DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/H/O/R)、优化技术经验之详细攻略
DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/Hyperparameter/Overfitting/Regularization).优化技术经验之详细攻略 目录 卷 ...
- DL之CNN:卷积神经网络算法简介之卷积矩阵、转置卷积(反卷积Transpose)、膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略
DL之CNN:卷积神经网络算法简介之卷积矩阵.转置卷积(反卷积Transpose).膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略 目录 卷积矩阵的简介 卷积.转置卷积--Tran ...
- 深度学习之卷积神经网络(11)卷积层变种
深度学习之卷积神经网络(11)卷积层变种 1. 空洞卷积 2. 转置卷积 矩阵角度 转置卷积实现 3. 分离卷积 卷积神经网络的研究产生了各种各样优秀的网络模型,还提出了各种卷积层的变种,本节将重点介 ...
- 深度学习之卷积神经网络(3)卷积层实现
深度学习之卷积神经网络(3)卷积层实现 1. 自定义权值 2. 卷积层类 在TensorFlow中,既可以通过自定义权值的底层实现方式搭建神经网络,也可以直接调用现成的卷积层类的高层方式快速搭建复杂 ...
最新文章
- 教程 | Caffe在Windows10系统上安装与配置
- [Android Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)
- pcb天线和纯铜天线_一种2.4GHz水平极化全向天线设计
- 关于RF中类似于异常(TRY语句)情况的处理
- note header initialization discussion
- 谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!
- jq追加html属性,jQuery 操作 HTML 元素和属性的方法
- microsoft visual c++全家桶_“网蓝”盒子咖啡新品来袭!顺德第①桶MINI冰摇咖啡,可以背着逛街...
- fatal: Authentication failed for又不弹出用户名和密码 解决办法
- 安装LR提示缺少vc2005_sp1_with_atl_fix_redist
- PostgreSQL常用的客户端工具
- 使用vscode编辑器,eslint+vuetur+prettier 格式化,自动添加末尾分号的问题。
- vs2003 常见问题及处理
- div实现上下左右居中的方法
- MySQL学习2:表的创建和增删改
- 计算机基础知识--->对张海藩老师所著《软件工程》的这本书的一些知识总结
- 微信开发网页授权认证
- 从FPGA到ACAP,“万能芯片”蝶变转型
- mysql修改初始化得到的密码
- MySQL无法启动并提示file could not be found的解决方法
热门文章
- Camera+销量突破200万 创始人分享成功经验
- Lua bind 和 conf 实现
- 表情的机器自动识别(有图有真相)
- C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...
- 【青少年编程】【四级】创意画图
- 技术图文:浅析 C# Dictionary实现原理
- 【MATLAB】符号数学计算(三):符号的精度计算
- 360的新手机没用AI,用在了车载后视镜上
- PageHelper 使用 ThreadLocal 的线程复用问题
- 字符串拼接还在用StringBuilder?快试试Java8中的StringJoiner吧,真香!