全局平均池化

 

全局平均池化是在论文Network in Network中提出的,原文中全局平均池化的作用和优点:

å¨è¿éæå¥å¾çæè¿°

思想:对于输出的每一个通道的特征图的所有像素计算一个平均值,经过全局平均池化之后就得到一个 维度=C_{in}=类别数 的特征向量,然后直接输入到softmax层

 

作用:代替全连接层,可接受任意尺寸的图像

 

优点:1)可以更好的将类别与最后一个卷积层的特征图对应起来(每一个通道对应一种类别,这样每一张特征图都可以看成是该类别对应的类别置信图)

2)降低参数量,全局平均池化层没有参数,可防止在该层过拟合

3)整合了全局空间信息,对于输入图片的spatial translation更加鲁棒

 

图解:

### 全局平均池化全局最大池化的概念 #### 全局平均池化 全局平均池化是对输入特征图中的每一个通道的所有元素求算术平均值。这种操作能够有效地将整个特征图的信息压缩成单一数值,从而保留了更广泛的上下文信息[^2]。 #### 全局最大池化 相比之下,全局最大池化则是选取每个通道内的最大值作为该通道的代表值。这种方法倾向于捕捉最显著或最具激活性的部分,即那些对于特定类别最为重要的响应位置[^1]。 ### 实现方式对比 - **全局平均池化** 对于给定的一个大小为 \(H \times W\) 的二维特征图,在单个通道上执行如下运算: \[ output_c = \frac{1}{HW}\sum_{i=0}^{H-1}\sum_{j=0}^{W-1}input(i, j)_c \] 这里 `output_c` 表示第 c 个通道经过全局平均池化后的输出结果。 - **全局最大池化** 同样地,考虑相同尺寸的特征图及其某个固定通道,则有: \[ output_c = \max\limits_{(i,j)} input(i, j)_c \] 此处的最大函数会遍历所有像素并返回最高强度的那个点作为最终的结果。 ### 特性和应用场景差异 - **特性** - *全局平均池化* 更加关注整体分布情况,有助于平滑数据波动,并且由于不涉及任何权重更新过程,因此不会引入额外的学习参数,减少了过拟合的风险[^3]。 - *全局最大池化* 则强调突出显示最强信号源所在之处,这使得它特别适合用于定位目标物体的关键部位或是检测异常事件的发生地点。 - **应用场合** 当需要保持尽可能多的空间分辨率时(比如语义分割任务),通常会选择采用较小窗口的传统池化策略而非全局版本;而在其他情况下,如果目的是为了获得紧凑表达形式以便后续处理(例如分类问题),那么这两种全局池化技术都是不错的选择,具体取决于实际需求偏好稳定表征还是敏感反应模式[^4]。 ```python import torch.nn as nn class GlobalAvgPool(nn.Module): def forward(self, x): return x.mean(dim=[-2,-1]) # H and W dimensions are averaged out class GlobalMaxPool(nn.Module): def forward(self, x): return x.amax(dim=[-2,-1]) # Maximum value across spatial dimensions is taken ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值