【深度学习】池化 (pooling)

2023-11-02

深度学习中,有两种实现非线性的算子。一个是激活函数,另一个就是池化(pooling):
这里写图片描述

在知乎上面看到一个关于池化的神解释,摘来:

池化=涨水
卷积的目的是为了得到物体的边缘形状

可以想象水要了解山立体的形状
水位低时得出山脚的形状
水位中等时得出山腰的形状
水位高时得出山顶的形状

三点就可以大致描出山的简笔画

池化的过程=升高水位(扩大矩阵网格)
卷积的过程是区分哪里是水,哪里是山

加上一点个人理解:

对于网络结构而言,上面的层看下面的层经过pooling后传上来的特征图,就好像在太空上俯瞰地球,看到的只有山脊和雪峰。这即是对特征进行宏观上的进一步抽象。

那么为什么需要 进行抽象 呢?

因为:经过池化后,得到的是 概要统计特征 。它们不仅 具有低得多的维度 (相比使用所有提取得到的特征),同时还会 改善结果(不容易过拟合)

max_pooling: 夜晚的地球俯瞰图,灯光耀眼的穿透性让人们只注意到最max的部分,产生亮光区域被放大的视觉错觉。故而 max_pooling 对较抽象一点的特征(如纹理)提取更好。
这里写图片描述

average_pooling: 白天的地球俯瞰图,幅员辽阔的地球表面,仿佛被经过了二次插值的缩小,所有看到的都是像素点取平均的结果。故而 average_pooling 对较形象的特征(如背景信息)保留更好。
这里写图片描述

BP

CNN中一些特殊环节的反向传播

max_pooling的反向传播

把梯度直接传给前一层最max的像素,其余像素为0。

在这里插入图片描述

avg_pooling的反向传播

根据映射关系,把梯度均分成n份传给前一层。

在这里插入图片描述

Thinking

选用 max_pooling 还是 average_pooling ,要看需要识别的图像细节特征情况。知乎上说 二者差异不会超过 2% ,这个我深表质疑。

相比之下,个人感觉 max_pooling 是比 average_pooling 更抽象化的操作,因此可以抽象出更高级一点的特征。

由于pooling太过粗暴,操作复杂,目前业界已经逐渐放弃了对pooling的使用。替代方案 如下:

  • 采用 Global Pooling 以简化计算;

  • 增大conv的 stride 以免去附加的pooling操作。


[1] CNN中一些特殊环节的反向传播
[2] 深度学习cnn中,怎么理解图像进行池化(pooling)后的平移不变性?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习】池化 (pooling) 的相关文章

随机推荐

  • html随机点名函数,利用JS实现课堂随机点名和顺序点名

    1 效果 ScreenGif gif 2 Html代码 随机点名区域 3 JavaScript代码 var i 0 t用来接收setTimeOut 的返回值 var t var st 张三 李四 老王 旺财 铁柱 王八 来福 小明 小红 狗
  • 时域OCT与频域OCT的区别

    时域OCT TD OCT 与频域OCT FD OCT 的最大区别在于信号采集单元 也就是检测器部分 时域 用光电探测器进行点探测 频域 用光谱仪进行光谱的采集 一般多用光栅和线阵CCD阵列为核心的小型光谱仪 按照分光原件不同分的 1 1 g
  • 类文件具有错误的版本 55.0, 应为 52.0

    文章目录 背景 原因 解决方案 方案一 条件 使用idea本身maven的编译命令的话 使用命令编译的话 mac怎么查看安装的jdk目录 mac怎么修改默认是jdk11 1 evanyang Evans MacBook Pro vim ba
  • 在ubuntu中安装Jenkins

    安装前的准备 一台 ubuntu 主机 本篇文章使用的是Ubuntu 16 04 5 LTS 切换到root用户 安装 Jenkins 第一次安装的可以稍微看下jenkins 的安装文档 总之 如果没有安装 Java 需要安装一下 下面是目
  • pickle库的使用

    pickle 作用 把一个列表 迭代类型变量 存储为序列化对象 不以字符串存 而是以序列存 存好后下次取出依旧是列表 迭代类型变量 意义 即把迭代变量保存到硬盘中 而不只是存在内存里 可以方便直接提供给他人一个变量而不用给比人一整段代码 存
  • SpringCloud学习笔记(二)

    续 一 负载均衡的第二种实现方式Feign 前面在使用Ribbon RestTemplate时 利用RestTemplate对Http请求的封装处理 形成了一套模板化的调用方法 但是使用 RestTemplate 还是不方便 这样每次都调用
  • 87-信号和槽-基于Qt Designer 的信号与槽

    基于Qt Designer 的信号与槽 可以使用 Qt Designer 创建信号与槽 这种方式的好处是可以可视化创建页面视图 少写很多代码 只需要关注逻辑部分就可以 本节案例要实现的功能如下 通过一个模拟打印的界面来详细说明信号的使用 在
  • Flutter的手势识别功能实现GestureDetector

    GestureDetector简介 GestureDetector 是 Flutter 中一个非常常用的小部件 它提供了许多手势识别的功能 包括点击 双击 长按 拖动 缩放等等 使用方法 GestureDetector 可以包裹其他部件 当
  • jenkins pipeline中获取shell命令的标准输出或者状态

    获取标准输出 第一种 result sh returnStdout true script
  • args在python中什么意思_Python中*args、**args到底是什么、有啥区别、怎么用

    调用函数时使用 和 假设有函数 def test a b c test args 的作用其实就是把序列 args 中的每个元素 当作位置参数传进去 比如上面这个代码 如果 args 等于 1 2 3 那么这个代码就等价于 test 1 2
  • BUUCTF-[Misc杂项]---二维码

    目录 BUUCTF Misc杂项 二维码 题目 题解 BUUCTF Misc杂项 二维码 题目 题解 下载附加压缩包并打开 打开后发现是一张png图片 解压下来 解压后是一张二维码图片 我们直接放到二维码查看器工具当中 得到此条信息 我们继
  • c# global::

    Global 表示所有命名空间的根部 Global asa 文件的作用主要是用于站点或虚拟目录下程序的数据共享和多线程 在 global asa 中 可以声明 Application 事件和 Session 事件 并可以声明一些 Sessi
  • Windows安装pip方法

    pip是一款非常方便的python包管理工具 本文主要介绍在windows 10下安装pip方法 1 下载pip 地址 https pypi python org pypi pip downloads 注意选择tar gz压缩包 目前最新版
  • 服务器系统版本选择,云服务器选择系统版本

    云服务器选择系统版本 内容精选 换一换 使用弹性云服务器或者外部镜像文件创建私有镜像时 必须确保操作系统中已安装PV driver 使新发放的云服务器支持XEN虚拟化 同时也可以提升云服务器的I O处理性能 实现对云服务器硬件的监控和其他高
  • MobileNet ShuffleNet & yolov5替换backbone

    以下内容参考参考 MobileNet V1 亮点 1 使用可分离卷积核大幅减少参数量 2 增加了超参数a b a 卷积核个数的倍率 b 分辨率高低 MobileNet V2 亮点 1 使用倒结构残差 残差结构 两边粗 中间细 倒残差结构 两
  • uniapp为page设置背景色不生效 & lang=“scss“ scoped的page样式失效,uniapp重复打开页面

    一 lang scss scoped中的page选择器的样式失效 在用uniapp生成网页和H5时有效 但生成小程序或者app时无效 这是因为page选择器在小程序和app编译中是页面的父节点 所以加上scoped限定后 会导致无法选中 详
  • 《Centos6.5——图形化安装虚拟机》

    目录 安装虚拟机以及虚拟机的配置 1 先下载镜像 2 安装VMware Workstation 3 打开vm 点击创建新的虚拟机 1 一路下一步 直到选择镜像 2 继续下一步 直到如下图 选择CD 选择镜像后点击确定 然后点击开启虚拟机 3
  • 阿里云-云存储OSS

    1 简述OSS 数据的可靠性较强 三重备份 系统的安全性较强 对称加密 签名权限控制以及防盗链功能 文件存储的容量无限 无需人工运维 部署扩容 无需规则 按需扩容 提供丰富的API接口 SDK包 客户端工具台 控制台 方便应用程序调用 安全
  • 基于Python和mysql开发的今天吃什么微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

    一 项目简介 本项目是一套基于Python和mysql开发的今天吃什么微信小程序 主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者 包含 项目源码 项目文档 数据库脚本等 该项目附带全部源码可作为毕设使用 项目
  • 【深度学习】池化 (pooling)

    深度学习中 有两种实现非线性的算子 一个是激活函数 另一个就是池化 pooling 在知乎上面看到一个关于池化的神解释 摘来 池化 涨水 卷积的目的是为了得到物体的边缘形状 可以想象水要了解山立体的形状 水位低时得出山脚的形状 水位中等时得