什么是扩张卷曲的使用?

时间:2016-12-16 06:35:33

标签: deep-learning

我指的是Multi-Scale Context Aggregation by Dilated Convolutions

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

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

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

2 个答案:

答案 0 :(得分:17)

<强> TLDR

  1. 扩张卷积通常会提高性能(请参阅Multi-Scale Context Aggregation by Dilated Convolutions中更好的语义分段结果)
  2. 更重要的一点是,该架构基于这样一个事实,即扩张的卷积支持感受野的指数式扩张,而不会损失分辨率或覆盖率

  3. >
  4. 允许更大的感知字段 相同的计算和内存成本,同时还保留分辨率

    < / LI>
  5. 合并 Strided Convolutions 是类似的概念,但降低分辨率
  6. @Rahul引用了WaveNet,它在2.1扩张的因果卷积中非常简洁。值得一看Multi-Scale Context Aggregation by Dilated Convolutions我在这里进一步细分:

    Screenshot from https://arxiv.org/pdf/1511.07122.pdf

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

    要画出明确的对比,请考虑一下:

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

答案 1 :(得分:3)

除了您已经提到的好处,例如较大的感受野有效计算较少的记忆消耗,扩张的因果卷积也有以下好处:

  • 在输出图层保留数据的分辨率/尺寸。这是因为层是扩张而不是汇集,因此名称​​扩张的因果卷积
  • 维护数据的排序。例如,在输出预测取决于先前输入的1D扩张因果卷积中,卷积结构有助于维持数据的排序。

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

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