卷积核的类型及其作用

2023-11-09

目录

一、堆叠小卷积核

1.为什么要用大卷积核代替小卷积核?

2.为什么堆叠小卷积核参数量要比大卷积核少?

3.输入输出图片通道数一致时堆叠小卷积核参数量才更小

4.感受野计算

二、空洞卷积:能否让固定大小的卷积核看到更大范围的区域?

三、非对称卷积:卷积核一定是正方形吗?

四、深度可分离卷积

五、分组卷积:卷积只能在同一组进行吗?

六、拓展卷积:每层卷积只能用一种尺寸的卷积核吗?

七、通道注意力:通道间的特征都是平等的吗?

八、可变性卷积:卷积核形状一定是矩形吗?

九、总结

1.卷积核方面

2.卷积层通道方面

3.卷积层连接方面


一、堆叠小卷积核

1.为什么要用大卷积核代替小卷积核?

  • 大卷积核
    • 优点:感受域范围大
    • 举例:AlexNet、LeNet等网络都使用了比较大的卷积核,如5×5、11×11
    • 缺点:参数量多:计算量大
  • 小卷积核
    • 优点:参数量少;计算量小;整合三个非线性激活层代替单一非线性激活层,增加模型判别能力
    • 举例:VGG之后
    • 缺点:感受域不足;深度堆叠卷积(也就是堆叠非线性激活),容易出现不可控的因素

2.为什么堆叠小卷积核参数量要比大卷积核少?

  • 设输入尺寸为5×5×10,输出尺寸为1×1×10
    • 参数计算:
      • 1个5×5卷积:5×5×10×10 = 2500
      • 2个3×3卷积:3×3×10×10×2 = 1800
      • 相差约1.4倍
      • 1个7×7卷积:7×7×10×10 = 4900
      • 3个3×3卷积:3×3×10×10×3 = 2700
      • 相差约1.8倍

3.输入输出图片通道数一致时堆叠小卷积核参数量才更小

这是为什么呢?

  • 设输入尺寸为15×15×3,输出尺寸为11×11×64
    • 1个5×5卷积:5×5×3×64 = 4800
    • 2个3×3卷积:3×3×3×64+3×3×64×64 = 38592
    • 相差约8倍
  • 设输入尺寸为11×11×64,输出尺寸为7×7×64
    • 1个5×5卷积:5×5×64×64 = 102400
    • 2个3×3卷积:3×3×64×2 = 1152
    • 相差约88.8倍

        这就是解释了为什么很多网络的第一层使用的都是7×7的大卷积核接受输入图片,因为网络开头使用小卷积核进行下采样参数量会更大。

4.感受野计算

感受野的计算是迭代计算

感受野计算公式:RF_{l+1}=RF_{l}+(kernel\_size-1) \times stride

1个5×5卷积:RF = 5

2个3×3卷积:RF = 3+(3-1)×1 = 5

1个7×7卷积:RF = 7

3个3×3卷积:RF = 3+(3-1)×1+(3-1)×1 = 7

二、空洞卷积:能否让固定大小的卷积核看到更大范围的区域?

        标准的3×3卷积核只能看到对应区域3×3的大小,但是为了能让卷积核看到更大的范围,dilated conv使其成为了可能。pooling下采样操作导致的信息丢失是不可逆的,这不利于像素级任务,用空洞卷积代替pooling的作用(成倍的增加感受野)更适用于语义分割。

        举例:ASPP

        关于空洞卷积感受野的计算请见:空洞卷积

三、非对称卷积:卷积核一定是正方形吗?

将标准3×3卷积分成一个1×3卷积和3×1卷积,在不改变感受野大小的情况下可减少计算量

标准卷积计算量:9×9 = 81次乘法

非对称卷积计算量:3×15+3×9 = 72次乘法

注意:非对称卷积用在分辨率为12-20大小的特征图上效果会比较好

标准卷积与非对称卷积感受野对比

四、深度可分离卷积

五、分组卷积:卷积只能在同一组进行吗?

        组卷积是对输入特征图进行分组,每组分别进行卷积。假设输入特征图的尺寸为C*H*W(12×5×5),输出特征图的数量为N(6)个,如果设定要分成G(3)个groups,则每组的输入特征图数量为C/G(4),每组的输出特征图数量为N/G(2),每个卷积核的尺寸为(C/G)*K*K(4×5×5),卷积核总数仍为N(6)个,每组的卷积核数量为N/G(2),每个卷积核只与其同组的输入特征图进行卷积,卷积核的总参数量为N*(C/G)*K*K,可见,总参数量减少为原来的1/G

        举例:ResNext

        缺点:分组点卷积某个通道仅来自一小部分输入通道,阻止了信息流动,特征表示

 

 

分组卷积能否对通道进行随机分组?        

        为达到特征之间的互相通信,除了采用dense pointwise convolution,还可以使用channel shuffle。如图b所示,就是对group convolution之后的特征图进行“重组”,这样可以保证下面的卷积其输入来自不同的组,因此信息可以在不同组之间流转。图c进一步的展示了这一过程,相当于“均匀的打乱”。

        举例:ShuffleNet

六、拓展卷积:每层卷积只能用一种尺寸的卷积核吗?

        传统的层叠式网络,基本上都是一个个卷积层的堆叠,每层只用一个尺寸的卷积核,例如VGG结构中使用了大量的3×3卷积层。事实上,同一层feature map可以分别使用多个不同尺寸的卷积核以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,为了尽可能的减少参数,一般先用1×1的卷积将特征图映射到隐空间,再在隐空间做卷积

七、通道注意力:通道间的特征都是平等的吗?

        无论是在Inception、DenseNet或者ShuffleNet里面,我们对所有通道产生的特征都是不分权重直接结合的,那为什么要认为所有通道的特征对模型的作用都是相等的呢?一个卷积层中往往有数以千计的卷积核,每个卷积核都对应了特征,于是那么多特征要怎区分?这个方法就是通过学习的方式来自动获取到每个特征通道的重要程度,然后依照计算出来的重要程度去提升有用的特征并抑制对当前任务用处不大的特征

        举例:SENet

八、可变性卷积:卷积核形状一定是矩形吗?

        规则形状的卷积核(比如一般用的正方形3×3卷积)可能会限制特征的提取,如果赋予卷积核形变的特征让网络根据label反传下来的误差自动的调整卷积核的形状适应网络重点关注的感兴趣的区域,就可以提取更好的特征。例如,网络会根据原位置(a),学习一个offset偏移量,得到新的卷积核(b)(c)(d),那么一些特殊情况就会成为这个更泛化的模型的特例,例如图(c)表示从不同尺度物体的识别,图(d)表示旋转物体的识别。

        缺点:由于需要计算卷积核的偏移量,故其参数量会有一定增加。

        举例:该方法多用于目标检测

九、总结

1.卷积核方面

  • 大卷积核用多个小卷积核代替
  • 单一尺寸卷积核用多尺寸卷积核代替
  • 固定形状卷积核趋于使用可变性卷积核
  • 使用1×1卷积核(bottleneck结构)

2.卷积层通道方面

  • 标准卷积用depthwise卷积代替
  • 使用分组卷积
  • 分组卷积后使用channel shuffle
  • 通道加权计算

3.卷积层连接方面

  • 使用skip connection,让模型更深(ResNet)
  • densely connection,使每一层都融合其他层的特征输出(DenseNet)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卷积核的类型及其作用 的相关文章

  • winform相关问题收录

    一 WinForm 代码实现以管理员身份运行 from http www cnblogs com 08shiyan p 3267165 html MY http user qzone qq com 319636886 2 二 winfrom
  • java EasyExcel 的使用

    java 中 excel 的写入和导出使用的是 阿里巴巴的 EasyExcel
  • 解决ES6.6.0开启锁定内存后不能重新,报错“memory locking requested for elasticsearch process but

    错误原因就是我们在配置文件里开启了 bootstrap memory lock true 不需要次需求的话 改成false就好 如果需要开启 按照下面来 亲测可行 root localhost 234 grep Ev etc elastic
  • FreeSwitch学习笔记

    FreeSwitch FreeSwitch应用场景 在线计费 预付费功能 电话路由服务器 语音转码服务器 支持资源优先权和QoS的服务器 多点会议服务器 IVR 语音通知服务器 VoiceMail服务器 PBX应用和软交换 应用层网关 防火
  • 我眼中的全栈工程师

    前言 全栈工程师 一直以来都是软件行业热议的话题 只要提到全栈工程师大家就觉得很高大上 当然也有人直接说万金油而已 往好听说是全栈工程师 综合能力全 但是实际上就是什么都会哪都不精通 有人唾之以鼻 也有人称赞不已 对于许多创业公司来讲 全栈
  • Spring中的JDBC模块

    文章目录 什么是Spring JDBC Spring JDBC的开发步骤 下载 Spring JdbcTemplate 的jar包 导入属性文件 管理数据源对象 在配置文件中创建JdbcTemplate对象 JdbcTemplate 中常用
  • 小程序代理平台怎么选?

    如今 越来越多的企业和组织开始使用小程序来实现其业务 小程序代理平台哪家好 怎么选 这是很多人都在纠结的问题 其实 找小程序代理平台并不难 但是找一家合适的小程序代理平台还是有地方需要注意的 一 小程序代理平台 那么 选择一家合适自己的代理
  • 输出时保留有效数字

    保留3位有效数字 1 C include
  • SQL优化

    1 确认是否建立索引 是否索引失效 原则 没有索引考虑加索引 有索引先看索引建立的是否合理以及尽量避免索引失效 1 1 如果不是业务需要查询所有字段 避免直接select 原因 完全没有走覆盖索引的可能 有可能索引失效 增加了数据传输的开销
  • 求集合的所有子集的算法(C++)

    求集合的所有子集的算法 对于任意集合A 元素个数为n 空集n 0 其所有子集的个数为2 n个 如集合A a b c 其子集个数为8 对于任意一个元素 在每个子集中 要么存在 要么不存在 对应关系是 a gt 1或a gt 0 b gt 1或

随机推荐

  • linux网络摄像头服务器,网络摄像头Logitech和Linux

    我有罗技c310相机 宣称的特点是720p30fps 如果您将相机连接到Windows 则记录与所述720p 30fps完全一致 图片清晰 挑战是将同一个摄像头连接到Orangepi 服务器Armbian 并在其上保存视频文件 相机显示为
  • 区块链:一场始料未及的革命

    当主流媒体还在忙于猜测加密货币价格及其黑市阴谋时 他们已经遗漏了这一切的本质事实 那就是 密码学家们悄然发明了一套全新的技术原型 Unitimes特约作者Haseeb Qureshi在其文章 区块链 一场始料未及的革命 Blockchain
  • Qt-OpenCV学习笔记--图像的腐蚀--erode()

    概述 通过一个特定的结构元素 腐蚀 一个图像 图像腐蚀的过程类似于一个卷积的过程 源图像矩阵A以及结构元素B B在A矩阵上依次移动 每个位置上B所覆盖元素的最小值替换B的中心位置值 即锚点处 完成整个腐蚀的过程 算法通俗理解 其运算过程就是
  • 如何科学进行用户分析?六大方法论了解一下!

    用户研究是用户中心的设计流程中的第一步 它是一种理解用户 将他们的目标 需求与商业宗旨相匹配的理想方法 能够帮助企业定义产品的目标用户群 在用户研究过程中 数据的使用及挖掘是非常重要的 那么 有哪些通用的用户分析方法 如何分析你的用户 本篇
  • verilog 产生16进制递增bin文件

    https verificationacademy com forums systemverilog how do i write binary dump file array my testbench w 写 r 读 a 追加 b 二进制
  • 手把手教你搞定 微信支付 跳出微信支付的坑 (公众号支付,核心代码可以用于小程序支付)

    1 准备工作 设置支付目录 请确保实际支付时的请求目录与后台配置的目录一致 否则将无法成功唤起微信支付 在微信商户平台 pay weixin qq com 设置您的公众号支付支付目录 设置路径 商户平台 gt 产品中心 gt 开发配置 如下
  • 2013年11月22日星期五(T3DLIB1剩余---1)

    现在进行T3DLIB的残余 define SCREEN DARKNESS 0 define SCREEN WHITENESS 1 define SCREEN SWIPE X 2 define SCREEN SWIPE Y 3 define
  • 【计算机网络】物理层:物理层要解决哪些问题?

    物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流 而不是具体的传输媒体 现有的计算机网络中的硬件设备和传输媒体的种类非常繁多 而通信手段也有许多不同方式 物理层的作用是尽可能屏蔽这些差异 使物理层上面的数据链路层感觉不到这些
  • iptables需求:开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务安装

    1 iptables需求 开启防火墙 可以正常使用ssh服务 dns服务 httpd服务 chrony服务 nfs服务 安装 yum install y iptables services 关闭firewalld 开启iptables sy
  • git的代码撤销步骤

    工作区的代码撤销 1 git status 查看哪些文件是修改过的 2 git checkout 文件路径 让这个文件回到最近一次git commit或git add时的状态 git add到暂存区的代码要撤销 1 git reset HE
  • 时序预测

    时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 目录 时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 预测结果 基本介绍 模型结构 程序设计 参考资料 预测
  • MySQL数据库、表常用命令

    目录 一 数据库分类 1 关系型数据库 2 非关系型数据库 二 MySQL相关基础 三 MySQL数据库基础操作 1 显示数据库 2 创建数据库 3 删除数据库 4 使用数据库 四 常用数据类型 1 数值类型 2 字符串类型 3 日期类型
  • 【C51】单片机芯片之——图解74HC595

    第一部部分用于快速查阅使用 详细的使用见文章第二部分 引脚图 14脚 DS SER 串行数据输入引脚 13脚 OE 输出使能控制脚 它是低电才使能输出 所以接GND 12脚 RCK 存储寄存器时钟输入引脚 上升沿时 数据从移位寄存器转存带存
  • Maven依赖冲突

    An attempt was made to call a method that does not exist 依赖冲突完整报错如下 Description An attempt was made to call a method tha
  • 字符串04--左旋转字符串

    字符串04 左旋转字符串 jz43 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 汇编语言中有一种移位指令叫做循环左移 ROL 现在有个简单的任务 就是用字符串模拟这个指令的运算结果 对于一个给定的字符序列S 请你把其循环左
  • express和koa中的超时处理

    从某个话题中得到的灵感 这里做一个分享 http cnodejs org topic 592fdc2f03dba3510d8a62a0 59364c3b538dbcaa6bc7dd48 楼主遇到一个问题 如何管理express中的超时 ex
  • BigDecimal 精度问题

    BigDecimal 精度问题 在使用BigDecimal过程中 暂时遇到两个问题 都是精度问题 一个是精度丢失 一个是精度显示问题 精度丢失 BigDecimal创建对象有很多种方式 通过double类型去声明bigdecimal对象时
  • Hyperledger Fabric架构设计

    目录 1 逻辑架构 答疑 什么叫做背书策略 2 运行时架构 答疑 什么是锚节点 1 逻辑架构 Hyperledger Fabric从1 X开始 在扩展性及安全性方面有了很大的提升 且新增了诸多特性 多通道 支持多通道 提高隔离安全性 可插拔
  • Diffusion Models 简单代码示例

    一 关于Diffusion 模型的简单介绍 首先diffusion模型和VAE Flow Gan等模型类似 均属于生成模型 可以和GCN CNN等其他深度学习网络相结合 完成特定的生成任务 如下图 基于 GAN 生成模型 基于 VAE 的生
  • 卷积核的类型及其作用

    目录 一 堆叠小卷积核 1 为什么要用大卷积核代替小卷积核 2 为什么堆叠小卷积核参数量要比大卷积核少 3 输入输出图片通道数一致时堆叠小卷积核参数量才更小 4 感受野计算 二 空洞卷积 能否让固定大小的卷积核看到更大范围的区域 三 非对称