为什么全卷积网络可以接受任意大小的图像?

人工智能 神经网络 深度学习 卷积神经网络 全卷积网络
2021-11-03 05:36:41

这篇文章中,它说:

UNET 是由 Olaf Ronneberger 等人开发的。用于生物医学图像分割。该架构包含两条路径。第一条路径是收缩路径(也称为编码器),用于捕获图像中的上下文。编码器只是卷积层和最大池化层的传统堆栈。第二条路径是对称扩展路径(也称为解码器),用于使用转置卷积实现精确定位。因此它是一个端到端的全卷积网络(FCN),即它只包含卷积层,不包含任何密集层,因为它可以接受任何大小的图像。

我不明白的是,FCN 是如何接受任何尺寸的图像的,而普通的物体检测器,比如最后有一个密集层的 YOLO,却不能接受任何尺寸的图像。

那么,为什么一个全卷积网络可以接受任意大小的图像呢?

1个回答

原因是在使用卷积层时,您选择了滤波器内核的大小,它与图像/层输入大小无关(假设小于内核的图像被适当地填充)。

使用密集层时,您可以指定层本身的大小,生成的权重矩阵是密集层和上游层大小的函数。这是因为上游层中的每个神经元都与密集层中的每个神经元建立了连接。所以,如果上游层有 50 个神经元,密集层有 20 个神经元,那么权重矩阵有值。这些权重是在训练阶段确定的,因此这些层大小是固定的。50×20=1000

现在,CNN 层的输出是一些图像/张量(由选择的过滤器数量指定),其大小由内核大小和选择的任何填充选项决定。如果将这些图像输入密集层,则可以确定这些图像的大小(由于上一段中给出的原因)。

另一方面,如果在整个网络中没有使用密集层,那么第一个 CNN 层的输入可以是任意大小,因为权重只是滤波器内核的各个参数,而滤波器内核无论如何都保持相同的大小输入张量大小。