关于卷积神经网络的一些说明

机器算法验证 机器学习 神经网络 深度学习 卷积神经网络
2022-03-30 19:54:48

在阅读有关将全连接层转换为卷积层的信息时,发布在http://cs231n.github.io/convolutional-networks/#convert中。

我只是对以下两条评论感到困惑:

事实证明,这种转换允许我们在单个前向传递中非常有效地在更大图像中的许多空间位置上“滑动”原始 ConvNet。

一个标准的 ConvNet 应该能够处理任何尺寸的图像。卷积滤波器可以在图像网格上滑动,那么为什么我们需要在更大图像中的任意空间位置滑动原始 ConvNet 呢?

以 32 像素的步幅在 384x384 图像的 224x224 裁剪上独立评估原始 ConvNet(带有 FC 层)与转发一次转换后的 ConvNet 的结果相同。

“32 像素的步幅”在这里是什么意思?是指过滤器尺寸吗?当谈到 384*384 图像的 224*224 裁剪时,这是否意味着我们使用 224*224 的感受野?

我在原始上下文中将这两条评论标记为红色。

在此处输入图像描述

1个回答

全连接层只能处理固定大小的输入,因为它需要一定数量的参数来“全连接”输入和输出。虽然卷积层只是在输入中“滑动”相同的过滤器,但它基本上可以处理任意空间大小的输入。

在最后具有全连接层的示例网络中,224*224 的图像将输出 1000d 的类别分数向量。如果我们将网络应用到更大的图像上,网络会因为第一个全连接层的输入和参数不一致而失败。

另一方面,如果我们使用全卷积网络,当应用于更大的图像时,我们将获得 1000 个类别分数的“热图”。

如下图所示(来自FCN 分割论文),上层网络给每个类别一个分数,经过转换(卷积化)后,我们可以得到一个更大图像的每个类别的热图。
在此处输入图像描述

关于“步幅”,在同一页的空间排列部分:

当步幅为 1 时,我们将过滤器一次移动一个像素。当步幅为 2(或不常见的 3 或更大,尽管这在实践中很少见)时,过滤器在我们滑动它们时一次跳跃 2 个像素。这将在空间上产生更小的输出量。