卷积神经网络中的卷积运算原理

卷积神经网络(CNN)中的卷积运算,是借鉴数学中 "卷积" 的思想并结合图像处理需求优化后的操作,核心目的是高效提取图像的局部特征(如边缘、纹理、形状等)。与数学中严格的卷积(带核翻转)略有不同,CNN 中通常使用 "互相关"(不翻转核),但习惯上仍称为 "卷积"。以下从原理、计算过程、核心特性三方面详细讲解:

一、CNN 卷积的核心目的:捕捉局部相关性

图像的特征具有局部相关性 (例如,"边缘" 由相邻像素的亮度变化构成,"纹理" 由局部重复的图案构成)。卷积运算通过滑动窗口(卷积核) 对图像的局部区域进行计算,从而提取这些局部特征,同时通过 "参数共享" 大幅减少计算量。

二、卷积运算的基本要素

在 CNN 中,卷积运算涉及 4 个核心要素:

  1. **输入特征图(Input Feature Map)**通常是二维图像(或上一层输出的特征图),形状记为 \(H \times W \times C\),其中:

    • H:高度(像素数),W:宽度(像素数),C:通道数(如 RGB 图像的 3 个通道)。
  2. **卷积核(Kernel/Filter)**一个小型矩阵(如 \(3 \times 3\)、\(5 \times 5\)),是特征提取的 "模板",形状记为 \(kH \times kW \times C\),其中:

    • kH:核的高度,kW:核的宽度(通常远小于输入的 H 和 W);
    • 通道数 C 必须与输入特征图的通道数一致(每个通道对应一个子核);
    • 核的每个元素是可学习的权重(类似 "模板" 的数值)。
  3. 步长(Stride) 卷积核在输入特征图上每次滑动的像素数,记为 S(通常取 1、2)。步长越大,输出特征图尺寸越小。

  4. 填充(Padding) 在输入特征图的边缘补 0 的层数,记为 P(通常取 0、1)。目的是控制输出特征图的尺寸(如保持与输入同尺寸)。

三、卷积运算的计算过程(以单通道输入为例)

假设输入是单通道图像 \(5 \times 5\)(\(H=5, W=5, C=1\)),卷积核是 \(3 \times 3\)(\(kH=3, kW=3, C=1\)),步长 \(S=1\),无填充(\(P=0\)),具体步骤如下:

步骤 1:对齐卷积核与输入的局部区域

将卷积核的左上角与输入图像的左上角对齐,覆盖输入的一个 \(3 \times 3\) 局部区域(如左上角第 1-3 行、第 1-3 列)。

步骤 2:计算 "元素相乘求和"

卷积核的每个元素与输入对应位置的像素值相乘,然后将所有乘积相加,得到输出特征图的第一个像素值

例如:输入局部区域为:\(\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}\)卷积核为:\(\begin{bmatrix} w_1 & w_2 & w_3 \\ w_4 & w_5 & w_6 \\ w_7 & w_8 & w_9 \end{bmatrix}\)则第一个像素值为:\(\text{out}_1 = 1 \cdot w_1 + 2 \cdot w_2 + 3 \cdot w_3 + 4 \cdot w_4 + 5 \cdot w_5 + 6 \cdot w_6 + 7 \cdot w_7 + 8 \cdot w_8 + 9 \cdot w_9\)

步骤 3:滑动卷积核,重复计算

按步长 \(S=1\) 向右滑动卷积核,每次滑动 1 个像素,直到无法覆盖输入的 \(3 \times 3\) 区域(共滑动 \(5 - 3 + 1 = 3\) 次,得到第一行 3 个像素)。

然后向下滑动 1 个像素,重复上述过程,直到覆盖输入的所有局部区域。

步骤 4:得到输出特征图

最终输出特征图的尺寸计算公式为:\(\text{输出高度} = \frac{H - kH + 2P}{S} + 1, \quad \text{输出宽度} = \frac{W - kW + 2P}{S} + 1\)上述例子中,输出尺寸为 \(\frac{5 - 3 + 0}{1} + 1 = 3\),即 \(3 \times 3\) 的特征图。

四、多通道输入的卷积运算

当输入是多通道(如 RGB 图像,\(C=3\))时,卷积核也需对应 \(C=3\) 个通道(每个通道一个子核),计算过程变为:

  1. 每个通道的子核与输入对应通道的局部区域做 "元素相乘求和",得到该通道的中间结果;
  2. 将所有通道的中间结果相加(叠加),得到输出特征图的一个像素值。

例如,输入 \(5 \times 5 \times 3\),卷积核 \(3 \times 3 \times 3\),则输出的一个像素是 3 个通道的子核计算结果之和。

五、CNN 卷积的核心特性(与全连接层对比)

  1. 局部感受野:卷积核只关注输入的局部区域(而非全局),符合图像局部特征的特性;
  2. 参数共享:同一个卷积核在输入上滑动时,权重不变(即所有位置的计算共享同一组核参数),大幅减少参数数量(例如,\(3 \times 3\) 核仅需 9 个参数,而全连接层对 \(5 \times 5\) 输入需 25 个参数);
  3. 平移不变性:同一特征(如边缘)在图像的不同位置,会被同一个卷积核检测到(因参数共享)。

六、与数学卷积的细微区别

数学中的卷积定义为 "翻转核后再滑动相乘求和",而 CNN 中通常不翻转核(直接滑动相乘求和),这种操作严格来说是 "互相关(Cross-Correlation)"。但由于核的权重是可学习的(翻转后可通过学习调整权重补偿),实际效果等价,因此 CNN 中仍称为 "卷积"。

总结

CNN 中的卷积运算,本质是通过滑动的卷积核对输入的局部区域进行 "加权求和",核心是利用 "局部感受野" 和 "参数共享" 高效提取图像的局部特征。这一机制使 CNN 在图像处理任务(如图像分类、目标检测)中远超传统全连接网络,成为计算机视觉的核心工具。

相关推荐
MM_MS2 分钟前
Halcon图像锐化和图像增强、窗口的相关算子
大数据·图像处理·人工智能·opencv·算法·计算机视觉·视觉检测
lambo mercy17 分钟前
无监督学习
人工智能·深度学习
柠柠酱42 分钟前
【深度学习Day4】告别暴力拉平!MATLAB老鸟带你拆解CNN核心:卷积与池化 (附高频面试考点)
深度学习
向量引擎小橙1 小时前
推理革命与能耗:AI大模型应用落地的“冰山成本”与破局之路
大数据·人工智能·深度学习·集成学习
学好statistics和DS1 小时前
卷积神经网络中的反向传播
人工智能·神经网络·cnn
rayufo1 小时前
深度学习对三维图形点云数据分类
人工智能·深度学习·分类
weixin_465790912 小时前
光伏不确定性场景分析:从LHS场景生成到k-means场景削减
计算机视觉
程序员爱德华2 小时前
镜面检测 Mirror Detection
人工智能·计算机视觉·语义分割·镜面检测
_codemonster2 小时前
计算机视觉入门到实战系列(九) SIFT算法(尺度空间、极值点判断)
深度学习·算法·计算机视觉
莫非王土也非王臣3 小时前
TensorFlow中卷积神经网络相关函数
人工智能·cnn·tensorflow