在所有文献中,他们都说卷积网络的输入层是形状的张量(宽度,高度,通道)。我知道完全连接的网络具有一个输入层,该输入层的神经元数量与图像(包括灰度图像)中的像素数量相同。因此,我的问题是卷积神经网络的输入层中有多少个神经元? below image似乎具有误导性(或者我理解错了),它说输入层中有3个神经元。如果是这样,这3个神经元代表什么?他们是张量吗?根据我对CNN的理解,难道不应该只有一个神经元大小(高度,宽度,通道)吗?如果我错了请纠正我
答案 0 :(得分:6)
似乎您误解了一些术语,并且也对卷积层具有3维感到困惑。
编辑:我应该清楚地说,CNN的输入层是卷积层。
任何层中神经元的数量由开发人员决定。对于完全连接的层,通常每个输入都有一个神经元。因此,正如您在问题中提到的那样,对于图像,完全连接的输入层中神经元的数量可能等于像素的数量(除非开发人员希望在这一点上进行降采样)。这也意味着您可以创建一个完全连接的输入层,该输入层将占用每个通道(宽度,高度,通道)中的所有像素。尽管每个输入仅由输入神经元接收一次,但与卷积层不同。
卷积层的工作方式略有不同。卷积层中的每个神经元都有一个我们称为“局部感受野”的区域。这仅意味着神经元未连接到整个输入(这将被称为完全连接),而仅仅是输入的一部分(必须在空间上局部)。这些输入神经元提供了输入数据的小部分的抽象,当在整个输入中一起使用时,我们将其称为<特征图。
卷积层的一个重要特征是它们是空间不变的。这意味着他们在整个图像中寻找相同的特征。毕竟,您不希望经过对象识别训练的神经网络仅在图像的左下角识别自行车!这是通过将所有局部接收场的权重约束为相同来实现的。卷积层中覆盖整个输入并寻找一个特征的神经元称为 filters 。这些滤镜是二维的(它们覆盖了整个图像)。
但是,让整个卷积层仅查找一个功能(例如拐角)将极大地限制您的网络容量。因此,开发人员添加了许多 filters ,以便该层可以在整个输入中查找许多功能。该过滤器集合创建了一个3维卷积层。
希望对您有所帮助!
编辑- 使用示例,op给出了清理松散末端的方法:
OP的问题: 因此,假设我们有(27 X 27)图像。假设有3个大小为(3 X 3)的过滤器。因此,总共有3 X 3 X 3 = 27个参数(W)。所以我的问题是这些神经元如何连接?每个滤镜必须迭代27个像素(神经元)以上。因此,一次将9个输入神经元连接到一个过滤神经元。随着滤镜迭代所有像素,这些连接也会改变。
答案: 首先,重要的是要注意,接收场是重叠的(通常很重要)。因此,对于重叠/跨度为1的左上方神经元(神经元A)的3x3感受野,其右侧神经元(神经元B)的感受野也将具有3x3感受野,其最左边的3个连接可以接受输入与神经元A的最右边连接相同。
话虽这么说,我认为您似乎想对此进行可视化,因此如果没有重叠,我将坚持您的示例,并假设我们不希望图像周围有任何填充。如果有一个分辨率为27x27的图像,我们需要3个滤镜(这是我们的选择)。然后,每个过滤器将具有81个神经元(神经元的9x9 2D网格)。这些神经元中的每一个都将具有9个连接(对应于3x3感受野)。因为有3个过滤器,每个过滤器有81个神经元,所以我们将有243个神经元。
我希望这可以解决。对我来说很明显,您对术语(层,过滤器,神经元,参数等)感到困惑。我建议您阅读一些博客,以更好地理解这些内容,然后专注于CNN。祝你好运:)