当前位置: 首页 > news >正文

池化层是有什么作用

在该网络结构中,存在一个最大池化层和一个全局平均池化层,而在其他的CNN网络中,也会时而看到池化层的出现。那么,什么是池化层呢?在CNN网络中,池化层又能起到什么作用?

池化
池化一般接在卷积过程后。

池化,也叫Pooling,其本质其实就是采样,池化对于输入的图片,选择某种方式对其进行压缩,以加快神经网络的运算速度。这里说的某种方式,其实就是池化的算法,比如最大池化或平均池化。

池化过程类似于卷积过程。

上图表示的就是对一个图片邻域内的值,用一个 2x2 的池化kernel,步长为2进行扫描,选择最大值输出,称为最大池化。

最大池化 MaxPool 常用的参数为 kernel = 2, stride = 2 ,这样的参数处理效果就是输出图片的高度、宽度减半,通道数不变。

还有一种叫平均池化,和最大池化类似,就是将取区域内最大值改为求这个区域的平均值。

和卷积类比
和卷积类比,池化操作也有一个核(kernel),但它不是卷积核。池化的核只负责框定某次池化计算需要的图片的范围,核里面并没有数据参与计算,也就是说,在训练过程中,池化层不像卷积层那样,需要学习权重。

另一个与卷积不同的是,在卷积的计算中,需要channel维度的数据累加,而池化层的channel维度的数据不需要累加,每个channel中的数据是独立的,这也导致,池化的运算复杂度比卷积简单很多。

下图是卷积和池化的示意图,通过两张图,大致可以看出两者的不同。

动图封面
动图封面
神经网络中为什么需要池化层?
特征不变性
汇合操作使模型更关注是否存在某些特征而不是特征具体的位置,可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移。即池化层支持了一定的平移、旋转、拉伸不变性,这个特性就是有点抽丝剥茧的意思,不断用小特征对大特征进行精简。
如下图,通过池化操作,图片中的黑色特征在输出图片中,仍然被保留了下来,虽然有些许的误差。

动图
降维
如上的例子,图片经过池化的操作,可以减小图片的尺寸,同时又可以保留相应特征,所以主要用来降维。

防止过拟合
由于池化层没有需要学习的参数,因此,在训练的过程中,可以在一定程度上防止过拟合的发生。

降低模型计算量
池化的操作,会在保留原始图片特征不变的情况下,将图片尺寸缩小,从而减少整个模型的计算量。

在神经网络的训练和推理过程中,一个维度的计算量减倍,往往会带来一个数量级的性能提升,尤其是在训练过程动辄迭代成千上万次的训练场景中。

使用池化算法,在减少图片的宽和高尺寸的同时,也会给模型的训练和推理带来更优异的性能提升。

One More Thing
除了上述最大池化和平均池化外,池化还有很多变种。最常见的一种变体就是全局池化。

全局池化的kernel大小和图片大小一样,因此最终输出的图片大小就是一个点。这种全局池化操作,后面一般用来接全连接层,从而进行分类。如Resnet50最后一层全连接层前,就是一个全局平均池化层。

相关文章:

  • Redis - 订阅发布替换 Etcd 解决方案
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • 常用免费网站总结(自用)
  • 如何在3DMax中使用超过16个材质ID通道?
  • 避免defer陷阱:拆解延迟语句,掌握正确使用方法
  • 微服务的注册发现和微服务架构下的负载均衡
  • cocos----1
  • 压力测试总共需要几个步骤?思路总结篇
  • 想买GPT4会员却只能排队?来看看背后的故事!
  • Linux安装Docker完整教程
  • 【C++11】线程库
  • 假如我是AI Agent专家,你会问什么来测试我的水平
  • 67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。
  • 【2016年数据结构真题】
  • DQL、DML、DDL、DCL的概念与区别
  • Angular 4.x 动态创建组件
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • HTTP--网络协议分层,http历史(二)
  • Invalidate和postInvalidate的区别
  • java中具有继承关系的类及其对象初始化顺序
  • Next.js之基础概念(二)
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • XForms - 更强大的Form
  • 测试如何在敏捷团队中工作?
  • 将 Measurements 和 Units 应用到物理学
  • 京东美团研发面经
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端设计模式
  • 时间复杂度与空间复杂度分析
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 源码安装memcached和php memcache扩展
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #etcd#安装时出错
  • #if #elif #endif
  • $.ajax()
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Java数据结构)ArrayList
  • (ZT)薛涌:谈贫说富
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)基于IDEA的JAVA基础1
  • (转)jdk与jre的区别
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .net MySql
  • .Net 应用中使用dot trace进行性能诊断
  • .net下的富文本编辑器FCKeditor的配置方法
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @Autowired注解的实现原理
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Resource和@Autowired的区别
  • @Valid和@NotNull字段校验使用
  • @拔赤:Web前端开发十日谈
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [1181]linux两台服务器之间传输文件和文件夹