全连接卷积网络中的上采样是如何工作的?

cap*_*nst 8 neural-network deep-learning conv-neural-network

看了几篇帖子/文章,对CNN下采样后的上采样机制有些疑惑。

我从这个问题中得到了第一个答案:https : //www.quora.com/How-do-fully-convolutional-networks-upsample-their-coarse-output

据我所知,类似于普通的卷积操作,“上采样”也使用需要训练的内核。

问题1:如果在CNN的第一阶段已经丢失了“空间信息”,那无论如何如何重新构建?

问题2:为什么>“从网络深处的小(粗)特征图上采样具有良好的语义信息但分辨率较差。从更接近输入的较大特征图上采样,会产生更好的细节但会产生更差的语义信息”?

Isa*_*aac 11

问题#1

上采样不会(也不能)重建任何丢失的信息。它的作用是将分辨率恢复到前一层的分辨率。

理论上,我们可以完全消除下/上采样层。然而,为了减少计算次数,我们可以在层之前对输入进行下采样,然后对其输出进行上采样。

因此,下/上采样层的唯一目的是减少每一层的计算量,同时保持输入/输出的维度和以前一样。

您可能会争辩说下采样可能会导致信息丢失。这始终是一种可能性,但请记住,CNN 的作用本质上是从输入中提取“有用”信息并将其缩减为较小的维度。

问题2

当我们从 CNN 的输入层到输出层时,数据的维度通常会减少,而语义和提取的信息有望增加。

假设我们有一个用于图像分类的 CNN。在此类 CNN 中,早期层通常提取图像中的基本形状和边缘。下一层检测更复杂的概念,如角、圆。你可以想象最后一层可能有检测非常复杂特征的节点(比如图像中一个人的存在)。

因此,从靠近输入的大型特征图中进行上采样会产生更好的细节,但与最后一层相比,语义信息较少。回想起来,最后一层通常具有较低的维度,因此与早期层相比,它们的分辨率更差。

  • *下采样部分试图在“忽略”空间信息的同时提取高级特征*。下采样层的作用仅仅是减少特征维度以减少计算量。它是一个*哑*层。虽然看起来它减少了早期层中的*空间*信息,但它实际上是根据某些标准删除从前一层输出的特征,以使下一层的工作更简单。如果我们有无限的资源来训练 CNN,我们就可以完全摆脱下/上采样层。 (4认同)
  • 需要上采样层来恢复数据的维度。否则,经过几个下采样层后,数据的维度会崩溃。*模型通过适当调整权重故意忽略空间信息*:正是如此。CNN 忽略空间信息**因为**我们忽略了它我们的训练数据集。想象一下训练一个 CNN 来检测图像中的人物。可以训练它检测一个人,任何人都是“人”。其他人可能会训练更细粒度的 CNN(例如“坐着的人”、“弯腰的人”、“秃头的人”、“哭泣的人”等)…… (4认同)
  • @captainst:没错。在计算机视觉中,CNN 通常对对象的位置、方向和比例是不变的。但请注意,这是因为我们训练它们保持不变。例如,我们将所有带有汽车的图像标记为“car”,无论汽车在图像中的位置。如果我们有基于空间信息的类,例如类“左侧的汽车”和“右侧的汽车”,CNN 将学习保留水平空间信息作为汽车的特征,以便能够将其分类为其中之一两个班级。我没有明白你问题的最后一部分。你介意详细说明一下吗? (3认同)
  • ... CNN 的神奇之处在于它 ** 学习** 它应该考虑并从图像中提取哪些特征以便能够区分这些类别。如果位置/方向有助于分类,它会保留它。如果没有,则将其淘汰。同样的其他特征(旋转、颜色、大小、平滑度等)。有数以百万计的特征我们甚至无法命名,但如果它们对分类有帮助,CNN 可以尝试学习和利用它们。我强烈推荐关于这个主题的 [Stanford cs231n](http://cs231n.stanford.edu) 课程。如果您有兴趣,请观看他们的视频。 (3认同)