二维卷积神经网络

2025年6月25日 | 阅读 7 分钟

卷积神经网络 (CNN) 是一类深度学习模型,主要用于解释具有网格状布局的输入,例如图像。CNN 使用反向传播来自动化和适应性地学习特征的空间结构,这是一种受动物视觉脑启发的技巧。与传统的全连接神经网络相比,CNN 使用卷积层,卷积层通过在输入数据上滑动滤波器(卷积核)来提取局部模式。

这些层有助于捕捉边缘、纹理和形状等基本元素。为了减小空间尺寸、提高计算效率并减少 过拟合,接下来是 池化层。当数据通过多个卷积层和池化层时,网络会创建更复杂的表示。最后,全连接层用于执行 回归 和分类任务。

由于 CNN 能够准确识别模式,因此它们经常用于计算机视觉应用,包括物体识别、面部识别和图像分类。由于其架构,它们具有计算效率高且功能强大的特点。

什么是二维 CNN?

专门用于处理二维输入(包括彩色或灰度图像)的 CNN 被称为二维卷积神经网络 (2D CNN)。为了识别边缘、角、纹理和图案等空间特征,2D CNN 的卷积层将二维滤波器(也称为卷积核)应用于输入数据。

每个滤波器在输入图像的宽度和高度上滑动,执行逐元素乘法和求和,从而生成一个特征图。这些特征图减少了手动特征提取的需求,同时帮助网络理解重要的视觉特征。

2D CNN 由以下几层组成:

  • 卷积层(用于特征提取)
  • 激活函数(例如用于非线性的 ReLU
  • 池化层(用于 下采样
  • 全连接层(用于最终决策)

2D 卷积神经网络的关键组成部分

输入层

2D CNN 的输入层是模型的起点,负责接收原始数据,通常是二维图像的形式。每张图像都用像素值矩阵表示。彩色图像包含三个通道(红色、绿色和蓝色),形成三维输入(高度 × 宽度 × 3)。灰度图像是单个二维矩阵。这一层充当网络的数据入口点,但本身不执行任何计算。

卷积层

2D CNN 的核心是卷积层。为了在输入图像中查找特定模式或特征,它们会应用滤波器(也称为 卷积核)。每个滤波器通过在图像上滑动并执行逐元素乘法和求和来创建特征图。在早期,这些层学习识别低级特征(如边缘),而在较深层,则学习提取更复杂的模式。每个滤波器捕获源数据中一种独特的特征。

激活函数

卷积之后是激活函数的应用,它为模型引入非线性,使其能够学习复杂的映射。ReLU(整流线性单元)是最常用的激活函数,它将特征图中的负值替换为零。通过引入更接近真实世界数据的非线性行为,这有助于加速训练并提高网络性能。

池化层

池化层限制这些特征图的空间大小,以减少过拟合和计算量。最常用的池化技术是最大池化,它在特征图的小窗口(例如 2x2)中选择最大值。这有助于保留最重要的特征,同时去除不太重要的特征。此外,池化使模型对输入图像的微小平移或失真更具鲁棒性。

全连接层(密集层)

在通过池化层和卷积层提取和压缩特征后,数据被展平成一维向量。然后,该向量通过一个或多个密集的全连接层。与传统的神经网络类似,这些层会整合信息以得出最终的分类或决策。通常,它们位于 CNN 架构的末端。

Dropout 层(可选)

Dropout 是一种常用的正则化策略,用于在训练过程中防止过拟合。在每次训练周期结束时,Dropout 层会“丢弃”或忽略一部分随机选择的神经元。这可以防止网络过度依赖任何一个神经元,迫使其学习更鲁棒的特征。通常会对全连接层应用 Dropout。

输出层

模型的最终预测由输出层生成。对于分类任务,它通常具有与类别数相同数量的神经元。对于多类分类,通常使用 Softmax 激活函数 来提供跨类别的概率分布。对于二元分类,它会使用 Sigmoid 函数。模型的预测置信度体现在输出中。

2D 卷积的运算过程

1. 输入图像和滤波器

过程始于一个二维输入,通常是表示为像素值矩阵的图像。与彩色图像(其红色、绿色和蓝色通道会独立处理)不同,灰度图像被视为单个二维矩阵。选择一个称为滤波器或卷积核的小矩阵;这些通常是 3x3 或 5x5 的尺寸。为了扫描输入图像并提取预期的特征(如边缘或纹理),该滤波器具有一组权重。

2. 滤波器定位

滤波器最初放置在输入图像的左上角。它与图像中与其大小相同的区域重叠。例如,一个 3x3 的滤波器会与图像的 3x3 区域对齐。此定位定义了在下一阶段将处理的图像区域和滤波器。

3. 逐元素乘法

滤波器放置好后,滤波器中的每个值都与其在图像重叠区域中的对应值相乘。此过程逐元素进行。因此,如果滤波器和图像区域都是 3x3 矩阵,则同时执行九次乘法。

4. 求和

每个对应元素相乘后,会将结果值相加。这个总和表明滤波器在该图像区域中的拟合程度。输出特征图将最终值(一个单一整数)存储为一个像素。

5. 滑动滤波器

然后,滤波器在图像上“滑动”或移动。步幅(stride)决定了它每一步移动的距离。更大的步幅会跳过更多像素,而步幅为 1 则滤波器一次移动一个像素。在每个新位置重复乘法和求和操作。

6. 构建特征图

当滤波器遍历整个图像时,它会生成一系列输出值。特征图(也称为 激活图)是一个新的矩阵,由这些数据组成。此特征图显示了输入图像的各个区域中,滤波器旨在识别的特定模式的存在情况。

7. 应用激活函数(可选)

在生成特征图后,通常会应用非线性激活函数,例如 ReLU(整流线性单元)。ReLU 会将特征图中的每个负值替换为零。此步骤通过教授网络识别图像中更复杂、非线性的模式,提高了其识别各种特征的能力。

示例

输出

Output Feature Map:
[[-4. -2.  2.]
 [ 0. -4. -3.]
 [ 0.  0. -2.]]

2D 卷积神经网络的应用包括:

图像分类

2D CNN 通常用于对图像进行分类,例如判断图像是否包含汽车、狗或猫。网络因此能够识别每个类别的特定特征和模式。为此,通常使用 MNIST、CIFAR-10 和 ImageNet 等著名数据集作为基准。

物体识别

2D CNN 不仅能判断图像内容,还能识别图像中的物体。在机器人、自动驾驶和监控领域,YOLO(You Only Look Once)和 Faster R-CNN 等模型使用 CNN 来识别图像中的物体并绘制边界框。

面部识别

通过学习眼睛之间的距离、下颌线的形状或皮肤纹理等关键面部特征,CNN 在识别人类面孔方面非常出色。其应用包括身份验证系统、情绪识别和智能手机解锁。

医学影像

2D CNN 在医疗领域用于分析 X 射线、MRI、CT 扫描 和组织病理学图像。它们通过辅助肿瘤检测、疾病诊断和医学图像分割来识别问题区域,从而提高了医学分析的准确性和速度。

数字和手写识别

CNN 在识别手写数字和字符方面表现出色。这通常用于银行支票处理、邮政编码读取和文档数字化。MNIST 数据集是 CNN 在数字识别问题训练中的一个著名示例。

场景和活动识别

CNN 能够识别照片或视频帧中的人类活动,或在安全和监控中识别完整场景。这包括在智能城市系统中解释上下文、识别可疑活动和检测人群行为。

卫星和航空影像分析

通过识别肉眼难以察觉的模式,CNN 有助于分析卫星或无人机拍摄的图像,应用于土地覆盖分类、城市规划、灾害评估和农业监测等领域。