首页 > 其他分享 >一文弄清池化层(pooling)的作用

一文弄清池化层(pooling)的作用

时间:2024-03-13 18:59:39浏览次数:8  
标签:池化层 卷积 弄清 pooling 特征 池化 不变性 像素点

池化层的本质是一个下采样,数据经过卷积之后,维度会越来越高,在特征图没有较大改变的情况下,参数量却上涨的很快,造成模型的训练困难和过拟合现象,所以将池化层置于连续的卷积层之间,以压缩数据量和参数以减少过度拟合,对卷积层输出的特征图进行特征选择。池化层的具体操作是将一个像素点及其周围的像素点进行聚合统计,缩减提取特征图的尺寸,减少最终全连接层中的参数数量,加快模型的计算速度。常见的池化层类型有:最大池化、均值池化、空间金字塔池化等。如图所示,其中,选择某个像素点相邻区域内的最大值是最大池化操作;计算某个像素点相邻区域内的平均值是均值池化操作。

池化的作用:
       池化操作后的结果相比其输入缩小了。池化层的引入是仿照人的视觉系统对视觉输入对象进行降维和抽象。在卷积神经网络过去的工作中,研究者普遍认为池化层有如下三个功效:

1.特征不变性:池化操作是模型更加关注是否存在某些特征而不是特征具体的位置。
其中不变形性包括,平移不变性、旋转不变性和尺度不变性。

        平移不变性是指输出结果对输入对小量平移基本保持不变
        例如,输入为(1, 5, 3), 最大池化将会取5,如果将输入右移一位得到(0, 1, 5),输出的结果仍将为5。对伸缩的不变形,如果原先的神经元在最大池化操作后输出5,那么经过伸缩(尺度变换)后,最大池化操作在该神经元上很大概率的输出仍是5.

2.特征降维(下采样):池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。

3.在一定程度上防止过拟合,更方便优化。

  •    实现非线性(类似relu)。
  •    扩大感受野。

标签:池化层,卷积,弄清,pooling,特征,池化,不变性,像素点
From: https://blog.csdn.net/festaw/article/details/136683513

相关文章

  • 目标检测 | Point Cloud RoI Pooling
    目录目标检测|PointCloudRoIPoolingPointCloudRoIPooling概述PoolingRoIPoolingPointCloudRoIPoolingPointCloudRoIPooling实现细节目标检测|PointCloudRoIPoolingPointCloudRoIPooling概述PointsCloudRoIPooling(点云RoI池化)是3d点云目标检测中一......
  • 弄清using namespace std的作用
    ⭐C++标准为了和C区别开!为了正确地使用命名空间,规定头文件不使用后缀.h。例如当我们使用<iostream.h>时,相当于在C中调用库函数。使用usingnamespacestd例如1#include2#include3#include4usingnamespacestd;这样使用的话,就相当于std命名空间内所有的标识符都已声......
  • Pooling与马赛克的秘密
      说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是MaxPooling,具体操作如下图:  结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3,5x5等等......
  • Keras MaxPooling2D
     KerasMaxPooling2D 2D最大池化层   keras.layers.MaxPooling2D(pool_size=(2,2),                             strides=None,                             padding='valid',           ......
  • RPN FPN ROIPooling
    RPN(RegionProposalNetwork)介绍--->特点从backbone生成的FetureMap中用一个3x3的Conv卷积核遍历FeatureMap的每个点然后根据每个点的感受野,回到最初始的图像层,感受野的中心点就是锚框中心点,然后在中心点生成3种不同大小不同长宽比的锚框,然后根据卷积的结果对生成的锚框......
  • 几句话弄清楚Java参数传值还是传引用
    作者:fbysss关键字:Java传值传引用这是个老生常谈的问题了,引起过无数争论,但可以说一直没有一个令人满意的回答。有些人非要故弄玄虚,把传引用说成是栈里面放的是引用的值,说只有传值没有传引用,那看看这句经典名言吧:O'Reilly'sJavainaNutshellbyDavidFlanagan(seeResources)......
  • 池化层
    池化层池化操作池化操作是CNN中非常常见的一种操作,池化层是模仿人的视觉系统对数据进行降维,池化操作通常也叫做子采样(Subsampling)或降采样(Downsampling),在构建卷积神经网络时,往往会用在卷积层之后,通过池化来降低卷积层输出的特征维度,有效减少网络参数的同时还可以防止过拟合......
  • 池化层——pytorch版
    importtorchfromtorchimportnnfromd2limporttorchasd2l#实现池化层的正向传播defpool2d(x,pool_size,mode='max'):#获取窗口大小p_h,p_w=pool_size#获取偏移量y=torch.zeros((x.shape[0]-p_h+1,x.shape[1]-p_w+1))foriinrange(y.sh......
  • 数据建模来拯救:弄清楚什麽功能优先级真正重要
     作为一个产品经理经常会遇到非常多的产品需求,开发同学忙的不可开交,用户又似乎什么都想要。开发产品资源有限,怎么才能捞出真正的用户需求?给真正重要的需求高优先级?产品经理决定引进「KANO模型」,进行系统的需求梳理,对需求进行分析和提炼,提高效率。对客户需求进行分类并将其......
  • TensorFlow10.2 卷积神经网络-卷积神经网络池化层与采样
    ▪Pooling▪upsample▪ReLU我们看一下这个Subsampling层就是这个:这一层起到ReduceDim的作用。1Max/Avgpooling(下采样)keras.layers.MaxPooling2D(pool_size=,strides=,padding='valid',data_format=None)pool_size:池化窗口大小strides:池化步长,默认值等于p......