一文弄清池化层(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)
热门推荐
石家庄动物园:春节必打卡的英歌舞巡游
冻伤的护理措施
手部冻伤如何选择最有效的药膏
《布莱泽奥特曼》中的月光怪兽:德尔坦达尔
西安出发,天津,北京共九日,自驾纯电小九出游记
两日一夜的海南本地自驾游:海口-文昌-万宁
从化学方程式到美味佳肴:烹饪中的科学奥秘
高考化学方程式高效记忆法大揭秘!
健身“热辣滚烫” 谨防“边练边伤”
崇礼滑雪场:河北冬日必打卡胜地
河北冬季滑雪胜地:万龙、云顶、太舞全攻略
崇礼滑雪场:河北冬游必打卡!
香煎猪里脊:健身党的新宠?
美食博主力荐:香煎里脊肉完美做法
香煎里脊肉:健康又美味的秘密武器!
平潭岛:泉州周边最美自然景观打卡地
探访泉州22个申遗点:千年古城的魅力
董氏奇穴-失眠四针:探索中医针灸治疗失眠的新途径
石家庄市动物园:五星级科普基地带你玩转健康教育
石家庄动物园:亲子互动的欢乐天地
石家庄动物园:隐凤山下的自然奇观
周末打卡河北宝藏地:石家庄&临漳
北戴河+避暑山庄:2天精华游攻略
京承皇家御道:河北最美自驾游路线
承德皇家御道2日游:从石家庄出发,领略清代皇家园林与草原风光
《机器人角斗场》:MOD菜单大揭秘!
一文读懂:如何用路由器AP隔离守护家庭网络安全?
路由器之家教你AP隔离配置技巧
2025年春晚:科技创新与经济发展的时代缩影
揭秘春晚:眉山舞蹈团、普宁英歌队和武汉分会场背后的故事