【问题标题】:What's the use of dilated convolutions?空洞卷积有什么用?
【发布时间】:2017-06-19 22:30:41
【问题描述】:

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

  • 2x2 内核中会有孔,因此它会变成 3x3 内核。
  • 3x3 内核中会有孔,因此它会变成 5x5 内核。
  • 以上当然假设间隔 1。

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

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

【问题讨论】:

    标签: deep-learning


    【解决方案1】:

    TLDR

    1. 空洞卷积普遍提高了性能(在Multi-Scale Context Aggregation by Dilated Convolutions 中查看更好的语义分割结果)
    2. 更重要的一点是,架构基于扩张卷积支持感受野的指数扩展而不会损失分辨率或覆盖率这一事实

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

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

    @Rahul 引用了WaveNet,它在 2.1 Dilated Causal Convolutions 中非常简洁。 Multi-Scale Context Aggregation by Dilated Convolutions 也值得一看,我在这里进一步分解:

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

    要形成明显的对比,请考虑以下几点:

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

    【讨论】:

    • 嗨 Jsschin,我可以看到扩张卷积可以覆盖更大的区域。然而,很多像素对应于空洞卷积滤波器中的权重为 0。换句话说,这些像素即使属于感受野也不会参与。所以有效感受野还是一样的。我不确定我的理解是否正确。
    • 经过 3x3 卷积后,每个激活都连接到一个 3x3 区域。如果我们同意这一点,那么通过隔开下一个卷积滤波器,我们有效地扩展了感受野,尽管是零。如果你把它画出来会有帮助。上图也很好地描述了它。
    • @jkschin 您介意详细说明扩张卷积如何保持分辨率吗? (其实我在a separate post问过这个问题。)
    • @jkschin 有人可以解释一下图 1 (b) 的感受野是 7x7 吗?
    • @cherryaldi 这将有助于一个数字示例。创建一个 3 x 3 内核并将系数放在图 1(b) 中的红点处。在元素之间放置零,这样你就有一个 5 x 5 的内核,中间有零。创建一个更大的图像(比如 7 x 7)并在中心插入随机 3 x 3 值。用这个图像和这个 3 x 3 内核进行卷积,最终结果有效地为您提供 7 x 7 输出。这篇文章帮助了我:towardsdatascience.com/…
    【解决方案2】:

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

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

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

    希望这个答案对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 2020-11-14
      • 2021-04-26
      • 1970-01-01
      • 2013-08-25
      • 2021-02-12
      • 2013-09-29
      • 2016-11-11
      • 2019-01-05
      相关资源
      最近更新 更多