池化方法总结(Pooling)
FROM: http://demo.netfoucs.com/danieljianfeng/article/details/42433475#
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合)。
为什么可以通过降低维度呢?
因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)来代表这个区域的特征。[1]
1. 一般池化(General Pooling)
池化作用于图像中不重合的区域(这与卷积操作不同),过程如下图。
我们定义池化窗口的大小为sizeX,即下图中红色正方形的边长,定义两个相邻池化窗口的水平位移/竖直位移为stride。一般池化由于每一池化窗口都是不重复的,所以sizeX=stride。
最常见的池化操作为平均池化mean pooling和最大池化max pooling:
平均池化:计算图像区域的平均值作为该区域池化后的值。
最大池化:选图像区域的最大值作为该区域池化后的值。
2. 重叠池化(OverlappingPooling)[2]
重叠池化正如其名字所说的,相邻池化窗口之间会有重叠区域,此时sizeX>stride。
论文中[2]中,作者使用了重叠池化,其他的设置都不变的情况下, top-1和top-5 的错误率分别减少了0.4% 和0.3%。
3. 空金字塔池化(Spatial Pyramid Pooling)[3]
空间金字塔池化可以把任何尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。
一般的CNN都需要输入图像的大小是固定的,这是因为全连接层的输入需要固定输入维度,但在卷积操作是没有对图像尺度有限制,所有作者提出了空间金字塔池化,先让图像进行卷积操作,然后转化成维度相同的特征输入到全连接层,这个可以把CNN扩展到任意大小的图像。
空间金字塔池化的思想来自于Spatial Pyramid Model,它一个pooling变成了多个scale的pooling。用不同大小池化窗口作用于卷积特征,我们可以得到1X1,2X2,4X4的池化结果,由于conv5中共有256个过滤器,所以得到1个256维的特征,4个256个特征,以及16个256维的特征,然后把这21个256维特征链接起来输入全连接层,通过这种方式把不同大小的图像转化成相同维度的特征。
对于不同的图像要得到相同大小的pooling结果,就需要根据图像的大小动态的计算池化窗口的大小和步长。假设conv5输出的大小为a*a,需要得到n*n大小的池化结果,可以让窗口大小sizeX为,步长为 。下图以conv5输出的大小为13*13为例。
疑问:如果conv5输出的大小为14*14,[pool1*1]的sizeX=stride=14,[pool2*2]的sizeX=stride=7,这些都没有问题,但是,[pool4*4]的sizeX=5,stride=4,最后一列和最后一行特征没有被池化操作计算在内。
SPP其实就是一种多个scale的pooling,可以获取图像中的多尺度信息;在CNN中加入SPP后,可以让CNN处理任意大小的输入,这让模型变得更加的flexible。
4. Reference
[1] UFLDL_Tutorial
[2] Krizhevsky, I. Sutskever, andG. Hinton, “Imagenet classification with deep convolutional neural networks,”in NIPS,2012.
[3] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Su,Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition,LSVRC-2014 contest
池化方法总结(Pooling)相关推荐
- 池化方法总结(Pooling) 和卷积 。 第三部分讲的很好
池化方法总结(Pooling) 2016-01-12 22:55 5033人阅读 评论(2) 收藏 举报 分类: deep learning(18) 目录(?)[+] 在卷积神经网络中,我们经常会 ...
- 论文中提到的池化方法的总结
下面是论文中遇到的池化方法的总结 池化层是卷积神经网络中比较重要的一个层,他主要是为了降低与卷积层之间连接数所带来的计算负担. 1.Lp Pooling 它是以复杂细胞为模型的生物启发的池化过程.这个 ...
- 【CMU】图卷积神经网络中的池化综述,Pooling in Graph Convolutional Neural Network
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 图卷积神经网络(GCNNs)是深度学习技术在图结构数据问题上的一种强大的扩展.我们 ...
- R语言ggplot2可视化:可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
R语言ggplot2可视化:可视化人口金字塔图.人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法.人口金字塔图可以用来表示按体积排序的群体的分布.形成漏斗结构(Populati ...
- Python使用matplotlib可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
Python使用matplotlib可视化人口金字塔图.人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法.人口金字塔图可以用来表示按体积排序的群体的分布.形成漏斗结构(Popu ...
- 清华大学提出基于生成对抗神经网络的自然图像多风格卡通化方法并开源代码...
近日,清华大学刘永进教授课题组在 IEEE Transactions on Visualization and Computer Graphics 上发表论文,提出基于生成对抗神经网络的自然图像多风格 ...
- java 求集合平均数_图像二值化方法介绍(转载学习)
ImageJ中图像二值化方法介绍 概述 二值图像分析在对象识别与模式匹配中有重要作用,同时也在机器人视觉中也是图像处理的关键步骤,选择不同图像二值化方法得到的结果也不尽相同.本文介绍超过十种以上的基于 ...
- 卷积神经网络中的池化方法(pooling)总结
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合). 为什么可以通过降低维度呢? 因为图像具有一种"静态性 ...
- SublimeText3.2.1的汉化方法(也适用于3)
SublimeText3.2.1的汉化方法(也适用于3) [http://www.sublimetext.cn/]( http://www.sublimetext.cn/) [Sublime Text ...
最新文章
- win10系统修改Intel VT-x时进入不了BIOS问题
- ITK:Watch注册Registration
- HTML、CSS知识点总结,浅显易懂。
- vue怎么vw布局好用_Vue项目中使用vw实现移动端适配-阿里云开发者社区
- kibana创建索引_ELK 索引生命周期管理
- 【年终总结系列 2017】求职之路
- 数据仓库(2)数仓、大数据与传统数据库的区别
- 为什么恍然大悟与知识管理的几个感触:人艰不拆
- 存储器基本概念及分类介绍
- 电子书寻找方法汇总2
- 第1关 Numpy创建数组 (educoder
- visualVM 介绍 (一)
- 95年计算机专业的电脑,电脑怀旧98年至今20多年买的第一台电脑配置
- android 官方bootloader,安卓系统bootloader模式是什么?如何进入bootloader模式
- 【Python123】 存款买房(B)
- linux 硬连接和软连接
- 【P2P租车】宝驾租车:学大创始人李如彬再创业
- 网络服务器性能常见问题,服务器在使用过程中常见的误区有哪些?
- 胡适致毕业生:在不健全的中国,如何不堕落
- 将 Google 登录集成到您的 Android 应用中
热门文章
- 嵌入式Linux下跑自整定pid,告诉过你PID很重要,你不听
- linux内核网络协议栈--数据包的网卡驱动收发包过程(二十五)
- leetcode算法题--对链表进行插入排序
- threejs加载obj模型_Vulkan编程指南(章节31-载入模型)
- Mybatis原理分析之一:从JDBC到Mybatis
- 如何为网页添加小宠物挂件:小老鼠、金鱼等
- Scala学习 day01 Scala的类/方法/对象/单例对象
- Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002
- Ubuntu下 Oracle sqldeveloper中文目录、文件,select查询结果中:中文乱码
- 会计基础第一章模拟试题(1)