关于扩张卷积与带填充的最大池化

Posted

技术标签:

【中文标题】关于扩张卷积与带填充的最大池化【英文标题】:Regarding Dilated Convolutions vs Max-Pooling with Padding 【发布时间】:2018-04-24 22:42:01 【问题描述】:

我一直在看论文,Multi-Scale Context Aggregation by Dilated Convolutions。

他们建议使用扩张卷积来获取全局上下文,而不是使用最大池化/下采样,因为池化会缩小图像而扩张卷积不会。

我的第一个问题是:他们修改了 VGG16 并删除了最后两个最大池化层,但他们保留了其他 3 个最大池化层。为什么他们不只需删除所有最大池化层?计算效率?这不会导致图像更小吗?他们如何将其扩展回原来的大小,双线性插值?

我的第二个问题是:他们在论文中指出:

“我们还移除了中间特征图的填充。 原始分类网络中使用了中间填充, 但在密集预测中既没有必要也没有理由。”

为什么会这样,如果你不填充,你会不会进一步减小我们最终输出的大小,特别是考虑到扩张卷积可以有非常大的感受野?

【问题讨论】:

【参考方案1】:

回答您的第一个问题,我认为您是正确的,输出是原始大小的 1/8,他们使用插值将上采样到原始大小。您可以在可用的源代码中找到证据here。在文件 test.py 中,函数 test_image 中,默认缩放设置为 8(第 103 行)。可以在文件 train.py 中找到更多证据,其中默认缩放再次设置为 True,并且它们使用上采样层。

而且由于它们已经在减小尺寸,因此它们不需要使用填充来保持尺寸。我认为在他们的情况下不需要填充的原因是分割是一种密集预测的情况,因此从我们自己这边引入一些像素在直觉上没有意义。但同样的争论的最佳方式是实际测试一个有和没有中间池的网络。

【讨论】:

以上是关于关于扩张卷积与带填充的最大池化的主要内容,如果未能解决你的问题,请参考以下文章

为什么卷积神经网络不是全连接,卷积,池化,激活,损失函数

Deep Learning系统实训之三:卷积神经网络

理解CNN卷积层与池化层计算

深度学习笔记-VGG(池化)

深度学习与CV教程 | 卷积神经网络

关于池化(pooling)理解!!!