对于 3 通道图像 (RGB),卷积层中的每个滤波器计算一个特征图,该特征图本质上是一个单通道图像。通常,2D 卷积滤波器用于多通道图像。这可以是应用于每一层的单个过滤器或每层单独的过滤器。这些过滤器正在寻找与颜色无关的特征,即边缘(如果您正在寻找颜色,那么有比 CNN 更简单的方法)。将过滤器应用于每个通道,并将结果组合成单个输出,即特征图。由于过滤器使用所有通道来计算单个特征图,因此输入中的通道数不会影响第一层之外的网络结构。特征图的大小由过滤器大小决定,stride,padding和dilation(不常用 - 如果您有兴趣,请参阅此处。)。
在您的示例中,如果过滤器的步幅为1且填充相同(或者,使用有效填充/完整填充) ,则30 x 30 x 3
与 10 个过滤器卷积的输入5 x 5
将产生体积。30 x 30 x 10
26 x 26 x 10
34 x 34 x 10
相同的填充使用filter_size /2 (整数除法)缓冲输入的边缘,以产生大小相等的输出(假设步幅为 1),而有效的填充将导致较小的输出。有效填充不会像您所说的那样裁剪图像,它更像是边缘信号的稀释,但结果基本相同。请注意,即使使用相同的填充,边缘像素也用于较少的卷积 -5 x 5
具有相同填充的过滤器将使用中心像素 25 次(过滤器上的每个位置),但角像素仅使用 9 次。要均匀使用所有像素,必须使用完整填充,它使用filter_size - 1 缓冲输入的边缘。
每个特征图都成为输出体积中的一个通道。因此,输出体积中的通道数总是等于卷积层中滤波器的数量。因此,第二层将输出一个大小的体积30 x 30 x 5
(步幅 1,相同的填充)。
示例中的最后一层(完全连接)将每个特征图中每个像素的值乘以学习的权重,然后对结果求和。如果网络是二元分类器,则在达到阈值或作为回归模型的十进制值时,总和值会产生 1 或 0 输出。这是由 FC 神经元的激活函数决定的。
如果可视化对您的帮助和对我的帮助一样多,我强烈建议您查看此处的交互式示例。请注意,此工具显示的是通过网络传播的信号,即每一层的输出,而不是过滤器/权重本身。
如果您对 ANN 和卷积层的更多深度感兴趣,我将介绍我论文中的所有基础知识(这是图像的来源) - p.9-16 ANNs 和 p.16-23 CNNs。