全卷积层如何用于分割任务?

How fully convolutional layer can work for segmentation task?

我正在看论文"Fully Convolutional Networks for Semantic Segmentation by Jonathan Long*, Evan Shelhamer*, and Trevor Darrell. CVPR 2015 and PAMI 2016" 我想了解为什么它可以用于语义分割。再看一下fcn-32s架构,它包括两个阶段:特征提取(conv1-1->pool5)和特征分类(fc6->score_fr)。与普通分类网络相比,主要区别在于第二阶段。 FCN-32s 将 fc7 中的全连接层替换为全卷积层 (1 x 1),以保留空间图(如论文图 2 中的说明)。因此,我对这一点感到困惑:

  1. 如果我们用全卷积层代替全连接层, 它如何像传统分类那样学习权重 架构?
  2. 为什么我们可以使用全卷积层保留空间图(热图)?

提前致谢。

更新:这张图显示了如何从全连接层转换为全卷积层

如果你看一下数学,"Convolution" 层和 "InnerProduct"(又名 "fully connected")层基本上非常相似:它们对各自的感受野执行线性运算。唯一的区别是 "InnerProduct" 将整个输入作为其 "receptive field" 而 "Convolution" 层仅查看输入中的 kernel_size window。

如果更改输入大小会怎样?
"Convolution" 层不关心,它只是输出与新输入形状对应的空间维度的特征图。
另一方面,"InnerProduct" 层失败,因为它的权重数与感受野的新大小不匹配。

"Convolution" 层替换模型中的顶部 fully-connected 层允许对图像进行 "sliding window" 分类:从而实现粗略的语义分割 - 标签 per-pixel 而不是而不是每张图片的标签。

输入尺度和输出标签的粗尺度之间的尺度差距仍然是一个很大的问题,但是有 "Deconvolution" 层来弥合这个差距。