文章首发于微信公众号《与有三学AI》

【模型解读】pooling去哪儿了?

这是深度学习模型解读第5篇,本篇我们将介绍深度学习模型中的pooling。

作者&编辑 | 言有三

01 概述

相信大家都记得,LeNet5,AlexNet,Vgg系列的核心思想,是convolution+pooling的核心结构。

但是,不知道从何时开始,pooling没了,对,就是没了。这是mobilenet【1】可视化后的部分结构图,懒得去画block图了。

如今大部分情况下,pooling就出现在网络的最后,或者一些需要concat/add不同通道的block里面,为何?本文从3个方面来说说。

02 pooling是什么

pooling,小名池化。

上图就是一个池化的示意图,用了一个10*10的卷积核,对20*20的图像分块不重叠的进行了池化,池化之后featuremap为2*2的大小。

pooling有什么用呢?或者说为什么需要pooling呢?

原因有几个:

(1) 增大感受野

所谓感受野,即一个像素对应回原图的区域大小,假如没有pooling,一个3*3,步长为1的卷积,那么输出的一个像素的感受野就是3*3的区域,再加一个stride=1的3*3卷积,则感受野为5*5,我们看左上角像素的传播就明白了。

依次,再多一个卷积,则为7*7,如果想看到224*224的全图,大家可以算算需要多少卷积层。

假如我们在每一个卷积中间加上3*3的pooling呢?很明显感受野迅速增大,这就是pooling的一大用处。感受野的增加对于模型的能力的提升是必要的,正所谓“一叶障目则不见泰山也”。

(2) 平移不变性

我们希望目标的些许位置的移动,能得到相同的结果。因为pooling不断地抽象了区域的特征而不关心位置,所以pooling一定程度上增加了平移不变性。

(3) 容易优化,pooling是每个featuremap单独做降采样,与基于卷积的降采样相比,不需要参数,更容易优化。

03 如何去除pooling

那pooling是必要的吗?答案已经很明了了,不需要。文【2】做了详细的实验,在cifar,imagenet等多个数据集上实验结果表明,完全没有必要。因为我们可以用步长大于1的卷积来替代。

当步长不为1时,降采样的速度将变快。

当stride,也就是步长等于2,上面的5*5一次卷积后就为2*2了。这其实还减轻了重叠的卷积操作,通过卷积来学习了降采样,看起来好处还是不少的。

实验结果也佐证了这一点。

上面就是作者的实验结果,all-cnn-c相比convpool-cnn-c,就是在同等卷积层的基础上,去掉了pooling,结果B和C系列模型效果都是提升的,关于A,B,C系列具体细节大家可以参考文章。

总之,不管是文献的研究结果,以及大家的实际使用经验,都已经完全使用带步长的卷积替换掉了pooling这一降采用的操作。

04pooling没用了吗?

答案是有,因为pooling相对于带步长的卷积操作,毕竟减少了计算量,所以对于很多需要concat/add featuremap通道的小模型,pooling仍然可以以小搏大。比如下面的shufflenet的block。

不过总的来说,pooling,走好。

参考文献

【1】Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. 2017.

【2】Springenberg J T, Dosovitskiy A, Brox T, et al. Striving for Simplicity: The All Convolutional Net[J]. Eprint Arxiv, 2014.

【3】Zhang X, Zhou X, Lin M, et al. ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices[J]. 2017.

同时,在我的知乎专栏也会开始同步更新这个模块,欢迎来交流

https://zhuanlan.zhihu.com/c_151876233

注:部分图片来自网络

—END—

转载请留言,侵权必究

本系列的完整目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【模型解读】pooling去哪儿了?相关推荐

  1. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

  2. 【模型解读】浅析RNN到LSTM

    卷积神经网络使用固定大小的矩阵作为输入(比如一张图片),然后输出一个固定大小的向量(比如不同分类的概率),适合于图像分类,目标检测,图像分割等.但是除了图像外,还有非常多的信息是非固定长度或者大小的, ...

  3. 【模型解读】从2D卷积到3D卷积,都有什么不一样

    接着模型解读系列,在中国科幻作家刘慈欣的科幻小说<三体Ⅲ·死神永生>中,首次提出了降维打击这个概念,这是本质上区别于同一维度的攻击,破坏性也更大. 而现在我们要说的是从二维卷积升级到三维卷 ...

  4. 【模型解读】“不正经”的卷积神经网络

    文章首发于微信公众号<与有三学AI> [模型解读]"不正经"的卷积神经网络 这是深度学习模型解读第7篇,本篇我们将介绍不规则形状的卷积. 作者&编辑 | 言有三 ...

  5. 【模型解读】“全连接”的卷积网络,有什么好?

    [模型解读]"全连接"的卷积网络,有什么好? 这是深度学习模型解读第8篇,本篇我们简单介绍Densenet. 作者&编辑 | 言有三 1 从skip connect到den ...

  6. 【模型解读】resnet中的残差连接,你确定真的看懂了?

    文章首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 作者&编辑 | ...

  7. 【模型解读】说说移动端基准模型MobileNets

    文章首发于微信公众号<与有三学AI> [模型解读]说说移动端基准模型MobileNets 这是深度学习模型解读第4篇,本篇我们将介绍MobileNets. 作者&编辑 | 言有三 ...

  8. 【模型解读】GoogLeNet中的inception结构,你看懂了吗

    文章首发于微信公众号<与有三学AI> [模型解读]GoogLeNet中的inception结构,你看懂了吗 这是深度学习模型解读第3篇,本篇我们将介绍GoogLeNet v1到v3. 作者 ...

  9. 【模型解读】network in network中的1*1卷积,你懂了吗

    文章首发于微信公众号<与有三学AI> [模型解读]network in network中的1*1卷积,你懂了吗 这是深度学习模型解读第二篇,本篇我们将介绍Network InNetwork ...

最新文章

  1. Docker核心技术之数据管理
  2. 房间计费系统改造——数据库设计
  3. 阿里巴巴公布“云钉一体”战略:阿里云与钉钉全面融合
  4. rref--计算行阶梯矩阵
  5. Oracle Database 12c(12.1) Beta已经开始内部测试
  6. 项目杂记——在后台获取Repeater控件里面的控件
  7. MySQL的行转列、列转行、连接字符串 concat、concat_ws、group_concat函数用法
  8. Memcache存储大数据的问题
  9. 2018数据技术嘉年华-金融峰会·重庆站即将起航!
  10. 热情不减!iPhone12国行首批供货已售罄
  11. 前端在H5页面唤起微信支付(H5支付)
  12. 计算机电路图解,几种常见的放大电路原理图解
  13. openwrt安装aliddns使用阿里云ddns
  14. 问卷与量表数据分析(SPSS+AMOS)学习笔记(十四) :量表初测阶段的信度分析,删除题项
  15. oracle dataguard坏块,dataguard主库坏块的修复
  16. 搭建自己的框架WedeNet(五)
  17. 使用mysql数据库_wuli大世界_新浪博客
  18. 希望Online -- 前10级快速功略 + 怪物掉的装备
  19. v3.exo是什么文件_exo是什么文件?
  20. MyBatis-Plus DQL与其他知识点

热门文章

  1. shiro教程:记住我功能
  2. 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
  3. 蓝桥杯练习系统习题-算法训练2
  4. 综合应用题:多线程复制文件(知识点:多线程、随机读写流)
  5. 优先级调度算法(C++实现)
  6. L2-005 集合相似度-PAT团体程序设计天梯赛GPLT
  7. 工业机器人调运角度_站在全球角度,看待中国工业机器人
  8. springboot引入lib包_springboot项目打包引入lib目录下jar包
  9. 【教程】Linux DNS 服务器安装、配置及维护
  10. 从零入门 Serverless | Knative 带来的极致 Serverless 体验