卷积神经网络 - 汇聚层

news2025/3/21 0:12:36

卷积神经网络一般由卷积层、汇聚层和全连接层构成,本文我们来学习汇聚层。

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进 行特征选择,降低特征数量,从而减少参数数量。

卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。

在卷积神经网络(CNN)中,汇聚层(Pooling Layer) 是一种用于降低数据空间维度、增强特征鲁棒性的关键组件。其核心目标是通过对局部区域进行压缩抽象,保留重要信息的同时减少计算量。以下从多个角度详细解析汇聚层的工作原理和实际意义:

一、汇聚层的核心功能

功能说明
降维压缩减少特征图尺寸(如4×4 → 2×2),降低后续层计算复杂度。
特征抽象通过取最大值/平均值,突出显著特征,抑制噪声和细节干扰。
平移不变性微小位置变化不影响输出(如猫耳朵偏移5像素仍被检测到)。
防止过拟合降低参数量的同时引入轻微扰动,增强模型泛化能力。

二、汇聚层的类型与计算

1. 最大汇聚(Max Pooling)
  • 操作:在局部窗口内取最大值。

  • 公式

  • 优势:保留最显著特征(如边缘、纹理),适合物体检测任务。

  • 示例

    • 输入窗口(2×2):

    • 输出值:8

2. 平均汇聚(Average Pooling)
  • 操作:在局部窗口内取平均值。

  • 公式

  • 优势:平滑特征响应,适合分类任务(如ImageNet)。

  • 示例

    • 输入窗口(2×2):同上

    • 输出值:(5+8+3+1)/4=4.25

3. 其他变体
  • 全局平均汇聚(Global Average Pooling, GAP):将每个通道的特征图压缩为单个值,替代全连接层(如ResNet)。

  • 重叠汇聚(Overlapping Pooling):窗口步长小于窗口尺寸(如AlexNet中3×3窗口步长2),增加信息重叠。

  • 随机汇聚(Stochastic Pooling):按概率选择窗口内的值,增强泛化性。

三、汇聚层的实际效果

1. 特征图尺寸变化
  • 输入尺寸:H×W×C

  • 汇聚参数:窗口大小 K×K,步长 S

  • 输出尺寸

  • 示例:输入7×7,窗口2×2,步长2 → 输出3×3。

2. 特征抽象过程
  • 浅层汇聚:过滤低层次噪声(如光照变化)。

  • 深层汇聚:提取语义级特征(如物体部件)。

四、汇聚层与卷积层的对比

维度汇聚层卷积层
参数学习无参数(固定操作)可学习权重和偏置
计算目标压缩空间维度,增强鲁棒性提取局部特征,增加通道数
平移不变性强(最大池化)中等(依赖卷积核设计)
典型位置常用于卷积层后网络的基础组件

五、汇聚层的替代方案

1. 步长卷积(Strided Convolution)
  • 原理:用步长>1的卷积直接降维(如步长2的3×3卷积)。

  • 优势:避免信息丢失(池化可能丢弃有用细节),参数可控。

  • 应用:ResNet、MobileNet等现代网络常用此方法。

2. 空洞卷积(Dilated Convolution)
  • 原理:通过扩大感受野替代池化,保持分辨率(如语义分割任务)。

  • 示例:空洞率=2的3×3卷积 → 等效5×5感受野。

3. 空间金字塔汇聚(Spatial Pyramid Pooling, SPP)
  • 原理:多尺度池化后拼接,处理任意尺寸输入(如Fast R-CNN)。

六、总结与选择建议

核心价值
  • 计算效率:通过降维减少后续层的参数量和计算量。

  • 鲁棒性:最大池化提供对微小形变的容忍度。

  • 通用性:简单有效,适用于大多数视觉任务。

适用场景
  • 必须使用池化:传统CNN架构(如LeNet、AlexNet)、资源受限场景。

  • 可替代方案:需要高分辨率输出的任务(如分割)、现代轻量级网络(如MobileNet)。

设计建议
  1. 浅层网络:优先使用最大池化(保留关键特征)。

  2. 深层网络:可尝试步长卷积或空洞卷积(减少信息损失)。

  3. 分类任务:结合全局平均池化(GAP)替代全连接层。

  4. 密集预测任务(如分割):减少池化层数,或用空洞卷积保持分辨率。

最终结论
汇聚层是CNN中平衡计算效率特征鲁棒性的关键设计,其本质是通过局部区域的统计操作(最大/平均),在压缩数据的同时保留语义信息。合理选择池化策略,能显著提升模型性能与泛化能力。

七、局部窗口内取平均值的例子

以下是一个具体的平均汇聚(Average Pooling)示例,通过逐步计算展示如何在局部窗口内取平均值:

示例设定

  • 输入特征图(4×4矩阵):

    [
      [2, 5, 3, 8],
      [4, 7, 1, 6],
      [9, 2, 5, 4],
      [3, 6, 7, 1]
    ]
  • 池化参数

    • 窗口大小:2×2

    • 步长(Stride):2(不重叠滑动)

    • 填充(Padding):0

计算过程

步骤1:划分第一个窗口(左上角2×2区域)
  • 覆盖输入值

    [2, 5]
    [4, 7]
  • 计算平均值

    (2+5+4+7)/4=18/4=4.5
步骤2:向右滑动窗口(右上角2×2区域)
  • 覆盖输入值

    [3, 8]
    [1, 6]
  • 计算平均值

    (3+8+1+6)/4=18/4=4.5
步骤3:向下滑动窗口(左下角2×2区域)
  • 覆盖输入值

    [9, 2]
    [3, 6]
  • 计算平均值

    (9+2+3+6)/4=20/4=5.0
步骤4:向右滑动窗口(右下角2×2区域)
  • 覆盖输入值

    [5, 4]
    [7, 1]
  • 计算平均值

    (5+4+7+1)/4=17/4=4.25

最终输出特征图

[
  [4.5, 4.5],
  [5.0, 4.25]
]

关键说明

  1. 窗口与步长的影响

    • 输入尺寸:4×4

    • 窗口大小:2×2

    • 步长:2

    • 输出尺寸:

  2. 平均池化的意义

    • 平滑特征:抑制极端值(如原始矩阵中的9),保留区域整体强度。

    • 示例对比:若使用最大池化,右下角窗口输出为7(保留最大值),而平均池化为4.25,反映区域平均水平。

  3. 扩展场景

    • 重叠池化:若步长=1,窗口会重叠,输出尺寸变为3×3。

    • 全局平均池化:若窗口=输入尺寸(4×4),输出单个值:

通过这个例子可以看出,平均池化通过局部平均操作,将输入特征图压缩为更低维度的表示,同时减少对噪声的敏感度。

八、局部窗口内取最大值的例子

以下是一个具体的最大汇聚(Max Pooling)示例,通过逐步计算展示如何在局部窗口内取最大值:

示例设定

  • 输入特征图(4×4矩阵):

    [
      [2, 5, 3, 8],
      [4, 7, 1, 6],
      [9, 2, 5, 4],
      [3, 6, 7, 1]
    ]
  • 池化参数

    • 窗口大小:2×2

    • 步长(Stride):2(不重叠滑动)

    • 填充(Padding):0

计算过程

步骤1:划分第一个窗口(左上角2×2区域)
  • 覆盖输入值

    [2, 5]
    [4, 7]
  • 取最大值

    max⁡(2,5,4,7)=7
步骤2:向右滑动窗口(右上角2×2区域)
  • 覆盖输入值

    [3, 8]
    [1, 6]
  • 取最大值

    max⁡(3,8,1,6)=8
步骤3:向下滑动窗口(左下角2×2区域)
  • 覆盖输入值

    [9, 2]
    [3, 6]
  • 取最大值

    max⁡(9,2,3,6)=9
步骤4:向右滑动窗口(右下角2×2区域)
  • 覆盖输入值

    [5, 4]
    [7, 1]
  • 取最大值

    max⁡(5,4,7,1)=7

最终输出特征图

[
  [7, 8],
  [9, 7]
]

关键说明

  1. 窗口与步长的影响

    • 输入尺寸:4×4

    • 窗口大小:2×2

    • 步长:2

    • 输出尺寸:

  2. 最大池化的意义

    • 保留显著特征:例如左下角窗口的输入值 9(原始特征图中的最大值)被保留,而平均池化会将其平滑为 5.0

    • 抗噪声能力:若窗口内存在异常值(如传感器噪声),最大池化可能放大噪声影响,而平均池化可抑制噪声。

  3. 与平均池化的对比(基于相同输入):

    池化类型输出矩阵特征保留倾向
    最大池化[[7,8], [9,7]]突出局部最大值
    平均池化[[4.5,4.5], [5.0,4.25]]反映区域平均水平

扩展场景

  • 重叠窗口(步长=1)
    输入4×4,窗口2×2,步长1 → 输出3×3:

    复制

    [
      [7, 8, 8],
      [9, 7, 6],
      [9, 7, 7]
    ]
  • 全局最大池化(窗口=输入尺寸)
    输入4×4 → 输出单个值 9

汇聚层中最大汇聚过程示例图如下:

最大池化通过保留局部窗口内的最大值,突出图像中的显著特征(如边缘、纹理),适合需要强特征响应的任务(如目标检测)。而平均池化更适合需要平滑特征分布的场景(如图像分类)。两者选择需根据具体任务需求权衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2318660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文分享:PL-ALF框架实现无人机低纹理环境自主飞行

在室内仓库、地下隧道等低纹理复杂场景中,无人机依赖视觉传感器进行自主飞行时,往往会遇到定位精度低、路径规划不稳定等难题。针对这一问题,重庆邮电大学计算机学院雷大江教授团队在IEEE Trans期刊上提出了一种新型自主飞行框架:…

Nodejs使用redis

框架:koa,通过koa-generator创建 redis: 本地搭建,使用默认帐号,安装说明地址以及默认启动设置:https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 中间件&#x…

GitHub 超火的开源终端工具——Warp

Warp 作为近年来 GitHub 上备受瞩目的开源终端工具,以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力: 一、背景与核心团队 Warp 由前 GitHub CTO Jason Warner 和 Google 前…

计算机视觉技术探索:美颜SDK如何利用深度学习优化美颜、滤镜功能?

时下,计算机视觉深度学习正在重塑美颜技术,通过智能人脸检测、AI滤镜、深度美肤、实时优化等方式,让美颜效果更加自然、精准、个性化。 那么,美颜SDK如何结合深度学习来优化美颜和滤镜功能?本文将深入解析AI在美颜技术…

应用商店上新:Couchbase Enterprise Server集群

可移植的冗余数据平台,这往往是创建可扩展的云原生应用程序的先决条件。而不依赖特定平台的工具可用于为多云、多区域工作负载提供企业级应用所需的灵活性。 ​Couchbase是一种高性能NoSQL数据库,专为当今复杂的云生态系统所需的动态扩展能力而设计。最近…

Redis解决缓存击穿问题——两种方法

目录 引言 解决办法 互斥锁(强一致,性能差) 逻辑过期(高可用,性能优) 设计逻辑过期时间 引言 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这个时间点对…

集成学习之随机森林

目录 一、集成学习的含义 二、集成学习的代表 三、集成学习的应用 1、分类问题集成。(基学习器是分类模型) 2、回归问题集成。(基学习器是回归模型) 3、特征选取集成。 四、Bagging之随机森林 1、随机森林是有多个决策树&a…

在线JSON格式校验工具站

在线JSON校验格式化工具(Be JSON)在线,JSON,JSON 校验,格式化,xml转json 工具,在线工具,json视图,可视化,程序,服务器,域名注册,正则表达式,测试,在线json格式化工具,json 格式化,json格式化工具,json字符串格式化,json 在线查看器,json在线,json 在线验…

SAP的WPS导出找不到路径怎么办;上载报错怎么办

一.打开注册编辑器 二.输入以下地址 计算机\HKEY_CLASSES_ROOT\ExcelWorksheet\Protocol\StdFileEditing\Server 去除掉EXE后面的命令即可 二:WPS上载文件没反应怎么办 如何切换整合模式或多组件模式-WPS学堂 根据官方操作把整合模式改成多组件模式

Moonlight-16B-A3B: 变革性的高效大语言模型,凭借Muon优化器打破训练效率极限

近日,由Moonshot AI团队推出的Moonlight-16B-A3B模型,再次在AI领域引发了广泛关注。这款全新的Mixture-of-Experts (MoE)架构的大型语言模型,凭借其创新的训练优化技术,特别是Muon优化器的使用,成功突破了训练效率的极…

rust学习笔记17-异常处理

今天聊聊rust中异常错误处理 1. 基础类型&#xff1a;Result 和 Option&#xff0c;之前判断空指针就用到过 Option<T> 用途&#xff1a;表示值可能存在&#xff08;Some(T)&#xff09;或不存在&#xff08;None&#xff09;&#xff0c;适用于无需错误信息的场景。 f…

PyTorch系列教程:使用预训练语言模型增强文本分类

文本分类仍是自然语言处理&#xff08;NLP&#xff09;领域的一项基础任务&#xff0c;其目标是将文本数据归入预先设定的类别之中。预训练语言模型的出现极大地提升了这一领域的性能。本文将探讨如何利用 PyTorch 来利用这些模型&#xff0c;展示它们如何能增强文本分类任务。…

LabVIEW 线性拟合

该 LabVIEW 程序实现了 线性拟合&#xff08;Linear Fit&#xff09;&#xff0c;用于计算给定一组数据点的斜率&#xff08;Slope&#xff09;和截距&#xff08;Intercept&#xff09;&#xff0c;并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…

nacos安装,服务注册,服务发现,远程调用3个方法

安装 点版本下载页面 服务注册 每个微服务都配置nacos的地址&#xff0c;都要知道 服务发现 2个是知道了解 远程调用基本实现 远程调用方法2&#xff0c;负载均衡API测试 远程调用方法3&#xff0c;注解 负载均衡的远程调用&#xff0c; 总结 面试题

Mac:JMeter 下载+安装+环境配置(图文详细讲解)

&#x1f4cc; 下载JMeter 下载地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi &#x1f4cc; 无需安装 Apache官网下载 JMeter 压缩包&#xff0c;无需安装&#xff0c;下载解压后放到自己指定目录下即可。 按我自己的习惯&#xff0c;我会在用户 jane 目…

Python IP解析器 ip2region使用

说明&#xff1a;最近需要在python项目内使用IP定位所在城市的需求&#xff0c;没有采用向外部ISP服务商API请求获取信息的方案&#xff0c;则翻了翻&#xff0c;在搞Java时很多的方案&#xff0c;在Python端反而可选择范围很小。 # 示例查询 ips ["106.38.188.214"…

labview与西门子1500plc进行S7通讯(仿真效果)

环境&#xff1a; 1.博图V16 2.S7-PLCSIM Advanced V3.0 3.labview2020 4.HslCommunication的dll文件 运行效果图 通过使用HslCommunication的库文件来对西门子plc进行通讯 labview代码 代码打包 通过网盘分享的文件&#xff1a;labview进行s7通讯测试.rar 链接: https:/…

Oracle 公布 Java 的五大新功能

Java 增强提案包括语言增强和性能优化&#xff0c;从 JDK 25 中的稳定值 API 开始。 随着JDK&#xff08;Java 开发工具包&#xff09;24刚刚全面上市&#xff0c;Oracle 提前透露了不久的将来即将推出的 Java 功能&#xff0c;包括增强原始装箱到空限制值类类型。 3 月 18 日…

台式机电脑组装---电脑机箱与主板接线

台式机电脑组装—电脑机箱与主板接线 1、机箱连接主板的跳线一般主要有USB 2.0、USB 3.0、前置音频接口(HD_AUDIO)以及POWER SW、RESET SW、POWER LED、HDD LED四个主板跳线&#xff0c;这些跳线分别的含义如下。 RESET SW&#xff1a;机箱重启按键&#xff1b;注&#xff1a…

动作捕捉手套如何让虚拟现实人机交互 “触手可及”?

在虚拟与现实逐渐交融的当下&#xff0c;动作捕捉技术正以前所未有的速度革新着多个领域。 动作捕捉技术&#xff0c;简称“动捕”&#xff0c;已经从早期的影视特效制作&#xff0c;逐步拓展到游戏开发、虚拟现实、机器人控制等多个领域。 而mHandPrO数据手套作为这一领域的…