为什么全连接层只接受固定的输入大小?

人工智能 深度学习 卷积神经网络 计算机视觉
2021-10-27 12:34:23

我正在研究 SPP(空间、金字塔、池化)的工作原理。发明 SPP 是为了解决 CNN 中的固定输入图像大小问题。根据原论文https://arxiv.org/pdf/1406.4729.pdf,作者说:

卷积层不需要固定的图像大小,可以生成任意大小的特征图。另一方面,全连接层的定义需要具有固定的大小/长度输入。因此,固定大小的约束仅来自全连接层,它们存在于网络的更深阶段。

为什么全连接层只接受固定的输入大小(而卷积层不接受)?这个定义背后的真正原因是什么?

2个回答

卷积层是您在输入上滑动内核或过滤器(您可以将其视为权重的小方阵,需要在学习阶段学习)的层。在实践中,当您需要滑动这个内核时,您通常需要指定“填充”(围绕输入)和“步幅”(用于在输入上对内核进行卷积),以获得所需的输出(尺寸)。因此,即使您收到不同大小的输入,您也可以更改这些值,例如填充或步幅,以产生有效的输出(大小)。从这个意义上说,我认为,我们可以说卷积层接受(几乎)任何大小的输入。

特征图的数量不依赖于内核或输入(大小)。特征图的数量取决于您将用于滑过输入的不同内核的数量。如果你有ķ不同的内核,那么您将拥有ķ不同的特征图。内核的数量通常是一个超参数,因此您可以更改它(随意)。

全连接 (FC) 层在设计上需要固定的输入大小。程序员决定 FC 层将具有的输入单元(或神经元)的数量。这个超参数在学习阶段通常不会改变。所以,是的,FC 通常接受固定大小的输入(也因为它们不采用“填充”等技术)。

不必如此。全连接层可以被认为是卷积层,输入图像为 1 像素,空间内核大小为 1 像素。因此,1 像素内核卷积层实际上与附加到每个像素的全连接层相同。这就是“完全卷积网络”背后的想法。如果你想要“真正的”,卷积层之后的 1 像素全连接层(具有可变输入大小),你所要做的就是将平均池化层(或其他类型的池化层)放在全连接层之前。这样,全连接层可以接受可变的输入大小。