当前位置: 首页 > article >正文

1.1卷积的作用

上图解释了1∗1卷积如何适用于尺寸为H∗W∗D的输入层,滤波器大小为1∗1∗D,输出通道的尺寸为H∗W∗1。如果应用n个这样的滤波器,然后组合在一起,得到的输出层大小为H∗W∗n。

1.1∗1卷积的作用

  • 调节通道数
    由于 1×1 卷积并不会改变 height 和 width,改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里看其他文章或者博客中都称之为升维、降维。但实际情况维度并没有改变,改变的只是 height×width×channels 中的channels这一个维度的大小而已。
  • 增加非线性
    1∗1卷积核,可以在保持特征图尺度不变的(即不改变)的前提下大幅增加非线性特性(利用后接的非线性激活函数如ReLU)。非线性允许网络学习更复杂的功能,并且使得整个网络能够进一步加深。
  • 跨通道信息交互
    使用1∗1卷积核,实现降维和升维的操作其实就是间通道信息的线性组合变化。例如:在卷积核大小为3∗3,卷积核个数为64的滤波器与卷积核大小为1∗1,卷积核个数为28的滤波器组合,其输出层大小等于通过卷积核大小为3∗3,卷积核个数为28的滤波器所得到的输出层的大小,原来的64个通道就可以理解为跨通道线性组合变成了28通道,这就是通道间的信息交互。
  • 减少参数
    前面所说的降维,其实也是减少了参数,因为特征图少了,参数也自然跟着就减少,相当于在特征图的通道数上进行卷积,压缩特征图,二次提取特征,使得新特征图的特征表达更佳。

2. 1∗1卷积的应用

Network in Network(NIN)
NIN提出了MLP卷积层,MLP卷积层通过叠加"Micro Network"网络,提高非线性表达,而其中的"Micro Network"基本组成单元是1∗1卷积网路,说到这,就要解释一下1∗1卷积了,该篇论文是首次提出1∗1卷积,具有划时代的意义,之后的GoogleNet借鉴了1∗1卷积,还专门致谢过这篇论文。

Inception
​ GoogleNet首次提出Inception模块,Inception一共有V1、V2、V3、V4四个版本(这里就不详述了)。下图为Inception V1的结构如下图两个图所示。

在充分引入1∗1卷积进行降维后如图(b)所示,总体而言相比于图(a)其卷积参数量已经减少了近4倍。
​ 在inception结构中,大量采用了1∗1卷积,主要是两点作用:a.对数据进行降维;b.引入更多的非线性,提高泛化能力,因为卷积后要经过ReLU激活函数;

ResNet

ResNet同样也利用了1∗1卷积,并且是在3∗33*3卷积层的前后都使用了,不仅进行了降维,还进行了升维,参数数量进一步减少。其中右图又称为Bottleneck Design,目的一目了然,就是为了降低参数的数目,第一个1∗1的卷积把通道量从256降到64,然后在最后通过1∗1卷积恢复,整体上用的参数数目差了近16.94倍。
​ 对于常规ResNet,可以用于34层或者更少的网络中,对于Bottleneck Design的ResNet通常用于更深的如101这样的网络中,目的是减少计算和参数量。

参考:

卷积神经网络中的1*1卷积究竟有什么用?

一文读懂卷积神经网络中的1x1卷积核

 


http://www.kler.cn/a/155347.html

相关文章:

  • java模拟键盘实现selenium上下左右键 table中的左右滚动条实现滚动
  • react动态路由
  • Go开发指南-Gin与Web开发
  • RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》
  • 《云原生安全攻防》-- K8s安全防护思路
  • 【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框
  • JVM执行引擎以及调优
  • mysql中除了InnoDB以外的其它存储引擎
  • 手写VUE后台管理系统6 - 支持TS声明文件.d.ts
  • 软著项目推荐 深度学习手势识别算法实现 - opencv python
  • git push 报错 error: src refspec master does not match any 解决
  • 视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程
  • 浅析HTML中的图片格式
  • 怎么运营网站不受漏洞攻击
  • 公共部门生成式人工智能的未来
  • flink安装与配置-脚本一键安装(超简单)
  • Servlet是什么
  • 配置 Mantis 在 Windows 上的步骤
  • sqli-labs靶场详解(less38-less45)
  • 如何使用PHPUnit编写一个PHP单元测试-简单的代码示例
  • 【LeetCode】每日一题 2023_12_3 可获得的最大点数(前缀和/滑动窗口/贪心)
  • 第十四章 算法和数据结构
  • 〖大前端 - 基础入门三大核心之JS篇㊺〗- 定时器和延时器
  • Qt面试题
  • 使用凌鲨进行内网穿透
  • WebUI自动化学习(Selenium+Python+Pytest框架)003