卷积层是卷积神经网络 (CNN) 的核心构建块,负责执行大部分计算。它需要几个组件,包括输入数据、过滤器和特征图。假设输入是彩色图像,由三维的像素矩阵组成。这意味着,输入具有三个维度:高度、宽度和深度,对应于图像中的 RGB。我们还有一个特征检测器,也称为内核或过滤器,它在图像的各个感受野中移动,检查是否存在特征。这个过程称为卷积。
特征检测器是个二维权重数组,表示部分图像。虽然它们的大小可能各不相同,但过滤器大小通常为 3×3 的矩阵;这也决定了感受野的大小。然后,过滤器应用于图像的某个区域,并计算输入像素和过滤器的点积。此点积会进而提供给输出数组。接下来,过滤器移动一个步幅,重复这个过程,直到内核扫描了整个图像。来自输入和过滤器的一系列点积的最终输出称为特征图、激活图或卷积特征。
请注意,特征检测器中的权重在图像上移动时保持不变,这也称为参数共享。一些参数(如权重值)会在训练过程中通过反向传播和梯度下降过程进行调整。但是,在神经网络训练开始之前,需要设置三个影响输出卷容量的超参数。其中包括:
1. 滤波器的数量会影响输出的深度。例如,三个不同的滤波器会产生三个不同的特征图,形成三个不同的深度。
2. 步幅是内核在输入矩阵上移动的距离或像素数。虽然步幅值不低于 2 较为罕见,但步幅越大,输出就越小。
3. 当滤波器不适合输入图像时,通常会使用零填充。这会将输入矩阵之外的所有元素设置为零,从而产生更大或相同大小的输出。填充有三种类型:
有效填充:也称为无填充。在这种情况下,如果维度不一致,最后一个卷积就会被丢弃。相同填充:此填充确保输出层的大小与与输入层相同。完全填充:这种填充方式是通过在输入的边界上添加零来增加输出的大小。在每次卷积运算之后,CNN 对特征图应用修正线性单元 (ReLU) 转换,为模型引入非线性特性。