我正在查看下面的ZFNet图表,试图了解 CNN 的设计方式。
在第一层,我理解的深度3(224x224x3)是图像中颜色通道的数量。
在第二层,我明白用公式计算.
我也了解池化如何从到.
但是深度在哪里来自第二层?这是新的“批量大小”吗?这完全是任意的吗?
如果有人可以指导我参考可以帮助我了解所有这些维度如何相互关联的参考,则可以加分。
我正在查看下面的ZFNet图表,试图了解 CNN 的设计方式。
在第一层,我理解的深度3(224x224x3)是图像中颜色通道的数量。
在第二层,我明白用公式计算.
我也了解池化如何从到.
但是深度在哪里来自第二层?这是新的“批量大小”吗?这完全是任意的吗?
如果有人可以指导我参考可以帮助我了解所有这些维度如何相互关联的参考,则可以加分。
这是特征图的数量,等于过滤器/内核的数量。
内核数量的选择不是完全任意的,尽管没有限制数量的方程式或确切规则。
如果你有一个 CNN,一个单一的卷积操作将毫无意义:因为它用于整个图像信息,它可以泛化,但仅限于特定的(意思是:有限数量的)特征。简单的例子:如果第一层中的 7x7 过滤器专注于圆形,它不能同时推广到红色立方体。
因此,您的卷积层有几个过滤器/内核,即几个权重,每个权重都用于卷积。这些卷积中的每一个的结果是一个过滤器/特征图,即由内核卷积的图像信息。
通常,您会查看您的内核和问题所在的域,以找出合适的内核数量。您还必须记住,太少的内核可能会丢失信息并过度拟合特定模式,而太多的内核可能会欠拟合。特别是,当你的参数(主要是神经网络的权重)比训练数据多得多时,你的神经网络通常会表现不佳,你必须减小它的大小。
内核不应与批量大小相混淆。批量大小是您并行训练的样本数(此处为图像)。神经网络的每个训练步骤不仅包括输入单个图像,还包括输入批量大小的图像,通常与层之间的批量标准化步骤相结合。因此,这与内核的数量无关。
假设你有一张图片频道,你有过滤器,每个过滤器都有形状. 将此过滤器应用于图像后的卷积层深度为,等于过滤器的数量。过滤器的空间维度(在这种情况下,) 或多或少是任意定义的(它是一个超参数)。
鉴于您还要求提供详细描述这些操作的参考,您应该查看论文A guide to convolution algorithm for deep learning (2018),其中详细描述了卷积神经网络中使用的许多卷积操作的算法网络。还有与不同操作的动画相关的 repo 。