卷积神经网络 (CNN) 是一种深度学习模型,主要用于处理网格状数据,例如图像。与将输入数据视为扁平向量的标准神经网络不同,CNN 保留了输入的空间结构(例如,图像的高度、宽度和通道),并使用专门的层来分层检测模式。其核心思想是应用滤波器(或称为卷积核),在输入上滑动以提取边缘、纹理或形状等特征。与全连接网络相比,这种方法减少了参数数量,使 CNN 在处理图像等高维数据时计算效率更高。
CNN 由三种关键层类型构建而成:卷积层、池化层和全连接层。卷积层将滤波器应用于输入,生成特征图,突出显示特定模式出现的位置。例如,在图像分类任务中,前几层可能检测边缘,而更深的层则识别眼睛或轮子等复杂结构。池化层(例如最大池化)对这些特征图进行下采样,减小其空间维度,并使模型对输入中的微小偏移更具鲁棒性。经过多个卷积层和池化层后,输出会被展平并传递给全连接层进行分类。一个经典的例子是在 MNIST 数据集上使用 CNN,通过从像素数据中学习分层特征,它们在数字识别中实现了高精度。
开发者通常使用 TensorFlow 或 PyTorch 等框架实现 CNN。例如,在 PyTorch 中一个简单的 CNN 可能包含带有 ReLU 激活的 Conv2d
层,接着是 MaxPool2d
层,最后是用于预测的线性层。滤波器大小(例如 3x3)、步长(滤波器移动的距离)和填充(处理边缘)等超参数至关重要,需要进行调整。CNN 还受益于数据增强等技术(例如旋转或翻转图像)以提高泛化能力。ResNet 或 VGG16 等预训练模型被广泛用于迁移学习,即将在一个大型数据集(例如 ImageNet)上训练好的模型,针对数据有限的特定任务进行微调。虽然 CNN 在计算机视觉领域表现出色,但它们也适用于时间序列分析或自然语言处理等任务,只需调整输入结构即可。