深入解析CNN pooling 池化层原理及其作用
原文地址:https://blog.csdn.net/CVSvsvsvsvs/article/details/90477062
我们以最简单的最常用的max pooling最大池化层为例,对池化层作用机理进行探究。其他池化层的作用机理也大致适用这一机理,在这里就不加入讨论。
CS231n又对池化进行了量化的阐述:
池化核这个filter是不需要保留参数的,不同于conv filter, 每一个pooling filter就是一个固定的函数,比如max pooling,就是取这个filter覆盖区域像素的最大值而已。所以我们在计算卷积层数的时候,不计入池化层。
对于pooling 层,我们通常不需要使用 padding。这是由于采用pooling通常是为了减少一半的图片尺寸,我们使用 kernel size = 2 * 2,以及stride = 2的池化核。就可以在不padding 的情况下,将尺寸变为一半。
Neural Networks
看到这里,你可能会有两个疑问:
为什么要降低图片的空间尺寸呢?
先来探讨第一个问题。
我们知道在卷积神经网络中,如果特征抽取后最终输出特征图尺寸太大,将会导致输出结果的特征太多,计算量剧增的同时,将其输入到一个分类器(通常是全连接层Full Connected layer),很容易就会导致过拟合。就像机器学习一样,特征过多的话,我们可能会考虑降维(如PCA)来减少特征,增强拟合能力。
简单来说:降低尺寸,有助于减少计算量以及特征数量,保留主要特征,增大卷积核感受野,防止过拟合。
但我们在做卷积的时候,让conv 层的步长stride = 2同样也可以起到降低尺寸的目的啊,为什么需要pooling 层来降低尺寸,这就回到了上文的:池化层不需要保留参数。它采用一个固定的函数进行像素运算,如max pooling filter中采用了max函数,是不需要保留参数的,所以减少了网络的参数量。
增大感受野是怎么回事,我们知道在实际训练中,我们的卷积核一般就是比较小的,如3 * 3,这些卷积核本质就是在特征图上进行滤波窗口计算并滑动。如果要保持卷积核大小不变,同时增大卷积核覆盖区域(感受野增大,便于提取高层语义),那么就可以对图片尺寸进行下采样。
当然增大感受野也有其他方式,如膨胀卷积运算,在保证特征图尺寸不变的情况下,可以增大卷积核的感受野。
如果你追求更加理论和硬核的pooling解释的话,我推荐你去看一下LeCun在10年ICML的论文:A Theoretical Analysis of Feature Pooling in Visual Recognition。
————————————————
版权声明:本文为CSDN博主「qyhyzard」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CVSvsvsvsvs/article/details/90477062
深入解析CNN pooling 池化层原理及其作用的更多相关文章
- CNN之池化层tf.nn.max_pool | tf.nn.avg_pool | tf.reduce_mean | padding的规则解释
摘要:池化层的主要目的是降维,通过滤波器映射区域内取最大值.平均值等操作. 均值池化:tf.nn.avg_pool(input,ksize,strides,padding) 最大池化:tf.nn.ma ...
- 【深度学习篇】--神经网络中的池化层和CNN架构模型
一.前述 本文讲述池化层和经典神经网络中的架构模型. 二.池化Pooling 1.目标 降采样subsample,shrink(浓缩),减少计算负荷,减少内存使用,参数数量减少(也可防止过拟合)减少输 ...
- ubuntu之路——day17.3 简单的CNN和CNN的常用结构池化层
来看上图的简单CNN: 从39x39x3的原始图像 不填充且步长为1的情况下经过3x3的10个filter卷积后 得到了 37x37x10的数据 不填充且步长为2的情况下经过5x5的20个filter ...
- 神经网络中的池化层(pooling)
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合).为什么可以通过降低维度呢? 因为图像具有一种“静态性”的属性,这 ...
- day-16 CNN卷积神经网络算法之Max pooling池化操作学习
利用CNN卷积神经网络进行训练时,进行完卷积运算,还需要接着进行Max pooling池化操作,目的是在尽量不丢失图像特征前期下,对图像进行downsampling. 首先看下max pooling的 ...
- CNN学习笔记:池化层
CNN学习笔记:池化层 池化 池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的降采样.有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见 ...
- CNN中卷积层 池化层反向传播
参考:https://blog.csdn.net/kyang624823/article/details/78633897 卷积层 池化层反向传播: 1,CNN的前向传播 a)对于卷积层,卷积核与输入 ...
- tensorflow 1.0 学习:池化层(pooling)和全连接层(dense)
池化层定义在 tensorflow/python/layers/pooling.py. 有最大值池化和均值池化. 1.tf.layers.max_pooling2d max_pooling2d( in ...
- 图像处理池化层pooling和卷积核
1.池化层的作用 在卷积神经网络中,卷积层之间往往会加上一个池化层.池化层可以非常有效地缩小参数矩阵的尺寸,从而减少最后全连层中的参数数量.使用池化层即可以加快计算速度也有防止过拟合的作用. 2.为什 ...
随机推荐
- CentOS7 SVN基本配置
开机自启指令如下 systemctl enable svnserve.service 对应可执行脚本文件路径 vim /etc/sysconfig/svnserve 查看状态: ps -ef|grep ...
- RabbitMQ核心技术总结
RabbitMQ和kafka类似,也是一个消息服务.RabbitMQ是轻量级的,易于部署在内部和云端.RabbitMQ支持多种消息协议,可以部署在分布式集群中,能够满足高规模,高可用性要求.Rabbi ...
- 记一次启动Tomcat 控制台以及log4j 乱码问题
Tomcat启动乱码 问题描述:当你发现你的Tomcat启动时乱码了,而你只是换了个Tomcat版本而已. 在找到真正的问题之前,我在网上百度了N多的资料,都试过了,但是都不行.1.修改了 windo ...
- Linux进程管理工具之ps
1.PS进程管理指令 ps -aux USER:用户名称 PID:进程号 %CPU:进程占用CPU的百分比 %MEM:进程占用物理内存的百分比 VSZ:进程占用的虚拟内存大小(单位:KB) RS ...
- PAT Basic 1001 害死人不偿命的(3n+1)猜想 (15 分)
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 年的世界 ...
- html base标签 target=_parent使用介绍
<base>标签为页面上的所有链接规定默认地址或默认目标. 通常情况下,浏览器会从当前文档的URL中提取相应的元素来填写相对URL中的空白. 使用<base> 标签可以改变这一 ...
- .NET界面控件DevExpress全新发布v19.1.5|改进Office 2019主题
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- k8spod控制器概述
自主式pod对象由调度器绑定至目标工作节点后即由相应节点上的kubelet负责监控其容器的存活性,容器主进程崩溃后,kubelet能够自动重启相应的容器.不过,kubelet对非主进程崩溃类的容器错误 ...
- hiho #1502:最大子矩阵(元素和不超过k)
#1502 : 最大子矩阵 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该 ...
- Acwing-96-奇怪的汉诺塔(递推)
链接: https://www.acwing.com/problem/content/description/98/ 题意: 汉诺塔问题,条件如下: 1.这里有A.B.C和D四座塔. 2.这里有n个圆 ...