为什么扩张卷积计算效率高?

Why is dilated convolution computationally efficient?

我一直在研究受 UNet 启发的架构 ENet,我认为我遵循了基本概念。 ENet 效率的基石是扩张卷积(除其他外)。我了解保留空间分辨率,它是如何计算的等等,但是我不明白为什么它在计算和内存方面比例如更便宜最大池化。

ENet:https://arxiv.org/pdf/1606.02147.pdf

您只需跳过带有扩张卷积层的计算层:

例如扩张卷积

  • 一个滤波器内核 k×k = 3×3,扩张率 r = 2,步幅 s = 1 且无填充

相当于

  • 2x 下采样后跟 3x3 卷积后跟 2x 上采样

如需进一步参考,请查看来自 Vincent Dumoulin、Francesco Visin 的精彩论文: A guide to convolution arithmetic for deep learning

本文的 github 上还有一个关于扩张卷积如何工作的动画: https://github.com/vdumoulin/conv_arithmetic

除了@T1Berger 接受的答案之外,请考虑这样一种情况:您希望在不进行会导致信息丢失的下采样的情况下跨多个像素捕获更大的特征。这样做的传统方法是在卷积层中使用更大的内核。这些较大的内核在计算上非常昂贵。通过使用扩张卷积层,可以用更少的操作提取更大的特征。这对于优化稀疏特征图操作的框架来说是正确的。