卷积神经网络(CNN):原理、计算与架构解析
1. 图像特征提取挑战与卷积神经网络引入
在处理图像数据时,我们面临几个重大挑战:
- 高维度问题 :图像的维度可能非常大。例如,一个 2MP 的图像,若分辨率为 1600x1200,每张图像将有 190 万个像素。
- 空间变化问题 :通过图像捕获的数据并非总是居中对齐。比如,一张图像中的猫可能在角落,而另一张中可能在中心,模型需要能够捕捉信息的空间变化。
- 旋转不变性问题 :图像中的猫可以沿垂直或水平方向旋转,但仍然是猫,因此需要一个强大的解决方案来捕捉这些差异。
为了解决这些问题,我们引入了卷积神经网络(CNN)。CNN 的核心思想是将问题分解为更小、更易管理的部分。我们通过内核将图像分解为多个特征图,并按顺序使用这些特征图来构建模型,该模型可用于任何下游或前置任务。
2. 卷积操作基础
内核是特征提取器,它可以提取边缘、梯度、模式等特征。通常使用方阵在图像的第一步和后续特征图上执行卷积任务。卷积任务可以看作是最简单的点积任务。
例如,一个 3x3 的内核在 3x3 的特征图上进行点积运算,得到一个值。由于图像或特征图通常较大,内核不会只在一个 3x3 的矩阵上操作,而是会向前移动一定步长来计算下一次卷积操作。
下面是一个具体的例子,一个 5x5 的特征图与一个 3x3 的内核进行卷积,得到一个 3x3 的特征图:
graph LR