【问题标题】:Why do dilated convolutions preserve resolution?为什么空洞卷积可以保持分辨率?
【发布时间】:2018-01-30 06:13:06
【问题描述】:

动画来自here。我想知道为什么膨胀卷积声称可以保持分辨率。显然蓝色的输入是 7x7,绿色的输出是 3x3。

编辑:

解决分辨率损失的一种方法是用当前感受野大小的大约一半填充输入,但是

  1. 这实质上破坏了扩张卷积不会失去分辨率的说法,因为保留分辨率的是填充。为了获得与输入相同的输出大小,传统的卷积需要更少的填充。
  2. 由于填充呈指数增长,因此相对不那么小的膨胀因子将导致输入图像填充过多。想象一个 1024x1024 输入和 10x 膨胀,它将变成大约 2048x2048(如果我在这里错了,请告诉我)。这是原始大小的 4 倍,这意味着大多数卷积都是在填充区域而不是真实输入上完成的。就我个人而言,这似乎很违反直觉。

【问题讨论】:

    标签: machine-learning computer-vision convolution


    【解决方案1】:

    这确实是一个带有 5x5 过滤器的扩张卷积。如果您将动画的蓝色部分想象为 0 填充的 3x3 图像,它会保留分辨率。

    关于您的编辑,重点在于您链接的帖子中的以下声明:扩张卷积支持感受野的指数扩展而不会损失分辨率或覆盖范围

    填充是为了保持分辨率。那是正确的。

    我们真正想要的是扩大感受野的大小。在您链接的帖子中,随着 3 个 3x3 扩张卷积的扩张,我们已经在特征图中实现了 15x15 的感受野。

    为了实现 3x3 卷积和不损失覆盖率不损失分辨率的等价物,我们可以将步幅设为 3(4 会导致损失覆盖范围)和极重的填充(就像你所说的那样,卷积与大部分填充的零)。但是,我们需要 4 个 3x3 卷积,步幅为 3 而不是 3,才能实现 15x15 的感受野。

    除此之外,与空洞卷积相比,普通卷积会有更多没有意义的卷积。

    【讨论】:

    • 这是有道理的,但意味着填充也呈指数增长,对吧?
    • 是的。但是计算量还是一样的。我认为大多数库会优化此类操作并在稀疏矩阵上进行,而实际上不必填充并将其存储在内存中。
    • 请在问题中查看我上面的编辑。顺便说一句,感谢您的快速回复:)
    • 嗯...让我改写一下,看看我是否理解。所以权衡是:如果只使用步幅为 1 的卷积,填充很小,但我们需要太多的层(因此需要太多的参数/权重)来保持分辨率。如果使用大步幅的 convs,我们将面临同样的问题,即填充过多,并且仍然需要更多层。因此,空洞卷积是一种更好的平衡选择。
    • 因此,据我所知,我们通过扩张卷积网络来捕获更多全局上下文,同时捕获本地上下文。所以在这里使用填充我们确保我们不会错过特征图中的任何神经元。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 2021-04-26
    • 2019-07-27
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多