我了解卷积神经网络的作用以及它们的用途的要点,但我仍然对它们在概念层面上的运作方式有些争论。例如,我得到内核大小大于 1 的过滤器被用作特征检测器,并且过滤器的数量等于卷积层的输出通道数,并且被检测到的特征数量与过滤器的数量成比例/频道。
但是,最近,我遇到越来越多的模型使用 1 维或 2 维卷积,内核大小为 1 或 1x1,我不太明白为什么。在我看来,他们首先打败了执行卷积的目的。
使用这样的层有什么好处?它们不只是相当于将每个通道乘以可训练的标量值吗?
我了解卷积神经网络的作用以及它们的用途的要点,但我仍然对它们在概念层面上的运作方式有些争论。例如,我得到内核大小大于 1 的过滤器被用作特征检测器,并且过滤器的数量等于卷积层的输出通道数,并且被检测到的特征数量与过滤器的数量成比例/频道。
但是,最近,我遇到越来越多的模型使用 1 维或 2 维卷积,内核大小为 1 或 1x1,我不太明白为什么。在我看来,他们首先打败了执行卷积的目的。
使用这样的层有什么好处?它们不只是相当于将每个通道乘以可训练的标量值吗?
用于图像分类(及相关任务)的传统 CNN 在卷积层和池化层之后由 1 个或多个全连接层 (FC) 组成,这些层将从卷积层和池化层提取的特征作为输入,以执行分类或回归。
CNN 中 FC 的一个问题是参数的数量可能非常大,相对于卷积层中的参数数量。
有些任务,例如图像分割,实际上并不需要这么多参数。不使用全连接层而仅使用卷积、下采样(也称为池化)和上采样操作的神经网络的一个示例是用于图像分割的U-net 。仅使用卷积的神经网络称为全卷积网络(FCN)。这里我对FCNs和,这也应该回答你的问题。
无论如何,为了更直接地回答你的问题,卷积已用于图像分割任务,即密集分类任务,即您希望为每个像素(或一组像素)分配标签的任务,而不是稀疏分类任务,例如图像分类(目标是为整个图像分配 1 个标签)。此外,与 FC 层相比,它们的参数更少,更重要的是,FCN 中的参数数量不依赖于图像的尺寸(就像传统的 CNN 一样),这是一件好事(尤其是,当您的图像具有高分辨率时),但在实例分割的情况下,它通常取决于内核和实例(对象)的数量。
FCN 论文讨论了参数数量(和计算时间)的减少,因此您可能应该阅读这篇论文以了解更多详细信息。
通常使用 1x1 卷积来更改通道数。每个输出通道都是输入通道的线性组合。
例如,如果您在 RGB 图像上仅使用一个输出通道执行 1x1 卷积,那么您将得到一张灰度图像,其强度是相应像素的红、绿、蓝值的线性组合(加上偏差)。
如果您使用多个输出通道执行 1x1 卷积,则每个通道都以相同的方式形成,作为输入通道的线性组合。您可以将其视为多个卷积,其输出堆叠在一起。所有这些过滤器都有不同的参数。
请注意,如果输出相当于将每个通道乘以一个标量值,那么您将始终拥有相同数量的输入和输出。