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

卷积神经网络(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 在图像处理任务(如图像分类、目标检测)中远超传统全连接网络,成为计算机视觉的核心工具。

相关推荐
AndrewHZ4 分钟前
【AI黑话日日新】什么是隐式CoT?
人工智能·深度学习·算法·llm·cot·复杂推理
格林威8 分钟前
Baumer相机视野内微小缺陷增强检测:提升亚像素级瑕疵可见性的 7 个核心方法,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·算法·计算机视觉·视觉检测·工业相机
HaiLang_IT12 小时前
计算机视觉选题指南(2026版):图像分类、目标检测、分割等热门方向详解
计算机视觉·分类·课程设计
All The Way North-12 小时前
彻底掌握 RNN(实战):PyTorch API 详解、多层RNN、参数解析与输入机制
pytorch·rnn·深度学习·循环神经网络·参数详解·api详解
2501_9414185513 小时前
【计算机视觉】基于YOLO11-P6的保龄球检测与识别系统
人工智能·计算机视觉
童话名剑14 小时前
情感分类与词嵌入除偏(吴恩达深度学习笔记)
笔记·深度学习·分类
咋吃都不胖lyh14 小时前
CLIP 不是一个 “自主判断图像内容” 的图像分类模型,而是一个 “图文语义相似度匹配模型”—
人工智能·深度学习·机器学习
咚咚王者16 小时前
人工智能之核心技术 深度学习 第七章 扩散模型(Diffusion Models)
人工智能·深度学习
逄逄不是胖胖16 小时前
《动手学深度学习》-60translate实现
人工智能·python·深度学习
格林威16 小时前
Baumer相机金属焊缝缺陷识别:提升焊接质量检测可靠性的 7 个关键技术,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·算法·计算机视觉·视觉检测·堡盟相机