池化层作用机理

我们以最简单的最常用的max pooling最大池化层为例,对池化层作用机理进行探究。其他池化层的作用机理也大致适用这一机理,在这里就不加入讨论。

图片和以下部分内容来自 CS231n

从上面左图可以看到,使用了pool操作其实就是降低图片的空间尺寸。右图使用一个 2 × 2的 池化核(filter),以2为步长(stride),对图片进行max pooling,那么会图片就会尺寸就会减小一半。需要注意,这里是因为 stride = 2,所以图片尺寸才会减少一半的。

CS231n又对池化进行了量化的阐述:

上图表示的意思就是:

  1. 给定一个图片的三个维度的尺寸, 即【Channel, Height, Width】,以及给定两个超参数池化核尺寸 【F × F】,池化步长【S】,就可以计算池化后的图片尺寸,见上图公式。
  2. 池化核这个filter是不需要保留参数的,不同于conv filter, 每一个pooling filter就是一个固定的函数,比如max pooling,就是取这个filter覆盖区域像素的最大值而已。所以我们在计算卷积层数的时候,不计入池化层。
  3. 对于pooling 层,我们通常不需要使用 padding。这是由于采用pooling通常是为了减少一半的图片尺寸,我们使用 kernel size = 2 * 2,以及stride = 2的池化核。就可以在不padding 的情况下,将尺寸变为一半。

CS231n还介绍了另外一种常见的池化核, 其步长为 2,kernel size = 3 * 3, 叫做覆盖池化层,其含义也就是在前后两次的滤波窗口之间有一个像素的重叠。该池化核在AlexNet中得到了应用,见ImageNet Classification with Deep Convolutional
Neural Networks

It is worth noting that there are only two commonly seen variations of the max pooling layer found in practice:A pooling layer with F=3,S=2 (also called overlapping pooling), and more commonly F=2,S=2.

Pooling sizes with larger receptive fields are too destructive.

CS231n 同时也告诫我们,使用大尺寸的池化核去增大感受野是destructive(破坏性的)。这很容易理解,增大池化核,将损失更多的图片像素信息。

看到这里,你可能会有两个疑问:

  • 为什么可以降低图片空间尺寸呢?
  • 为什么要降低图片的空间尺寸呢?

这两个问题,其实是触及了池化技术的本质:在尽可能保留图片空间信息的前提下,降低图片的尺寸,增大卷积核感受野,提取高层特征,同时减少网络参数量,预防过拟合。
先来探讨第一个问题。

  1. 为什么可以降低图片空间尺寸?

    这个问题很简单,等比例缩小图片,图片的主体内容丢失不多,具有平移,旋转,尺度的不变性,简单来说就是图片的主体内容依旧保存着原来大部分的空间信息。

  2. 为什么要降低图片的尺寸?
    我们知道在卷积神经网络中,如果特征抽取后最终输出特征图尺寸太大,将会导致输出结果的特征太多,计算量剧增的同时,将其输入到一个分类器(通常是全连接层Full Connected layer),很容易就会导致过拟合。就像机器学习一样,特征过多的话,我们可能会考虑降维(如PCA)来减少特征,增强拟合能力。
    简单来说:降低尺寸,有助于减少计算量以及特征数量,保留主要特征,增大卷积核感受野,防止过拟合。
    但我们在做卷积的时候,让conv 层的步长stride = 2同样也可以起到降低尺寸的目的啊,为什么需要pooling 层来降低尺寸,这就回到了上文的:池化层不需要保留参数。它采用一个固定的函数进行像素运算,如max pooling filter中采用了max函数,是不需要保留参数的,所以减少了网络的参数量。
    增大感受野是怎么回事,我们知道在实际训练中,我们的卷积核一般就是比较小的,如3 * 3,这些卷积核本质就是在特征图上进行滤波窗口计算并滑动。如果要保持卷积核大小不变,同时增大卷积核覆盖区域(感受野增大,便于提取高层语义),那么就可以对图片尺寸进行下采样。
    当然增大感受野也有其他方式,如膨胀卷积运算,在保证特征图尺寸不变的情况下,可以增大卷积核的感受野。

不过值得一提的是:在像素信息较为敏感的一些视觉任务中(如分割,检测),一般是较少使用pooling操作来下采样的,通常使用插值(如双线性插值等)或者stride=2的卷积层来进行下采样,尽可能的保留像素信息,这也是pooling操作的缺点,不过使用pooling也有其优点,就有无参数的好处。

如果你追求更加理论和硬核的pooling解释的话,我推荐你去看一下LeCun在10年ICML的论文:A Theoretical Analysis of Feature Pooling in Visual Recognition。

深度学习 | 深入解析CNN pooling 池化层原理及其作用相关推荐

  1. 深度学习笔记(25) 池化层

    深度学习笔记(25) 池化层 1. max pooling 2. mean pooling 3. pooling 超参 1. max pooling 除了卷积层,卷积网络也经常使用池化层来缩减模型的大 ...

  2. 【动手学深度学习PyTorch版】15 池化层

    上一篇请移步[动手学深度学习PyTorch版]14 卷积层里的多输入多输出通道_水w的博客-CSDN博客 目录 一.池化层 1.1 池化层 ◼池化层原因 ◼ 二维最大池化 1.2 填充.步幅与多个通道 ...

  3. 花书+吴恩达深度学习(十一)卷积神经网络 CNN 之池化层

    目录 0. 前言 1. 最大池化(max pooling) 2. 平移不变形 3. 其他池化函数 4. 卷积和池化作为一种无限强的先验 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常 ...

  4. 深度学习(十三)——花式池化, Batch Normalization

    https://antkillerfarm.github.io/ 花式池化 池化和卷积一样,都是信号采样的一种方式. 普通池化 池化的一般步骤是:选择区域P,令Y=f(P)Y=f(P).这里的f为池化 ...

  5. 深度学习笔记 5 卷积、池化

    目录 1. 卷积 1.1 卷积的目的 1.2 卷积的基本属性 1.3 卷积的特点 2. 卷积分类与计算 2.1 标准卷积 2.2 反卷积(转置卷积) ​2.3 空洞卷积 2.4 深度可分离卷积 2.5 ...

  6. 系统学习深度学习(十二)--池化

    转自:http://blog.csdn.net/danieljianfeng/article/details/42433475 在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过 ...

  7. 深度学习笔记---卷积特征提取与池化

    卷积特征提取与池化 一.卷积特征提取 全联通网络( Full Connected Networks ) 在稀疏自编码章节中,我们介绍了把输入层和隐含层进行"全连接"的设计.从计算的 ...

  8. 深度学习--卷积神经网络CNN

    主要内容 1. 神经网络 1.1 感知器 1.2 Sigmoid神经元 1.3 神经网络 2. 卷积神经网络CNN 2.1 卷积神经网络结构 2.2 数据输入层 2.3 卷积层 2.3.1 局部感知( ...

  9. 39_上下采样、MaxPool2d、AvgPool2d、ReLU案例、二维最大池化层和平均池化层、填充和步幅、多通道

    1.34.PyTorch Down/up sample (pytorch上下采样) 1.34.1. 首先介绍下采样 1.34.1.1. MaxPool2d案例 1.34.1.2. AvgPool2d案 ...

最新文章

  1. 20110125 学习记录:在SQL Server 2005数据库中修改存储过程
  2. 程序时序图 Sequence Diagram(序列图) UML图(数据流程图)的绘制
  3. JavaScript eval() 函数
  4. android 仿360浮动,Android--模仿360底部导航按钮
  5. 一键启动Zookeeper集群
  6. AOP框架Dora.Interception 3.0 [1]: 编程体验
  7. gradle 构建 Smack 报错:Can't find android.jar for 8 API. + steps for building android platform
  8. Windows Phone
  9. 计算机会计简要回答会计电算化的作用,会计电算化在学校财务管理中的作用
  10. ionic轮播,滑动之后不进行轮播
  11. 15 Process State and O.S. Scheduling
  12. 配置SCCM 2012 SP1(七)操作系统部署
  13. 牛客练习赛24 C PH试纸
  14. 数据结构与算法快慢指针
  15. 虚化4独立游戏开发第一章:策划案
  16. 无线WIFI I/O控制器技术分享
  17. JetBrains下载历史版本(IDEA、PyCharm、WebStorm、PhpStorm等)
  18. 作文第一次用计算机350,第一次做饭作文350字作文字
  19. CVPR 2022|上海交大腾讯优图提出IFRNet:视频插帧新范式新SOTA
  20. Sdkman运行时INTERNET NOT REACHABLE问题和解决

热门文章

  1. Fundebug支持浏览器报警
  2. 美股日志:道指泻300三周连升断缆
  3. snapshot画法小结
  4. window编译php,php windows 编译
  5. 安卓学习之解析json数据
  6. springboot集成rabbitmq死信队列的延时队列使用
  7. web漏洞之需要准备的工作:信息收集
  8. python 文本聚类
  9. 程序员!!!程序员的打油诗
  10. 端午小长假即将来临,业绩冲刺就靠TA了!