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 中,早期层通常提取图像中的基本形状和边缘。下一层检测更复杂的概念,如角、圆。你可以想象最后一层可能有检测非常复杂特征的节点(比如图像中一个人的存在)。
因此,从靠近输入的大型特征图中进行上采样会产生更好的细节,但与最后一层相比,语义信息较少。回想起来,最后一层通常具有较低的维度,因此与早期层相比,它们的分辨率更差。