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

CNN:卷积网络中设计1×1夹在主要卷积核如3×3前后的作用

话不多说直接上图举例
ResNet网络结构图
像在 ResNet 的 Bottleneck 结构 中,1x1 卷积 被放置在 3x3 卷积 的前后,这种设计有以下几个关键作用和优势:


1. 降低计算复杂度

  • 问题:直接使用 3x3 卷积计算量较大,尤其是当输入和输出通道数较多时。
  • 解决方案
    • 在 3x3 卷积之前,使用 1x1 卷积将输入通道数减少(通常减少到原来的 1/4)。
    • 在 3x3 卷积之后,使用 1x1 卷积将通道数恢复到目标输出通道数。
  • 效果
    • 通过减少中间特征图的通道数,显著降低了 3x3 卷积的计算量。

2. 减少参数量

  • 问题:3x3 卷积的参数量与输入和输出通道数成正比,当通道数较多时,参数量会非常大。
  • 解决方案
    • 使用 1x1 卷积先减少通道数,再使用 3x3 卷积,最后恢复通道数。
  • 效果
    • 这种设计可以大幅减少参数量,从而降低模型的存储需求和过拟合风险。

3. 跨通道信息融合

  • 问题:3x3 卷积主要关注局部空间特征,对跨通道信息的融合能力有限。
  • 解决方案
    • 1x1 卷积可以在不改变空间尺寸的情况下,对通道维度进行线性组合,从而实现跨通道信息融合。
  • 效果
    • 增强了特征的表达能力。

4. 非线性增强

  • 问题:单纯的 3x3 卷积只能提取线性特征。
  • 解决方案
    • 在 1x1 卷积和 3x3 卷积之间加入非线性激活函数(如 ReLU)。
  • 效果
    • 引入了更多的非线性,增强了模型的表达能力。

5. Bottleneck 结构的具体设计

Bottleneck 结构通常由以下三部分组成:

  1. 1x1 卷积(降维)

    • 输入通道数: C i n C_{in} Cin
    • 输出通道数: C m i d = C i n / 4 C_{mid} = C_{in} / 4 Cmid=Cin/4
    • 作用:减少通道数,降低计算量。
  2. 3x3 卷积(空间特征提取)

    • 输入通道数: C m i d C_{mid} Cmid
    • 输出通道数: C m i d C_{mid} Cmid
    • 作用:提取局部空间特征。
  3. 1x1 卷积(升维)

    • 输入通道数: C m i d C_{mid} Cmid
    • 输出通道数: C o u t C_{out} Cout
    • 作用:恢复通道数,完成特征变换。

6. 计算量对比

假设:

  • 输入特征图尺寸: H × W × C i n H \times W \times C_{in} H×W×Cin
  • 输出特征图尺寸: H × W × C o u t H \times W \times C_{out} H×W×Cout
  • 3x3 卷积核尺寸: 3 × 3 × C i n × C o u t 3 \times 3 \times C_{in} \times C_{out} 3×3×Cin×Cout
  • Bottleneck 结构:
    • 第一个 1x1 卷积: 1 × 1 × C i n × C m i d 1 \times 1 \times C_{in} \times C_{mid} 1×1×Cin×Cmid
    • 3x3 卷积: 3 × 3 × C m i d × C m i d 3 \times 3 \times C_{mid} \times C_{mid} 3×3×Cmid×Cmid
    • 第二个 1x1 卷积: 1 × 1 × C m i d × C o u t 1 \times 1 \times C_{mid} \times C_{out} 1×1×Cmid×Cout

计算量对比

  • 直接使用 3x3 卷积的计算量:
    H × W × C i n × C o u t × 3 × 3 H \times W \times C_{in} \times C_{out} \times 3 \times 3 H×W×Cin×Cout×3×3
  • Bottleneck 结构的计算量:
    H × W × C i n × C m i d × 1 × 1 + H × W × C m i d × C m i d × 3 × 3 + H × W × C m i d × C o u t × 1 × 1 H \times W \times C_{in} \times C_{mid} \times 1 \times 1 + H \times W \times C_{mid} \times C_{mid} \times 3 \times 3 + H \times W \times C_{mid} \times C_{out} \times 1 \times 1 H×W×Cin×Cmid×1×1+H×W×Cmid×Cmid×3×3+H×W×Cmid×Cout×1×1
    通常 C m i d = C i n / 4 C_{mid} = C_{in} / 4 Cmid=Cin/4,因此 Bottleneck 结构的计算量远小于直接使用 3x3 卷积。

7. 总结

Bottleneck 结构中 1x1 卷积的作用:

  1. 降低计算复杂度和参数量
  2. 实现跨通道信息融合
  3. 增强非线性表达能力

这种设计使得 ResNet 可以更高效地训练更深的网络,同时保持较强的特征提取能力。

相关文章:

  • 基于专利合作地址匹配的数据构建区域协同矩阵
  • 记录一次解决springboot需要重新启动项目才能在前端界面展示静态资源的问题--------使用热部署解决
  • java23种设计模式-责任链模式
  • Java全流程供应链系统开源方案:前端后端分离
  • 免实名服务器新选择:AWS海外服务器三大核心优势解析——以aliyun国际版为对比
  • 2025系统架构师(一考就过):案例之四:架构复用、架构评估、特定架构(DSSA)、架构开发方法(ABSD)
  • 力扣-动态规划-518 零钱兑换Ⅱ
  • 笔记一:字符函数和字符串函数
  • gitlab初次登录为什么登不上去
  • 迈向更好的动态图学习:新架构和统一库阅读笔记
  • 获取 ubuntu 系统相关信息
  • C++效率掌握之STL库:string函数全解
  • 由 Mybatis 源码畅谈软件设计(三):简单查询 SQL 执行流程
  • ESP32移植Openharmony外设篇(9)NB-IOT
  • AI岗位面试指南:高频文档问题解析与应答策略
  • 【Java项目】基于Spring Boot的校园博客系统
  • 秒杀系统的常用架构是什么?怎么设计?
  • 理解 Rust 中的共享状态并发
  • 简明systemd服务管理指南:从入门到实战
  • 腾讯云扩容记录
  • 微信团购群网站怎样做/重庆电子商务网站seo
  • seo做网站真的赚钱/网站推广方案策划
  • 开淘宝的店铺网站怎么做/搜狗竞价
  • 湖北建设网官方网站/如何做谷歌seo推广
  • 高端自适应网站设计/营销网站搭建
  • 公司备案 网站主办者名称/大连网站搜索排名