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

掌握池化的原理

目录

一、前言

二、什么是池化

三、为什么需要池化

四、池化层在CNN中的位置

五、最大池化(Max Pooling)

六、最大池化计算过程

七、最大池化为什么有效

八、平均池化(Average Pooling)

九、平均池化计算示例

十、最大池化与平均池化对比

十一、池化尺寸计算

十二、Stride 对池化的影响

十三、什么是全局池化

十四、全局池化的优势

十五、池化的本质

十六、使用Numpy实现最大池化

十七、使用PyTorch实现池化

十八、平均池化实现

十九、现代CNN为什么减少使用池化

二十、面试高频问题

什么是池化?

最大池化和平均池化区别?

为什么需要池化?

池化层有参数吗?

Global Average Pooling作用是什么?

为什么现代网络减少使用池化?

二十一、总结


在学习卷积神经网络(CNN)时,经常会看到这样的网络结构:

Conv ↓ ReLU ↓ Pooling ↓ Conv ↓ ReLU ↓ Pooling

很多同学刚接触 CNN 时都会产生疑问:

什么是池化? 为什么卷积后还要池化? 池化会不会丢失信息? 最大池化和平均池化有什么区别? 现代网络为什么越来越少使用池化?

事实上:

池化(Pooling) 是CNN中最经典的下采样技术

从:

LeNet AlexNet VGG

到现代视觉网络。

池化都发挥过重要作用。

本文将系统讲解:

什么是池化 池化为什么存在 最大池化 平均池化 全局池化 池化尺寸计算 池化代码实现 池化优缺点

二、什么是池化

池化(Pooling)是一种:

特征压缩 降维 下采样

技术。

其作用是:

减少特征图尺寸 保留重要特征 降低计算量

简单来说:

卷积负责发现特征 池化负责压缩特征

例如:

输入特征图:

1 3 2 4 5 6 8 2 1 4 7 9 2 3 5 8

经过池化后:

6 8 4 9

尺寸明显变小。


三、为什么需要池化

假设输入图片:

224 × 224

经过多层卷积后:

224 × 224 × 64

特征图数量很多。

如果继续卷积:

计算量巨大

因此需要:

压缩特征图

作用:

降低内存占用 减少计算量 降低过拟合风险

四、池化层在CNN中的位置

典型结构:

工作流程:

提取特征 ↓ 压缩特征 ↓ 继续提取更高级特征

五、最大池化(Max Pooling)

最常见的池化方式:

最大池化

规则:

取窗口中的最大值

输入:

1 3 5 6

最大值:

6

输出:

6

六、最大池化计算过程

输入矩阵:

1 3 2 4 5 6 8 2 1 4 7 9 2 3 5 8

池化窗口:

2 × 2

第一次覆盖:

1 3 5 6

取最大值:

6

第二次覆盖:

2 4 8 2

结果:

8

继续计算:

最终输出:

6 8 4 9

七、最大池化为什么有效

因为:

图像中的关键特征 往往表现为强响应

例如:

边缘特征:

0.1 0.2 8.7 0.3

显然:

8.7 最重要

最大池化能够保留:

最显著特征

因此:

边缘 纹理 轮廓

能够被更好地保留下来。


八、平均池化(Average Pooling)

另一种经典池化:

Average Pooling

规则:

取平均值

输入:

1 3 5 7

结果:

(1+3+5+7)/4 =4

输出:

4

九、平均池化计算示例

输入:

1 3 2 4 5 6 8 2 1 4 7 9 2 3 5 8

窗口:

2×2

第一块:

1 3 5 6

平均值:

(1+3+5+6)/4 =3.75

最终输出:

3.75 4 2.5 7.25

十、最大池化与平均池化对比

对比项最大池化平均池化
计算方式取最大值取平均值
保留特征强特征整体特征
抗噪能力一般
应用场景CNN主流早期网络

通常:

Max Pooling 使用更多

十一、池化尺寸计算

假设:

输入:

4 × 4

池化窗口:

2 × 2

步长:

2

输出尺寸:

Output = (Input - PoolSize) / Stride +1

计算:

(4-2)/2 +1 =2

结果:

2 × 2

十二、Stride 对池化的影响

Stride表示:

池化窗口移动步长

例如:

Stride=1

窗口重叠。


Stride=2

窗口不重叠。

示意:

步长越大:

输出尺寸越小

十三、什么是全局池化

现代CNN经常使用:

Global Average Pooling

简称:

GAP

作用:

整个特征图求平均

例如:

1 2 3 4

输出:

(1+2+3+4)/4 =2.5

十四、全局池化的优势

传统CNN:

卷积 ↓ 全连接层

参数很多。

例如:

512×7×7

展开后:

25088个神经元

参数巨大。

而:

Global Pooling

直接变成:

512

个值。

优势:

参数更少 更不容易过拟合

十五、池化的本质

很多人认为:

池化只是缩小图片

实际上:

池化是一种信息压缩

保留:

重要特征

舍弃:

冗余细节

类似于:

看缩略图 依然知道图片内容

虽然:

细节减少

但:

主体信息保留

十六、使用Numpy实现最大池化

import numpy as np feature_map = np.array([ [1,3,2,4], [5,6,8,2], [1,4,7,9], [2,3,5,8] ]) result = np.zeros((2,2)) for i in range(2): for j in range(2): region = feature_map[ i*2:i*2+2, j*2:j*2+2 ] result[i,j] = np.max(region) print(result)

输出:

[[6. 8.] [4. 9.]]

十七、使用PyTorch实现池化

最大池化:

import torch import torch.nn as nn pool = nn.MaxPool2d( kernel_size=2, stride=2 ) x = torch.randn( 1, 3, 32, 32 ) y = pool(x) print(y.shape)

输出:

torch.Size([1,3,16,16])

尺寸减半。


十八、平均池化实现

avg_pool = nn.AvgPool2d( kernel_size=2, stride=2 ) y = avg_pool(x) print(y.shape)

结果:

torch.Size([1,3,16,16])

与最大池化尺寸相同。

区别仅在于:

计算方式不同

十九、现代CNN为什么减少使用池化

近年来:

ResNet EfficientNet Vision Transformer

越来越少使用传统池化。

原因:

卷积步长Stride 也能完成下采样

例如:

nn.Conv2d( 64, 128, kernel_size=3, stride=2 )

直接:

完成卷积 同时完成降采样

效果更好。


二十、面试高频问题

什么是池化?

对特征图进行下采样压缩

最大池化和平均池化区别?

最大池化取最大值 平均池化取平均值

为什么需要池化?

降低计算量 减少过拟合 压缩特征

池化层有参数吗?

没有 属于无参数层

Global Average Pooling作用是什么?

替代全连接层 减少参数量

为什么现代网络减少使用池化?

Stride卷积能够同时完成 特征提取和降采样

二十一、总结

池化层是卷积神经网络中的经典组件。

其核心作用:

压缩特征图 ↓ 保留重要信息 ↓ 减少计算量 ↓ 提升模型泛化能力

常见池化方式:

最大池化(Max Pooling) ↓ 平均池化(Average Pooling) ↓ 全局平均池化(GAP)

在CNN的发展历程中:

卷积 ↓ 池化 ↓ 深层卷积 ↓ 残差网络 ↓ 视觉Transformer

池化一直扮演着重要角色。

可以说:

卷积负责发现特征,而池化负责压缩特征。掌握池化原理,不仅能够理解 CNN 的整体架构,更能够理解现代计算机视觉模型为何能够在有限计算资源下处理海量图像数据。

http://www.zskr.cn/news/1473366.html

相关文章:

  • Matlab图像去噪效果量化评估工具:PSNR/SSIM/RMSE一键计算脚本合集
  • LabVIEW串口调试助手开发:从数据流原理到工程实践
  • 机器学习第4周:猴痘病识别
  • 深度解析FOC轮腿机器人:从零构建智能平衡机器人的完整攻略
  • 8D报告怎么写
  • MATLAB版LDPC码实战包:从随机H矩阵生成到LLR-BP译码及BER曲线绘制
  • 终极键盘连击解决方案:免费开源工具KeyboardChatterBlocker完整指南
  • 上市智慧食堂厂家盘点:从资质到落地的客观对比 - 互联网科技品牌测评
  • C/C++混合编程:extern “C“解决链接错误与符号管理
  • LinkSwift网盘直链下载助手:告别限速,实现高速下载自由的终极指南
  • 3个颠覆性功能:Obsidian Excel插件如何重塑你的笔记数据管理
  • 嵌入式多任务文件系统:FatFS在FreeRTOS中的任务化移植与实现
  • 物联网操作系统技术讲座深度解析:从理论到实战的竞赛赋能
  • c#中动态数组的方法
  • 四轴飞行器PID控制进阶:从单环到串级PID的实战调参指南
  • 抖音视频批量下载终极指南:5分钟掌握高效无水印下载技巧
  • 2026 扬州卫生间厨房阳台地下室漏水维修商家测评,多家防水企业综合评分横向对比,帮本地业主甄选靠谱堵漏维保团队 - 吉修匠
  • 性价比高的济南市驾校哪个靠谱 - GrowthUME
  • 第3章:时间管理与法律红线——别让副业拖垮你
  • 技能改造方法skill-refactor
  • 方达炬 宣介写书计划:《人的财报竞争》
  • 高效解决LLM训练数据标注难题:LabelLLM开源数据标注平台实战指南
  • 色彩还原精准UV平板打印机主流品牌盘点 排行不分先后 - 奔跑123
  • 紧急通知!CSDN非IT行业AI营销绿色通道将于Q3关闭(附最后30天极速开通SOP)
  • FPGA实现AMI与CMI码编码器:VHDL设计详解与实战
  • Sunshine游戏串流性能深度调优:从零到专业的完整配置指南
  • 哈尔滨严寒地区自动门厂家实力排行 实测维度解析 - 奔跑123
  • 思源宋体TTF:7种字重免费中文排版解决方案
  • 5分钟上手B站成分检测器:让评论区用户身份一目了然
  • 论文通关利器!智能AI写作辅助软件,框架搭建零压力