当前位置: 首页 > news >正文

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

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

http://www.dtcms.com/a/495752.html

相关文章:

  • Solidity 变量完全指南
  • 流式响应 sse 系统全流程 react + fastapi为例子
  • 好看的创意网站设计渑池县建设局网站
  • 综合电子商务型企业网站网站群管理系统哪个好
  • Windows 11 25H2 重磅更新:锁屏小组件、AI 动作全上线
  • 怎么解决打印机故障问题?使用打印机驱动网就能解决!
  • 计算圆的周长和面积
  • 华艺网站开发唐山seo公司
  • 安徽省水利建设厅官方网站别墅设计
  • PolarDB Supabase 助力 Qoder、Cursor、Bolt.diy 完成 VibeCoding 最后一公里
  • 旅游网站开发指导350模板网
  • Nginx 基本使用和高级用法详解
  • 移位操作符
  • vue3实现两个shp文件同时展示
  • 黄埔企业网站建设东莞住建局电话是多少
  • python+uniapp基于微信小程序的学院设备报修系统
  • 【项目部署】JavaWeb、MavenJavaWeb项目部署至 Tomcat 的实现方式
  • 付费网站搭建如何评价一个网站做的是否好
  • 360网站排名怎么做南京app软件开发
  • 时序数据库全面重构指南
  • 标签之表格._单元格合并(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • Linux小课堂: 文件操作核心命令深度解析(cat、less、head、tail、touch 与 mkdir 命令)
  • Docker赋能SkyEye云部署:解锁嵌入式仿真测试新效率,赋能企业研发加速
  • docker部署MySQL主从服务集群
  • 网站推广可采用的方法有哪些毕设做网站难吗
  • 方案图网站西安网站建设设计的好公司哪家好
  • 邻接矩阵的基本操作
  • 【JavaEE初阶】1124网络原理
  • 烟台建网站公司南昌做网站哪家公司好
  • windows安装minicoda