CNN一定需要池化层吗?

2020 年 8 月 19 日 CVer

本文转载自:GiantPandaCV

这是一篇ICLR2015的论文,文章针对现有网络设计,探索了「最大池化层是否能被卷积层给完全替代」。作者在 CIFAR10/100 数据集上设计了一系列对比实验,从而得出可以在不损失精度下,将最大池化层替换成卷积层的结论。

1. 前言

在现有的网络结构设计指导下,似乎卷积层后跟一个池化层下采样,已经是一个准则。我们重新思考了现有SOTA网络,并得出结论最大池化层是能被卷积层给替代。我们设计了一系列小网络,并提出了一种新的「反卷积方法」来去可视化CNN学习到的特征

2. 模型描述

为了理解池化层和卷积层为什么有效,我们返回到公式里面 我们令 「f为特征图」,W, H, N分别是特征图的「宽,高,通道数」对于一般的池化窗口为K的p范数下采样,我们有而对于一般的卷积层,我们需要设定一个权重,进行相乘,并将多个通道结果进行相加。最后再通过激活函数进行激活,形式如下「θ代表的是卷积核权重」, 从1到N求和,「代表是对多个特征图的卷积窗口进行求和」

这里有个细节需要强调下:「池化层是分别对每张特征图做池化/P范数操作」而卷积层在多通道情况下,「是通过相加各个特征图来进行特征融合」

因此在比较这两个公式后,论文里也说到:「池化层可以看作是一种 特征级别上的卷积,其激活函数为对应的p范数」

分析完上述公式后,作者假定了池化层有效的几个因素

  1. 「P范数形式能增加CNN的平移不变性」,这里存疑我后续会解释
  2. 池化层的下采样,能为后续的卷积操作 「提供更大的感受野」
  3. 池化层仅仅是在特征图上操作,不会带来额外的参数, 「因此有助于整个网络优化过程」

我们假设第二点是提升CNN性能的关键。我们有以下两个选择来替代池化层

  1. 去除掉池化层,将卷积层的步长变为2。这种方法参数量与此前一致
  2. 用步长为2的池化层,来替代池化层。由于引入新的卷积层,参数量会适当增加

考虑到3x3卷积叠加能达到5x5卷积的感受野,减少大量参数,我们也将其加入到实验对比。因此我们的网络设计如下

2.1 补充P范数

P范数定义如下即求「某个范围内x的P次方和」,最后「再开P次方」

「如果是平均池化」,我们可以看作是P=1的范数下采样,前面需要乘上一个系数 「K分之一」

2.2 CNN平移不变性的存疑

具体可以参考下 「证伪:CNN中的图片平移不变性」(https://zhuanlan.zhihu.com/p/38024868)

简单来说,我们下采样因子是固定的,常用的我们都是步长为2的操作,来进行叠加,缩小特征图分辨率

举个例子,1张224x224的图片,经过多次下采样至 7x7,那么整个采样因子就是 32x32。为了保证平移不变性,我需要让物体平移距离是32的整数倍。

换句话说,我相当于将整个图片划分成了32x32个小格子,物体需要落到这个格子里,才能具有不变性。这个概率是

3. 实验

我们在CIFAR10, CIFAR100, ImageNet2012数据集上进行测试

3.1 实验设置

我们在先前的Model C上,又引申出三种模型

  1. 第一个模型,将每一层最后一个卷积层步长设置为2,去除掉了池化层
  2. 第三个模型,将最大池化层以步长为2的卷积层替代
  3. 第二个模型,为了与第三个模型做对比,在保持相同卷积层时,用最大池化层下采样 因为原始的ModelC,已经包含了两次卷积层+一次池化层的结构。所以针对第一个模型就不再多设置一个模型对比

3.2 实验结果

首先我们来看下Model A,B,C 最主要的区别就是拿3x3卷积来替代大卷积核和部分1x1卷积。事实证明使用3x3卷积替代大卷积核,能得到性能上的提升

再B,C两组中, ALL-CNN都得到了最好的效果。而在A组,池化的效果比Strided的效果更好。「为了保证不是因为参数量增加而引起的,我们也对比了ALL-CNN-A」。事实证明池化操作是能提高网络性能的

后续,我们针对训练过程是否加入图像增广也做了一组实验在这两种情况下,网络表现的都比前面的要好很多 我们将这个最佳模型,放到CIFAR100进一步进行测试可以看到我们的效果依然很好,超越了前面的网络模型。仅仅被Fractional Pooling超过,但这个模型参数过大,大概50M左右的参数。所以我们的模型表现是十分不错的。

4. 笔者理解

在现代的网络设计中,池化层出现的越来越少了。早在几年前,这个问题还是很令人深思的。郑安坤大佬也做过一系列实验「CNN真的需要下采样吗」(https://zhuanlan.zhihu.com/p/94477174),并且后面也探讨了maxpooling。

我也是比较同意文中的观点,因为无论是均值池化层还是最大池化层,都可以对应传统图像处理的一个人为设计的滤波器。如果没有下采样操作,它完全是可以做一个抑制图像噪声的操作在。并且池化层是与多通道之间没有关系的,只是在单一特征图上做。

我会认为在浅层特征图中,空间相关特征比较明显,可以使用池化层。在高维特征图上,特征经过编码后,空间相关不太明显,这时候用卷积层做下采样会比较好。

而且还是需要具体任务具体分析,比如在CVPR2020的Small Big Net

在时间维度上对视频帧应用最大池化来提取特征信息,因此我还是认为池化操作是有其必要性的。

下载1:动手学深度学习


在CVer公众号后台回复动手学深度学习,即可下载547页《动手学深度学习》电子书和源码。该书是面向中文读者的能运行、可讨论的深度学习教科书,它将文字、公式、图像、代码和运行结果结合在一起。本书将全面介绍深度学习从模型构造到模型训练,以及它们在计算机视觉和自然语言处理中的应用。



下载2:CVPR /  ECCV 2020开源代码


在CVer公众号后台回复:CVPR2020,即可下载CVPR 2020代码开源的论文合集

在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集


重磅!CVer-论文写作与投稿交流群成立


扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满2000+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI等)、SCI、EI等写作与投稿事宜。


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群


▲长按加微信群


▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

登录查看更多
1

相关内容

思想来自于视觉机制,是对信息进行抽象的过程。
专知会员服务
78+阅读 · 2020年8月4日
基于改进卷积神经网络的短文本分类模型
专知会员服务
25+阅读 · 2020年7月22日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
【CVPR2020-港中文】 图像识别中的自注意力探索
专知会员服务
55+阅读 · 2020年4月29日
卷积神经网络的概述论文:分析、应用和展望,21页pdf
专知会员服务
90+阅读 · 2020年4月7日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
零样本图像分类综述 : 十年进展
专知会员服务
126+阅读 · 2019年11月16日
CNN网络结构的发展(最全整理)
极市平台
73+阅读 · 2019年11月2日
证伪:CNN中的图片平移不变性
论智
5+阅读 · 2018年6月12日
深度剖析卷积神经网络
云栖社区
7+阅读 · 2018年5月27日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
CNN 反向传播算法推导
统计学习与视觉计算组
30+阅读 · 2017年12月29日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
干货 | 深度学习之卷积神经网络(CNN)的前向传播算法详解
机器学习算法与Python学习
9+阅读 · 2017年11月17日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
LGN-CNN: a biologically inspired CNN architecture
Arxiv
0+阅读 · 2020年10月15日
Arxiv
19+阅读 · 2020年7月13日
已删除
Arxiv
32+阅读 · 2020年3月23日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
19+阅读 · 2018年6月27日
VIP会员
相关VIP内容
专知会员服务
78+阅读 · 2020年8月4日
基于改进卷积神经网络的短文本分类模型
专知会员服务
25+阅读 · 2020年7月22日
【IJCAJ 2020】多通道神经网络 Multi-Channel Graph Neural Networks
专知会员服务
25+阅读 · 2020年7月19日
【CVPR2020-港中文】 图像识别中的自注意力探索
专知会员服务
55+阅读 · 2020年4月29日
卷积神经网络的概述论文:分析、应用和展望,21页pdf
专知会员服务
90+阅读 · 2020年4月7日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
零样本图像分类综述 : 十年进展
专知会员服务
126+阅读 · 2019年11月16日
相关资讯
CNN网络结构的发展(最全整理)
极市平台
73+阅读 · 2019年11月2日
证伪:CNN中的图片平移不变性
论智
5+阅读 · 2018年6月12日
深度剖析卷积神经网络
云栖社区
7+阅读 · 2018年5月27日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
CNN 反向传播算法推导
统计学习与视觉计算组
30+阅读 · 2017年12月29日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
干货 | 深度学习之卷积神经网络(CNN)的前向传播算法详解
机器学习算法与Python学习
9+阅读 · 2017年11月17日
[深度学习] AlexNet,GoogLeNet,VGG,ResNet简化版
机器学习和数学
20+阅读 · 2017年10月13日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
相关论文
LGN-CNN: a biologically inspired CNN architecture
Arxiv
0+阅读 · 2020年10月15日
Arxiv
19+阅读 · 2020年7月13日
已删除
Arxiv
32+阅读 · 2020年3月23日
Arxiv
21+阅读 · 2019年8月21日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
19+阅读 · 2018年6月27日
Top
微信扫码咨询专知VIP会员