卷积神经网络 (CNN) 是一种深度学习模型,旨在通过多层数学运算自动学习分层特征来处理网格状数据,例如图像。 CNN 的核心是将卷积滤波器应用于输入数据以检测空间模式,然后进行下采样和非线性变换。 这些步骤使网络能够逐步识别复杂的结构——从早期层中的边缘和纹理到更深层中的对象部分和完整对象。
CNN 的架构通常包括三个关键组件:卷积层、池化层和全连接层。 卷积层使用小的滤波器矩阵(例如,3x3 或 5x5 像素)在输入上滑动,计算点积以生成特征图。 例如,滤波器可以通过强调像素强度变化来检测图像中的水平边缘。 池化层(例如最大池化)通过保留局部区域(例如,2x2 窗口)中的最大值来减小特征图的空间维度,这有助于控制计算复杂性并提高平移不变性。 网络末端的全连接层将学习到的特征映射到输出类(例如,将图像分类为“猫”或“狗”)。 在训练期间,反向传播会调整滤波器权重以最大限度地减少预测误差。
一个实际的例子是训练 CNN 来识别手写数字。 第一个卷积层可能会学习检测笔画,而更深层会将这些笔画组合成特定于数字的形状。 ReLU 激活函数在每次卷积后引入非线性,允许网络对复杂关系进行建模。 可以添加 Dropout 层来防止过度拟合。 开发人员通常使用 TensorFlow 或 PyTorch 等框架来实现 CNN,定义层配置(例如,滤波器计数、步长)并优化学习率等超参数。 这种结构化的方法使 CNN 能够有效地扩展用于医学图像分析或自动驾驶等任务,在这些任务中,局部模式和空间层次结构至关重要。