您似乎误解了一些术语,并且对卷积层具有 3 个维度感到困惑。
编辑:我应该明确一点,CNN 的输入层是卷积层。
任何层的神经元数量由开发者决定。对于全连接层,通常情况下每个输入都有一个神经元。因此,正如您在问题中提到的那样,对于图像,完全连接的输入层中的神经元数量可能等于像素数量(除非开发人员想在这一点上进行下采样)。这也意味着您可以创建一个完全连接的输入层,它获取每个通道(宽度、高度、通道)中的所有像素。虽然每个输入只被输入神经元接收一次,这与卷积层不同。
卷积层的工作方式略有不同。卷积层中的每个神经元都有我们所说的局部感受野。这只是意味着神经元没有连接到整个输入(这将被称为完全连接),而只是输入的一部分(必须是空间局部的)。这些输入神经元提供输入数据的小部分的抽象,当将它们放在整个输入中时,我们称为特征图。
卷积层的一个重要特征是它们空间不变。这意味着他们在整个图像中寻找相同的特征。毕竟,您不希望经过对象识别训练的神经网络只识别位于图像左下角的自行车!这是通过将本地感受野中的所有权重限制为相同来实现的。卷积层中覆盖整个输入并寻找一个特征的神经元称为过滤器。这些滤镜是二维的(它们覆盖整个图像)。
但是,让整个卷积层只寻找一个特征(例如角点)会极大地限制网络的容量。因此开发人员添加了许多过滤器,以便该层可以在整个输入中查找许多特征。这个过滤器集合创建了一个 3 维卷积层。
希望对你有所帮助!
编辑-
使用操作员给出的示例来清理松散的结尾:
OP 的问题:
所以想象我们有 (27 X 27) 图像。假设每个尺寸有 3 个过滤器(3 X 3)。所以总共有 3 X 3 X 3 = 27 个参数(W)。所以我的问题是这些神经元是如何连接的?每个过滤器都必须迭代超过 27 个像素(神经元)。因此,一次有 9 个输入神经元连接到一个过滤神经元。这些连接会随着过滤器对所有像素的迭代而改变。
回答:
首先,重要的是要注意感受野重叠是典型的(而且通常很重要)。因此,对于 2 的重叠/步幅,左上神经元(神经元 A)的 3x3 感受野,其右侧神经元(神经元 B)的感受野也将具有 3x3 感受野,其最左边的 3 个连接可以采用与神经元 A 最右边的连接相同的输入。
话虽如此,我认为您似乎希望将其可视化,因此如果没有重叠,我将坚持您的示例,并假设我们不希望图像周围有任何填充。如果有一个分辨率为 27x27 的图像,我们想要 3 个滤镜(这是我们的选择)。然后每个过滤器将有 81 个神经元(9x9 2D 神经元网格)。这些神经元中的每一个都有 9 个连接(对应于 3x3 感受野)。因为有 3 个过滤器,每个过滤器有 81 个神经元,所以我们将有 243 个神经元。
我希望这可以解决问题。我很清楚,您对术语(层、过滤器、神经元、参数等)感到困惑。我建议您阅读一些博客以更好地理解这些内容,然后专注于 CNN。祝你好运:)