点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

来自 | 知乎

作者 | 陈运锦

地址 | 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*1 卷积有什么作用或者好处呢?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:来自 | ...

  2. 卷积神经网络(一)- 卷积神经网络

    本次学习笔记主要记录学习深度学习时的各种记录,包括吴恩达老师视频学习.花书.作者能力有限,如有错误等,望联系修改,非常感谢! 卷积神经网络(一)- 卷积神经网络 一.计算机视觉(Computer vi ...

  3. NNDL 实验六 卷积神经网络(1)卷积

    文章目录 前言 第5章 卷积神经网络 一.5.1 卷积 5.1.1 二维卷积运算 5.1.2 二维卷积算子 5.1.3 二维卷积的参数量和计算量 5.1.4 感受野 5.1.5 卷积的变种 5.1.5 ...

  4. 最细! 卷积神经网络的历史和 各层的作用

    目录 一 历史发展 二 卷积层 2.1 卷积层的作用 2.1.1提取图像的特征 2.1.2  局部感知,参数共享 2.1.3 二维卷积运算 2.1.4 特征图和感受野 2.1.5 卷积中的填充和步幅 ...

  5. 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )

    文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...

  6. DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/H/O/R)、优化技术经验之详细攻略

    DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/Hyperparameter/Overfitting/Regularization).优化技术经验之详细攻略 目录 卷 ...

  7. DL之CNN:卷积神经网络算法简介之卷积矩阵、转置卷积(反卷积Transpose)、膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略

    DL之CNN:卷积神经网络算法简介之卷积矩阵.转置卷积(反卷积Transpose).膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略 目录 卷积矩阵的简介 卷积.转置卷积--Tran ...

  8. 深度学习之卷积神经网络(11)卷积层变种

    深度学习之卷积神经网络(11)卷积层变种 1. 空洞卷积 2. 转置卷积 矩阵角度 转置卷积实现 3. 分离卷积 卷积神经网络的研究产生了各种各样优秀的网络模型,还提出了各种卷积层的变种,本节将重点介 ...

  9. 深度学习之卷积神经网络(3)卷积层实现

    深度学习之卷积神经网络(3)卷积层实现 1. 自定义权值 2. 卷积层类  在TensorFlow中,既可以通过自定义权值的底层实现方式搭建神经网络,也可以直接调用现成的卷积层类的高层方式快速搭建复杂 ...

最新文章

  1. 教程 | Caffe在Windows10系统上安装与配置
  2. [Android Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)
  3. pcb天线和纯铜天线_一种2.4GHz水平极化全向天线设计
  4. 关于RF中类似于异常(TRY语句)情况的处理
  5. note header initialization discussion
  6. 谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!
  7. jq追加html属性,jQuery 操作 HTML 元素和属性的方法
  8. microsoft visual c++全家桶_“网蓝”盒子咖啡新品来袭!顺德第①桶MINI冰摇咖啡,可以背着逛街...
  9. fatal: Authentication failed for又不弹出用户名和密码 解决办法
  10. 安装LR提示缺少vc2005_sp1_with_atl_fix_redist
  11. PostgreSQL常用的客户端工具
  12. 使用vscode编辑器,eslint+vuetur+prettier 格式化,自动添加末尾分号的问题。
  13. vs2003 常见问题及处理
  14. div实现上下左右居中的方法
  15. MySQL学习2:表的创建和增删改
  16. 计算机基础知识--->对张海藩老师所著《软件工程》的这本书的一些知识总结
  17. 微信开发网页授权认证
  18. 从FPGA到ACAP,“万能芯片”蝶变转型
  19. mysql修改初始化得到的密码
  20. MySQL无法启动并提示file could not be found的解决方法

热门文章

  1. Camera+销量突破200万 创始人分享成功经验
  2. Lua bind 和 conf 实现
  3. 表情的机器自动识别(有图有真相)
  4. C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...
  5. 【青少年编程】【四级】创意画图
  6. 技术图文:浅析 C# Dictionary实现原理
  7. 【MATLAB】符号数学计算(三):符号的精度计算
  8. 360的新手机没用AI,用在了车载后视镜上
  9. PageHelper 使用 ThreadLocal 的线程复用问题
  10. 字符串拼接还在用StringBuilder?快试试Java8中的StringJoiner吧,真香!