Pytorch学习——池化层

池化层的来源

池化层是深度学习中常用组件之一,在当前大部分的神经网络结构中都会使用池化层。 池化层最早来源于LeNet一文,当时被称为SumSample。在AlexNet之后采用Pooling命名, 后续沿用了该命名。

池化层的作用

池化层模拟的人的视觉系统对数据进行降维,使用数据更高层次的特征维度进行学习。通过对特征实施池化,可达到如下效果:

(1) 降低信息冗余。通过相关的池化操作,例如最大值池化,可用将局部无用的信息出去。

(2) 提升模型的尺寸不变性、旋转不变性: 对某个区域做了池化, 即使图像平移/旋转几个像素, 得到的输出值也基本一样。 

(3) 防止过拟合。在图像深度学习中图像尺寸过大, 引入池化可减少参数矩阵的赤军,减少最后全连接中的参数数量。

常见的池化层包包含以下几种: 最大值池化、均值池化、中值池化等。

最大值池化——MaxPooling

随机池化—StochasticPooling

在ICLR2013上,作者Zeiler提出了另一种pooling手段(最常见的就是mean-pooling和max-pooling),叫stochastic pooling。只需要对Feature Map中的元素按照其概率值大小随机选择,元素选中的概率与其数值大小正相关,并非如同max pooling那样直接选取最大值。这种随机池化操作不但最大化地保证了取值的Max,也部分确保不会所有的元素都被选取max值,从而提高了泛化能力。

随机池化只需对feature map中的元素按照其概率值大小随机选择,即元素值大的被选中的概率也大。而不像max-pooling那样,永远只取那个最大值元素

S3Pool: Pooling with Stochastic Spatial Sampling
CVPR2017
https://github.com/Shuangfei/s3pool

计算过程

1)计算方格中元素的和sum, 再将每个元素除以sum,得到包含每个元素的概率矩阵。
2)在池化的过程中,按照概率随机选中方格,取该方格的值作为池化值。

Stochastic pooling 可以看作在一个池化窗口内 对特征图数值进行归一化, 按照特征图归一化后的 概率值大小随机采样选择,即元素值大的被选中的概率也大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值