卷积神经网络 (CNN) 是一种专为处理网格状数据(例如图像)而设计的深度学习模型。 与将输入数据视为扁平向量的传统神经网络不同,CNN 通过使用卷积层来保留数据的空间结构。 这些层将滤波器(权重的小网格)应用于输入的局部区域,从而检测边缘、纹理或形状等模式。 例如,滤波器可能会扫描图像以识别第一层中的垂直边缘。 这种方法模仿了人类视觉系统分层处理信息的方式,从简单的特征开始并将它们组合成复杂的结构。
CNN 由三个核心组件构建:卷积层、池化层和全连接层。 卷积层通过在输入上滑动滤波器并计算点积以生成特征图来执行特征提取。 例如,应用于 32x32 像素图像的 3x3 滤波器会生成一个特征图,突出显示特定模式出现的位置。 然后,池化层(如最大池化)对这些图进行下采样,从而减少维度,同时保留重要特征——这有助于控制计算成本并防止过拟合。 最后,全连接层解释提取的特征以用于分类等任务。 例如,在经过几个卷积层和池化层后,CNN 可能会展平输出并使用密集层将图像分类为“猫”或“狗”。
CNN 在计算机视觉任务中表现出色,因为它们可以有效地处理空间层次结构和平移不变性。 平移不变性意味着在图像左上角检测到的猫即使后来出现在右下角,也会被识别为猫。 这是通过卷积滤波器中的权重共享来实现的,与全连接网络相比,这大大减少了参数。 实际应用包括图像识别(例如,ResNet)、对象检测(例如,YOLO)和医学成像(例如,肿瘤检测)。 TensorFlow 和 PyTorch 等框架通过提供预构建的层和优化工具简化了 CNN 的实现。 对于开发人员来说,理解滤波器大小、步幅和填充等超参数是设计有效模型的关键。