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

devtools/2025/3/1 0:11:37/

话不多说直接上图举例
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 可以更高效地训练更深的网络,同时保持较强的特征提取能力。


http://www.ppmy.cn/devtools/163476.html

相关文章

Selenium 不同语言绑定版本的官方操作文档获取途径(科学上网)

Selenium 不同语言绑定版本的官方操作文档获取途径 Selenium 是一个强大的自动化测试工具,支持多种编程语言绑定。以下为你详细介绍不同语言绑定版本的官方操作文档获取途径。 一、Python 语言绑定 1.1 官方文档 地址:Selenium Python 官方文档内容概…

开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-Docker助力-模型部署 “光速” 指南

一、前言 在人工智能的浪潮里,大语言模型不断迭代更新,DeepSeek-R1-Distill-Qwen-7B 模型凭借出色的表现,吸引着无数开发者的目光。然而,想要将这个强大的模型顺利部署并投入使用,过程却并不轻松。传统的部署方式仿佛布满荆棘,从底层环境搭建到各种依赖项的适配,每一步都…

【leetcode hot 100 238】移动零

一、暴力解法&#xff1a;循环数组&#xff0c;如果0则放到最后 class Solution {public void moveZeroes(int[] nums) {int k0; // 0的个数// k为已经发现0的个数&#xff0c;只要将已经找出的0的前面的数for(int i0; i<nums.length-k;){if(nums[i]0){// 移动k;// k为已经…

RAG 阿里云

RAG-阿里云Spring AI Alibaba官网官网 RAG-阿里云Spring AI Alibaba官网官网 AI应用跑起来&#xff0c;取消一下航班的操作666

AcWing 蓝桥杯集训·每日一题2025

题目链接 : 5437. 拐杖糖盛宴 题意: 有m个不同的糖果和n个不同高度的奶龙, 奶龙可以根据自己的身高去吃糖果,糖果垂直于地面,对于一个糖果都需要让每个奶龙尝试能否吃到,如果吃到则减去相应吃到的长度, 奶龙长高吃掉糖果的长度即可,根据长度进行判断, 分类讨论。 解题思路 : …

精准识别IP应用场景

基于全球领先的IP应用场景识别服务IPv4/IPv6全量数据库&#xff0c;为企业提供高精度、低延迟的场景化解析能力&#xff0c;助您构建更安全、智能的网络生态。 ​精准识别&#xff0c;毫秒响应 全量数据覆盖&#xff0c;依托全球最大的IP地址库&#xff0c;支持IPv4/IPv6双协…

React 源码揭秘 | commit流程

前面文章所描述的都发生在render过程中。React包含两个过程&#xff0c;即render和commit过程&#xff0c;其中render过程是可以打断的&#xff0c;而commit阶段是不可打断的。 commit阶段可以理解是真正的操作DOM的阶段&#xff0c;其消费render阶段打到Fiber节点上的Flag&am…

会话对象 HttpSession 二、HttpSession失效

session失效有如下几个原因&#xff1a; session.invalidate()方法注销sessionsession超时 <session-config><!-- session的超时时间&#xff0c;以分钟为单位 --><session-timeout>1</session-timeout> </session-config>Cookie被禁用