对Max Pooling的理解
Max Pooling是什么
在卷积后还会有一个 pooling 的操作。
max pooling 的操作如下图所示:整个图片被不重叠的分割成若干个同样大小的小块(pooling size)。每个小块内只取最大的数字,再舍弃其他节点后,保持原有的平面结构得出 output。
注意区分max pooling(最大值池化)和卷积核的操作区别:池化作用于图像中不重合的区域(这与卷积操作不同)
这个图中,原来是4*4的图片。优于不会重合,所以filter的大小和步长stride是相等的,为2.
粉色区域最大值为6,得到的该区域结果是6,绿色是8,黄色是3,紫色是4.
有一个动图:
PS:发现其实是有重叠池化的(overlapping pooling)相邻池化窗口之间会有重叠区域,此时filter的大小sizeX>stride步长。
Max Pooling的作用
作用1:invariance(不变性)
invariance(不变性),这种不变性包括translation(平移)不变性,rotation(旋转)不变性,scale(尺度)不变性。
(1)translation平移
图中左边两个大图,表示数字1,但是两个的位置不同,上者经过向右平移得到下者。经过池化后,得到了相同的结果。
(2)rotation
左边大图表示的是汉字“一”(姑且这么理解吧,明白就行)。经过两次池化得到了相同的结果。
(3)scale
左边大图表示的是数字0,经过两次池化得到了相同的结果。
再举一个例子:
考虑黄色区域中黑色的形状-----“横折”。经过2*2的filter之后,得到了3*3的output;
经过3*3的最大池化后,都得到了1*1的output 为3.
可以看出,“横折”这个形状,在经过池化后得到的结果是相同的,这就减小下一层输入大小,减小计算量和参数个数,降维(减小feature map的尺寸)。
作用2:增大感受野
可能跟作用1的结论有些因果关系。
首先它第一个作用是降低feature map的尺寸,减少需要训练的参数;其次,因为有缩小的作用,所以之前的4个像素点,现在压缩成1个。那么,相当于我透过这1个点,就可以看到前面的4个点,这不就是把当前map的感受野一下子放大了嘛(参考)
听说pooling层可以消失
因为我们可以用步长大于1的卷积来替代。
害,我觉得这肯定是要付出时间代价的emmmm,参数也多。
有人做了实验。
上图是3个CNN的结构模型:①Strided-CNN-C直接使用的conv. + ReLU; ② ConvPool-CNN-C使用了max-pooling,大小为2;③All-CNN-C未使用max-pooling,使用的是步长为2的卷积。
结果如下:
嗯,错误率降低了。
Springenberg J T, Dosovitskiy A, Brox T, et al. Striving for Simplicity: The AllConvolutional Net[J]. Eprint Arxiv, 2014.
还是可以用pooling的
因为pooling相对于带步长的卷积操作,毕竟减少了计算量,所以对于很多需要concat/add featuremap通道的小模型,pooling仍然可以以小搏大。比如下面的shufflenet的block。
Zhang X, Zhou X, Lin M, et al. ShuffleNet: An Extremely EfficientConvolutional Neural Network for Mobile Devices[J]. 2017.
参考链接
https://www.jianshu.com/p/c3ba4ca849d3
https://blog.csdn.net/jiachen0212/article/details/78548667
https://www.cnblogs.com/ying-chease/p/8658351.html
https://www.sohu.com/a/160924449_651893
https://www.cnblogs.com/guoyaohua/p/8674228.html
https://blog.csdn.net/dulingtingzi/article/details/79848625
https://blog.csdn.net/u010402786/article/details/51541465
对Max Pooling的理解相关推荐
- CNN max pooling、Relu、round 等环节梯度如何反传?
神经网络中,一个小的trick有可能让网络performance变得非常好.对于神经网络的理解,我们不应该停留在对于pytorch.tf等的依赖上,他们经常性的考虑到了我们可能出错的地方,并进行了修正 ...
- 自然语言处理中CNN模型几种常见的Max Pooling操作
/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 (想更系统地学习深度学习知识?请参考:深度学习枕边书) CNN是目前自然语言处理中和RNN并驾齐驱的两 ...
- CNNs中,什么是max pooling, 为什么需要max pooling
max pooling是发生在卷积层与池化层的一种图片压缩方法. 而卷积层和池化层是CNNs中最重要的两部分,因为有卷积层, 所以叫做卷积神经网络. 假设一张2d, 一层的图片, 大小为4 * 4, ...
- 【阅读笔记】Why Discard if You can Recycle?: A Recycling Max Pooling Module for 3D Point Cloud Analysis
Why Discard if You can Recycle?:A Recycling Max Pooling Module for 3D Point Cloud Analysis 如果可以回收,为什 ...
- 人脸识别---Gabor特征(mean pooling和max pooling)
Abstract-本文主要讲解Gabor特征在人脸识别中的使用. 在此不讲Gabor滤波器的原理,网上有很多博客已经介绍了大量关于Gabor滤波器.此文讲下提取出来后的Gabor滤波器的处 ...
- 【CV】图像分类中的max pooling和average pooling区别
卷积神经网络中,经常采用池化操作,一般都会在卷积层后面接一个池化操作.近些年,比较主流的ImageNet的分类算法模型都是使用max pooling,很少使用average Pooling,这对我们平 ...
- Global Average Pooling与FC、Global Max Pooling的比较
原文 Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模 ...
- 深度学习:使用卷积网络实现计算机图像识别,卷积和max pooling操作介绍
深度学习在计算机图像识别上的应用非常成功.利用深度学习,我们能够对图片进行高精度识别,实现这一功能的,主要依靠神经网络中的一种分支,名为卷积网络.卷积网络与我们前面实现的网络不通之处在于,它可以直接接 ...
- 对CNN中pooling的理解
自己在看论文的过程中结合网上的一些资料,对pooling的一些理解汇总如下,以供参考: 1.pooling主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,pooling相关技术在其他领 ...
最新文章
- 【蓝桥杯】【入门题】【算法提高VIP】1480:模拟计算器
- 【转】如何拿到半数面试公司Offer——我的Python求职之路
- GDCM:rle转img文件的测试程序
- 买房贷款时为什么银行让客户选等额本息,这是不是个坑?
- Android listview addHeaderView 和 addFooterView 详解
- Android NFC开发-理论篇
- omnigraffle 画曲线_「技法」三步学会用绘图利器 OmniGraffle 绘制流程图
- 如何设置IntelliJ IDEA智能感知支持Jsp内置对象
- unity 闪烁的gui button
- SQL注入了解认识及注入方式
- 剪贴板是计算机系统,剪贴板怎么打开,小编教你电脑剪贴板怎么打开
- 【Apache运维基础(5)】Apache的Rewrite攻略(2)
- Ajax破解的常见思路
- 03 学生免费注册Pycharm专业版
- 传统相声台词-太平歌词大实话
- 知识百科:针式打印机打印头是核心技术
- 【书虫录】富爸爸穷爸爸
- 趣味小测试.C-Golang-Python的性能小对比
- AdGuard4.0新版本广告拦截程序 新增功能介绍
- java autoconf_「Autoconf」- 安装 @20210202