卷积神经网络 - 一维卷积、二维卷积

embedded/2025/3/18 23:25:21/

卷积(Convolution),也叫褶积,是分析数学中一种重要的运算。在信号处理或图像处理中,经常使用一维或二维卷积,本博文我们来学习一维卷积和二维卷积。

理解一维卷积和二维卷积的核心在于把握维度对特征提取方式的影响。我们从数学定义、几何意义和应用场景三个维度展开分析,并通过对比揭示其本质差异。

一、数学定义对比

1. 一维卷积 (1D Convolution)

特性

  • 滑动方向:单一方向(时间轴/序列方向)

  • 感受野:连续区间

  • 参数数量:K×Cin×Cout

2. 二维卷积 (2D Convolution)

特性

  • 滑动方向:两个正交方向(高度+宽度)

  • 感受野:矩形区域

  • 参数数量:Kh​×Kw​×Cin​×Cout​

二、几何意义解析

1. 一维卷积的几何视角

特征提取模式

  • 在时间轴上滑动的局部窗口

  • 捕获时序相关性(如语音中的音素过渡)

  • 典型模式检测:

    • 上升沿检测核:[1, 0, -1]

    • 振动检测核:[1, -2, 1]

2. 二维卷积的几何视角

特征提取模式

  • 在平面网格上滑动的局部窗口

  • 捕获空间相关性(如图像中的边缘走向)

  • 典型模式检测:

    • 水平边缘检测核:

    • 45度对角线检测核:

三、计算过程对比演示

案例1:一维卷积实例

输入序列[3, 5, 2, 6, 8]
卷积核[0.5, -1]
计算过程(步长=1,无填充):

位置1: 3×0.5 + 5×(-1) = 1.5 -5 = -3.5  
位置2: 5×0.5 + 2×(-1) = 2.5 -2 = 0.5  
位置3: 2×0.5 + 6×(-1) = 1 -6 = -5  
位置4: 6×0.5 + 8×(-1) = 3 -8 = -5

输出[-3.5, 0.5, -5, -5]

案例2:二维卷积实例

输入矩阵

卷积核

计算过程(步长1,无填充):

位置(1,1): 
1×1 + 3×0 + 4×(-1) + 6×0.5 = 1 -4 +3 = 0位置(1,2): 
3×1 + 2×0 + 6×(-1) + 5×0.5 = 3 -6 +2.5 = -0.5位置(2,1): 
4×1 + 6×0 + 7×(-1) + 9×0.5 = 4 -7 +4.5 = 1.5位置(2,2): 
6×1 + 5×0 + 9×(-1) + 8×0.5 = 6 -9 +4 = 1

输出矩阵

四、本质差异深度分析

维度特征提取方向参数空间不变性典型应用
1D单方向时序关系O(K)时间平移语音识别、股票预测
2D二维空间关系O(K^2)空间平移图像分类、医学影像

关键差异点

  1. 邻域结构

    • 1D:线性邻域(前序-当前-后续)

    • 2D:平面邻域(包含空间拓扑关系)

  2. 参数复杂度

    • 1D参数量随核长度线性增长

    • 2D参数量随核尺寸平方增长

  3. 平移不变性

    • 1D处理时间平移(早/晚出现相同模式)

    • 2D处理空间平移(不同位置相同物体)

  4. 特征组合方式

    • 1D通过堆叠卷积层捕获长程依赖

    • 2D通过分层卷积建立多尺度表征

五、统一数学框架

两种卷积都可以纳入张量卷积的一般形式:

  • 对于1D卷积,其中一个维度退化(如j=0)

  • 对于2D卷积,两个维度都保持活跃

几何解释

  • 1D:在直线上滑动的线段检测器

  • 2D:在平面上滑动的平面检测器

六、现代扩展形式

扩展类型1D实现2D实现目的
空洞卷积间隔采样时序点棋盘式采样扩大感受野
可分离卷积深度分离时序卷积空间分离卷积降低参数量
动态卷积时间自适应的核空间自适应的核增强灵活性

七、选择指导原则

  1. 数据类型决定维度

    • 时间序列 → 1D卷积

    • 图像/视频 → 2D/3D卷积

  2. 特征方向性需求

    • 需要捕获空间方向特征 → 2D卷积

    • 仅需序列模式 → 1D卷积

  3. 计算资源约束

    • 资源有限时优先1D

    • 允许复杂计算时使用2D

终极理解
一维卷积是时序特征提取器,关注事件发生的顺序规律;二维卷积是空间特征提取器,关注模式的几何分布。

二者的本质区别在于:
1D卷积处理的是因果性(causality),2D卷积处理的是共现性(co-occurrence)。这种维度差异决定了它们在特征表示、参数设计和应用场景上的根本不同。

八、示例

典型类比:
现实场景卷积对应
金属探测器扫沙滩在二维空间滑动检测
心电图机走纸在时间轴上滑动分析
验钞灯照射纸币多层级特征验证
一维卷积示例:

下层为输入信号序列, 上层为卷积结果。连接边上的数字为滤波器中的权重。下图的卷积结果为近似值。

二维卷积示例

在数学卷积的定义中,核翻转指的是在计算卷积前,将卷积核进行反转操作。具体来说:

  • 一维卷积:如果卷积核为 [a, b, c],翻转后得到 [c, b, a]。
  • 二维卷积:如果卷积核为

翻转操作即先水平翻转,再垂直翻转,结果为

这种翻转是数学卷积定义的一部分,确保了卷积运算的交换性和其他数学性质。需要注意的是,在很多深度学习框架中实际使用的操作更接近于交叉相关(不翻转卷积核),但严格的数学卷积要求核翻转。以上的例子为严格的数学卷积,即先翻转

在图像处理中,卷积经常作为特征提取的有效方法。一幅图像在经过卷积操作后得到结果称为特征映射(Feature Map)。下图给出在图像处理中几种常用的滤波器,以及其对应的特征映射。图中最上面的滤波器是常用的高斯滤波器,可以用来对图像进行平滑去噪;中间和最下面的滤波器可以用来提取边缘特征。

九、特性和关键优势:

卷积就像用同一个「特征扫描仪」在数据上逐段检查,专注寻找重复出现的局部模式。

想象你拿手机扫描超市货架找可乐:

  1. 扫描动作:手机摄像头每次对准货架的一小块区域(局部连接)

  2. 同一标准:无论扫描哪个位置,都用相同的"可乐logo识别程序"(权重共享)

  3. 滑动检测:从左到右移动手机,直到找到红底白字的经典标志(滑动窗口)

  • 效率高:1个扫描器重复使用,避免重复造轮子

  • 专注细节:每次只看局部,不受无关信息干扰

  • 模式专家:专门检测平移不变的特征(如无论猫咪在图片哪个位置都能识别)

终极记忆口诀:
"小窗滑动,同标检测,特征抓取,高效省力"


http://www.ppmy.cn/embedded/173704.html

相关文章

Bash语言的语法

Bash语言的魅力:探秘命令行的力量 引言 在现代计算机科学的领域中,编程语言和脚本语言的使用已经变得不可或缺。每一种语言都有其独特的魅力和用武之地。在众多编程语言中,Bash(Bourne Again SHell)作为一种强大的脚…

【解决】XCode不支持旧版本的iOS设备

办法: 手动添加设备支持文件(暂时解决方式) 如果您无法立即升级 Xcode,也可以通过下载设备支持文件来暂时解决问题。 检查当前设备的 iOS 版本: 连接设备到 Mac,打开 Xcode 查看提示的 iOS 版本。例如&…

将COCO格式的物体检测数据集划分训练集、验证集和测试集

目录 导入所需库 定义数据集路径 创建输出目录 读取JSON注释文件 随机打乱图像列表 计算划分大小 复制图像到相应文件夹 完整代码 导入所需库 我们需要以下Python库: os:处理文件路径。 json:读取和写入JSON文件。 numpy&#xff…

QT:文件读取

问题: 在文件读取,判断md5值时,遇到py文件读取转String后,再转byte,md5前后不一致问题。 解决方法: python文件读取要使用QTextStream,避免\t 、\r、\n的换行符跨平台问题(window…

MySQL 锁

MySQL中最常见的锁有全局锁、表锁、行锁。 全局锁 全局锁用于锁住当前库中的所有实例,也就是说会将所有的表都锁住。一般用于做数据库备份的时候就需要添加全局锁,数据库备份的时候是一个表一个表备份,如果没有加锁的话在备份的时候会有其他的…

选择最佳加密软件:IPguard vs Ping32——企业级安全方案评估

在当前数字化快速发展的背景下,企业信息的安全性变得尤为重要。为了有效保护企业的核心数据和知识产权,选择合适的加密软件成为众多企业关注的焦点。本文将对两款市场上广受好评的加密软件——Ping32与IPguard进行详细对比分析,旨在帮助企业根…

解决从deepseek接口获取的流式响应输出到前端都是undefined的问题

你的前端 EventSource 代码遇到了 undefined 连续输出 的问题,通常是因为: AI 返回的内容被拆成了单个字符,导致前端 JSON.parse(event.data).content 获取到的是单个字符,而 undefined 可能是因为某些数据块没有 content 字段。…

Flutter 按钮组件 ElevatedButton 详解

目录 1. 引言 2. ElevatedButton 的基本用法 3. 主要属性 4. 自定义按钮样式 4.1 修改背景颜色和文本颜色 4.2 修改按钮形状和边框 4.3 修改按钮大小 4.4 阴影控制 4.5 水波纹效果 5. 结论 相关推荐 1. 引言 在 Flutter 中,ElevatedButton 是一个常用的…