一文弄清池化层(pooling)的作用
创作时间:
作者:
@小白创作中心
一文弄清池化层(pooling)的作用
引用
CSDN
1.
https://blog.csdn.net/festaw/article/details/136683513
池化层是什么?
池化层的本质是一个下采样过程。在数据经过卷积操作后,维度会越来越高,虽然特征图的变化不大,但参数量却迅速增加,这会导致模型训练困难并容易产生过拟合现象。因此,将池化层置于连续的卷积层之间,可以压缩数据量和参数,减少过拟合的风险。池化层通过聚合统计一个像素点及其周围像素点的信息,来缩减特征图的尺寸,从而减少最终全连接层中的参数数量,加快模型的计算速度。常见的池化层类型包括最大池化、均值池化和空间金字塔池化等。如图所示,最大池化操作选择某个像素点相邻区域内的最大值,而均值池化操作则计算相邻区域内的平均值。
池化的作用
池化操作后的结果相比其输入缩小了。池化层的引入是仿照人的视觉系统对视觉输入对象进行降维和抽象。在卷积神经网络过去的工作中,研究者普遍认为池化层有如下三个功效:
特征不变性:池化操作使模型更加关注是否存在某些特征,而不是特征的具体位置。这种不变性包括平移不变性、旋转不变性和尺度不变性。例如,对于平移不变性,输入为(1, 5, 3)时,最大池化会取5;如果将输入右移一位得到(0, 1, 5),输出的结果仍将为5。对于尺度变换,如果原先的神经元在最大池化操作后输出5,那么经过尺度变换后,最大池化操作在该神经元上很大概率的输出仍是5。
特征降维(下采样):池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。
在一定程度上防止过拟合,更方便优化:
- 实现非线性(类似ReLU)。
- 扩大感受野。
示例代码
import numpy as np
# 定义池化层类
class PoolingLayer:
def __init__(self, pool_size=(2, 2), stride=2, mode='max'):
self.pool_height, self.pool_width = pool_size
self.stride = stride
self.mode = mode
def forward(self, input):
batch_size, input_height, input_width, num_channels = input.shape
output_height = (input_height - self.pool_height) // self.stride + 1
output_width = (input_width - self.pool_width) // self.stride + 1
pooled_output = np.zeros((batch_size, output_height, output_width, num_channels))
for b in range(batch_size):
for c in range(num_channels):
for i in range(output_height):
for j in range(output_width):
if self.mode == 'max':
pooled_output[b, i, j, c] = np.max(input[b, i*self.stride:i*self.stride+self.pool_height,
j*self.stride:j*self.stride+self.pool_width, c])
elif self.mode == 'average':
pooled_output[b, i, j, c] = np.mean(input[b, i*self.stride:i*self.stride+self.pool_height,
j*self.stride:j*self.stride+self.pool_width, c])
return pooled_output
# 测试池化层
if __name__ == "__main__":
# 创建输入特征图
input_feature_map = np.random.rand(1, 4, 4, 3) # 输入特征图大小为4x4,通道数为3,一个样本
# 创建池化层对象
pooling_layer = PoolingLayer(pool_size=(2, 2), stride=2, mode='max')
# 进行前向传播
pooled_output = pooling_layer.forward(input_feature_map)
# 输出池化后的特征图
print("池化后的特征图:")
print(pooled_output)
热门推荐
狗的免疫系统反应
月季花的花期怎么延长,剪除残花可促使花朵再次开放
初中毕业没考上高中学什么技术好
2024中国航展时间表 珠海航展举办时间及门票价格一览
糖化血红蛋白是检查什么的?深度解读糖化血红蛋白
幼儿急疹如何护理
大数据治理:提升数据质量与合规性,助力企业数字化转型
意甲第28轮:尤文主场0-4惨败亚特兰大,麦肯尼送点,弗拉霍维奇乌龙助攻
尤文图斯0-4惨败亚特兰大 弗拉霍维奇乌龙助攻
黑巧克力怎么吃减肥最佳效果
哈萨克斯坦150兆瓦风电场并网 中国电建携手金风科技拓展中亚市场
集成电路学习:什么是SRAM静态随机存取存储器
集装箱船建造市场:中国机遇VS日韩“失宠”
服饰面料成分缩写大全-中英文对照表
C#调用C++代码,以OpenCV为例
资产配置中的流动性管理技巧与挑战
人工智能医疗新突破:华龙区抢滩未来AI发展新赛道
适合长途骑行摩旅的三款摩托车,每款的价格也不一样
Meta分析如何检索数据库
继承房产再出售需要缴纳哪些费用?附继承流程详解
如何取消苹果手机的自动扣费订阅(简单步骤帮您解除不需要的扣费服务)
苹果手机取消订阅与订单操作指南
给比熊做肉类吃需要注意什么?比熊吃肉的正确方法是什么?
什么是肺大疱,形成的原因是什么
肺大泡的成因与预防:不仅仅是吸烟
定了!上海虹桥⇋浦东仅40分钟,机场联络线来啦:高铁配置,共设7站,刷公交卡进站
敏感肌——日常护肤指南
赵一博雪梨恋情风波:明星人设、粉丝经济与情感纽带的考验
双鸭山青山景区深度游:探秘自然风光与人文历史精华旅游景点指南
香港职专留港计划:低门槛拿香港身份,仅剩一次申请机会!