扩张卷曲有什么用?

jks*_*hin 9 deep-learning

我指的是扩张卷积的多尺度上下文聚合.

  • 一个2x2内核会有一个洞,使它成为一个3x3内核.
  • 一个3x3内核会有一个洞,使它成为一个5x5内核.
  • 以上假设间隔为1.

我可以清楚地看到,这允许您有效地使用4个参数,但具有3x3和9个参数的感受域,但具有5x5的感受野.

扩张卷积的情况是简单地保存参数,同时获得更大的感受野的好处,从而节省内存和计算?

jks*_*hin 18

TLDR

  1. 扩张卷积通常可以提高性能(参见通过扩张卷积进行多尺度上下文聚合的更好的语义分割结果)
  2. 更重要的一点是,该架构基于这样一个事实,即扩张的卷积支持感受野的指数扩展而不会损失分辨率或覆盖范围.

  3. 允许一个具有相同计算和内存成本的较大感受野,同时还保持分辨率.

  4. PoolingStrided Convolutions是类似的概念,但都降低了分辨率.

@Rahul引用了WaveNet,它在2.1扩张因果卷积中非常简洁.通过扩张卷积观察多尺度上下文聚合也值得我在这里进一步细分:

屏幕截图来自https://arxiv.org/pdf/1511.07122.pdf

  • 图(a)是1扩散的3×3卷积滤波器.换句话说,它是标准的3x3卷积滤波器.
  • 图(b)是2扩张的3×3卷积滤波器.红点是权重的位置,其他地方都是0.换句话说,它是一个5x5卷积滤波器,有9个非零权重,其他地方都是0,如问题所述.在这种情况下,感受野是7x7,因为前一个输出中的每个单位都有一个3x3的感受野.蓝色突出显示的部分显示了感知字段而不是卷积滤镜(如果您愿意,可以将其视为卷积滤镜,但它没有用).
  • 图(c)是4扩散的3×3卷积滤波器.这是一个9x9卷积滤波器,有9个非零权重,其他地方都是0.从(b)开始,我们知道每个单元现在都有一个7x7的感受野,因此你可以在每个红点周围看到一个7x7的蓝色部分.

要明确对比,请考虑以下事项:

  • 如果我们使用3个连续的3x3卷积滤波器层,步长为1,则有效的感知场在其末尾仅为7x7.但是,由于计算和内存成本相同,我们可以通过扩张卷积实现15x15.两种操作都保持分辨率
  • 如果我们使用3个连续的3x3卷积滤波器层,以指数速率增加步幅,与本文中扩张卷积的速率完全相同,我们将在其末尾获得15x15的感受域,最终作为步幅失去覆盖率变得更大.这种覆盖范围的损失意味着某些时候有效的感受野不会是我们上面所看到的.有些部分不会重叠.


小智 5

除了您已经提到的诸如更大的感受野高效的计算更少的内存消耗等好处之外,扩张的因果卷积还有以下好处:

  • 它在输出层保留数据的分辨率/尺寸。这是因为层被扩张而不是池化,因此得名扩张因果卷积
  • 维护数据的顺序。例如,在一维扩张因果卷积中,当输出的预测取决于先前的输入时,卷积的结构有助于保持数据的顺序。

我建议你阅读这篇很棒的论文 WaveNet,将扩张因果卷积应用于原始音频波形,以生成语音、音乐,甚至从原始音频波形中识别语音。

我希望你觉得这个答案有帮助。