strided convolution vs pooling

Striving for Simplicity: The All Convolutional Net

We find that max-pooling can simply be replaced by a convolutional layer with increased stride without loss in accuracy on several image recognition benchmarks’

在这里插入图片描述
在这里插入图片描述

只看baseline的model-C, conv+conv+max pool变换以下3种情况:

  1. Strided-CNN-C: conv+ strided conv
  2. ConvPool-CNN-C: conv+conv+conv+max pool
  3. All-CNN-C: conv + conv+ strided conv

Strided-CNN-C与Model C对比,直接用strided conv代替conv+max pool效果是变差的,All-CNN-C与Model C对比,用conv+ strided conv代替conv+max pool效果是变好了,但是这样比Model C引入了更多的参数,于是又做了一个和All-CNN-C参数量一样的模型ConvPool-CNN-C,发现不如All-CNN-C

在这里插入图片描述

Deep Learning with Python

keras作者的观点

So the most reasonable subsampling strategy is to first produce
dense maps of features (via unstrided convolutions) and then look at the maximal activation of the features over small patches, rather than looking at sparser windows of the inputs (via strided convolutions) or averaging input patches, which could cause you to miss or dilute feature-presence information

第一个观点是下采样最好是用dense conv(stride=1)加max pool,而不是直接用一个strided conv(stride>1,类似上文的Strided-CNN-C)或者用average pool.
第二个观点是gan的D一般不用max pool,因为提供的梯度是稀疏的不利于指导G的学习(好的D是能够更多信息给G,而不是分类能力强)。max pool和ReLU都会造成梯度稀疏,gan里面一般用strided convolutions和LeakyReLU代替
其实这个和上一篇论文观点基本一致,就是分类网络里不要直接用strided convolution代替conv+max pool,要用的话也像上一篇文章说的那样conv+strided convolution。

其它

A:
Convolutions with stride>1 (which I believe is what you mean by conv subsampling) may work better for generative models (segmentation, style transfer, etc) since they can be better reversed.
For classification, combining max and average pooling seems to be best (although maxout may be even better), although I haven’t seen a thorough comparison vs subsampling.
B:
Both, strided convolution and pooling, summarize the data.
Pros of doing strided convolution compared to pooling:

  • You can learn how to summarize
  • Every pooling type as a strict equivalent convolution (sometimes there have to be multiple convolutional layers). Hence convolution is more general.

Cons of doing strided convolution compared to pooling:

  • Probably takes more time at inference
  • Definitely takes more time at training

C:
max pool引入非线性,破坏空间结构带来旋转不变性等


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值