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

卷积的数学原理与作用

一、一维卷积

(一)定义

  1. 数学定义
    • 给定一个输入序列 x = [ x 1 , x 2 , ⋯ , x n ] x = [x_1,x_2,\cdots,x_n] x=[x1,x2,,xn] 和一个卷积核(滤波器) k = [ k 1 , k 2 , ⋯ , k m ] k = [k_1,k_2,\cdots,k_m] k=[k1,k2,,km],其中 m ≤ n m\leq n mn。一维卷积的计算过程是通过将卷积核在输入序列上滑动,在每个位置计算它们的点积。
    • 设输出序列为 y = [ y 1 , y 2 , ⋯ , y n − m + 1 ] y = [y_1,y_2,\cdots,y_{n - m+1}] y=[y1,y2,,ynm+1],则 y i = ∑ j = 0 m − 1 k j x i + j y_i=\sum_{j = 0}^{m - 1}k_jx_{i + j} yi=j=0m1kjxi+j。例如,当 n = 5 n = 5 n=5 m = 3 m = 3 m=3 x = [ 1 , 2 , 3 , 4 , 5 ] x=[1,2,3,4,5] x=[1,2,3,4,5] k = [ 1 , 2 , 3 ] k = [1,2,3] k=[1,2,3]时, y 1 = 1 × 1 + 2 × 2 + 3 × 3 = 14 y_1=1\times1 + 2\times2+3\times3 = 14 y1=1×1+2×2+3×3=14
  2. 在深度学习中的表示
    • 在深度学习框架(如PyTorch或TensorFlow)中,一维卷积层通常表示为Conv1d。它接受一个形状为 ( b a t c h _ s i z e , c h a n n e l s _ i n , s e q u e n c e _ l e n g t h ) (batch\_size, channels\_in, sequence\_length) (batch_size,channels_in,sequence_length)的输入张量,并输出一个形状为 ( b a t c h _ s i z e , c h a n n e l s _ o u t , o u t p u t _ s e q u e n c e _ l e n g t h ) (batch\_size, channels\_out, output\_sequence\_length) (batch_size,channels_out,output_sequence_length)的张量。其中channels_in是输入通道数,channels_out是输出通道数,output_sequenc_length取决于输入序列长度、卷积核大小和步长等参数。

(二)作用

  1. 信号处理
    • 滤波:可以用于去除信号中的噪声。例如,在音频信号处理中,低通滤波器卷积核可以通过卷积操作滤除高频噪声。假设音频信号的采样点序列为输入,通过设计一个合适的低通滤波器卷积核,让其在信号序列上滑动进行卷积,高频部分对应的系数会被削弱,从而达到滤波的效果。
    • 特征提取:从时间序列数据中提取特征。以股票价格数据为例,将一段时间内的股票价格序列作为输入,一维卷积可以提取价格波动的模式,如短期的上涨或下跌趋势等特征。这些特征对于预测股票价格走势等后续任务非常有帮助。
  2. 自然语言处理(NLP)
    • 词向量处理:在处理文本的词向量序列时,一维卷积可以捕捉局部的语义信息。例如,对于一个句子的词向量序列,卷积核可以提取出如名词短语、动词短语等局部语义单元的特征。
    • 文本分类:通过对文本经过词嵌入后的序列进行一维卷积操作,提取文本的特征,然后将这些特征输入到分类器中,用于判断文本的类别,如情感分类(积极、消极或中性)等任务。

二、二维卷积

(一)定义

  1. 数学定义
    • 对于一个二维输入矩阵 X ∈ R H × W X\in R^{H\times W} XRH×W H H H表示高度, W W W表示宽度)和一个二维卷积核(滤波器) K ∈ R h × w K\in R^{h\times w} KRh×w h h h w w w分别是卷积核的高度和宽度)。二维卷积的计算是将卷积核在输入矩阵上滑动,在每个位置计算它们的对应元素乘积之和。
    • 设输出矩阵为 Y ∈ R H − h + 1 × W − w + 1 Y\in R^{H - h+1\times W - w + 1} YRHh+1×Ww+1,对于输出矩阵中的元素 y i j y_{ij} yij,其计算公式为 y i j = ∑ m = 0 h − 1 ∑ n = 0 w − 1 k m n x i + m , j + n y_{ij}=\sum_{m = 0}^{h - 1}\sum_{n = 0}^{w - 1}k_{mn}x_{i + m,j + n} yij=m=0h1n=0w1kmnxi+m,j+n。例如,当 X = [ 1 2 3 4 5 6 7 8 9 ] X=\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix} X= 147258369 K = [ 1 1 1 1 ] K=\begin{bmatrix}1&1\\1&1\end{bmatrix} K=[1111],计算 y 11 y_{11} y11时, y 11 = 1 × 1 + 2 × 1 + 4 × 1 + 5 × 1 = 12 y_{11}=1\times1+2\times1+4\times1+5\times1 = 12 y11=1×1+2×1+4×1+5×1=12
  2. 在深度学习中的表示
    • 在深度学习框架中,二维卷积层通常表示为Conv2d。它接受一个形状为 ( b a t c h _ s i z e , c h a n n e l s _ i n , h e i g h t , w i d t h ) (batch\_size, channels\_in, height, width) (batch_size,channels_in,height,width)的输入张量,并输出一个形状为 ( b a t c h _ s i z e , c h a n n e l s _ o u t , o u t p u t _ h e i g h t , o u t p u t _ w i d t h ) (batch\_size, channels\_out, output\_height, output\_width) (batch_size,channels_out,output_height,output_width)的张量。其中channels_in是输入通道数(例如彩色图像的RGB通道数为3),channels_out是输出通道数,output_heightoutput_width取决于输入图像的高度、宽度、卷积核大小和步长等参数。

(二)作用

  1. 图像处理
    • 边缘检测:通过特定的卷积核可以检测图像的边缘。例如,Sobel算子是一种常用的边缘检测卷积核。它可以计算图像中像素灰度值的变化率,从而确定边缘的位置。对于一幅图像,使用Sobel卷积核进行二维卷积操作后,边缘部分会在输出图像中显示出较高的像素值,而非边缘部分像素值较低。
    • 图像滤波:类似于一维卷积在信号处理中的滤波作用,二维卷积可以在图像中去除噪声或模糊图像。例如,均值滤波卷积核可以通过计算像素周围邻域的平均值来模糊图像,减少图像中的细节噪声。
    • 特征提取:从图像中提取各种特征,如纹理、形状等。在人脸识别中,二维卷积可以提取面部的关键特征,如眼睛、鼻子、嘴巴等部位的形状和位置特征,这些特征对于后续的人脸识别任务至关重要。
  2. 计算机视觉中的其他应用
    • 目标检测:在目标检测算法中,二维卷积用于提取图像中可能包含目标的区域特征。例如,在基于深度学习的目标检测模型(如Faster R - CNN)中,卷积层用于从输入图像中提取丰富的特征图,然后通过后续的区域提议网络(RPN)和分类回归头来确定目标的位置和类别。
    • 图像分割:用于将图像划分为不同的语义区域。通过二维卷积提取图像的特征,然后根据这些特征将像素分类到不同的类别,例如在医学图像分割中,将医学图像中的器官、组织等不同部分分割出来,为疾病诊断等任务提供帮助。

相关文章:

卷积的数学原理与作用

一、一维卷积 (一)定义 数学定义 给定一个输入序列 x [ x 1 , x 2 , ⋯ , x n ] x [x_1,x_2,\cdots,x_n] x[x1​,x2​,⋯,xn​] 和一个卷积核(滤波器) k [ k 1 , k 2 , ⋯ , k m ] k [k_1,k_2,\cdots,k_m] k[k1​,k2​,⋯,…...

路由介绍.

RIB和FIB Routing Information Base(RIB),即路由信息库,是存储在路由器或联网计算机中的一个电子表格或类数据库,它保存着指向特定网络地址的路径信息,包括路径的路由度量值。RIB的主要目标是实现路由协议…...

CTFshow-命令执行(Web29-40)

CTFshow-命令执行(Web29-40) CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤-CSDN博客 总结rce(远程代码执行各种sao姿势)绕过bypass_远程命令执行绕过-CSDN博客 对比两者的源代码,我们发现,cat指令把flag.php的内容导出后依…...

MySQL锁的类型有哪些

目录 共享锁(share lock): 排他锁(exclusivelock): 表锁(table lock): 行锁: 记录锁(Record lock): 页锁: 间隙锁: 基于锁的属性分类:共享锁,排他锁。 基于锁的粒…...

基于 JNI + Rust 实现一种高性能 Excel 导出方案(下篇)

衡量一个人是否幸福,不应看他有多少高兴的事,而应看他是否为小事烦扰。只有幸福的人,才会把无关痛痒的小事挂心上。那些真正经历巨大灾难和深重痛苦的人,根本无暇顾及这些小事的。因此人们往往在失去幸福之后,才会发现…...

关于Python程序消费Kafka消息不稳定问题的处理方法

在使用Python程序消费Kafka消息的过程中,有时会遇到各种不稳定的情况,如自动提交偏移量无效、CommitFailedError错误等。这些问题不仅影响了数据处理的可靠性,还可能导致重复消费或丢失消息。本文将针对这两个常见问题提供详细的解决方案和最…...

【OpenCV】Canny边缘检测

理论 Canny 边缘检测是一种流行的边缘检测算法。它是由 John F. Canny 在 1986 年提出。 这是一个多阶段算法,我们将介绍算法的每一个步骤。 降噪 由于边缘检测易受图像中的噪声影响,因此第一步是使用 5x5 高斯滤波器去除图像中的噪声。我们在前面的章…...

算法-二进制和位运算

一.二进制 (1).无符号数: 无符号数是一种数据表示方式,它只表示非负整数,即没有符号位,所有的位都用来表示数值大小。在 C 等编程语言中,常见的无符号类型有 unsigned int、unsigned char 等。…...

OpenAI Chatgpt 大语言模型

OpenAI 一个美国人工智能研究实验室,由非营利组织 OpenAI Inc,和其营利组织子公司 OpenAI LP 所组成。该组织于 2015 年由萨姆阿尔特曼、里德霍夫曼、杰西卡利文斯顿、伊隆马斯克、伊尔亚苏茨克维、沃伊切赫萨伦巴、彼得泰尔等人在旧金山成立&#xff0…...

SpringBoot【九】mybatis-plus之自定义sql零基础教学!

一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE mybatis-plus的基本使用,前两期基本讲的差不多,够日常使用,但是有的小伙伴可能就会抱怨了,若是遇到业务逻辑比较复杂的sq…...

C#,人工智能,深度学习,目标检测,OpenCV级联分类器数据集的制作与《层级分类器一键生成器》源代码

一、目标识别技术概述 1、摘要 目标检测是计算机视觉中最基本和最具挑战性的问题之一,它试图从自然图像中的大量预定义类别中定位目标实例。深度学习技术已成为直接从数据中学习特征表示的强大策略,并在通用目标检测领域取得了显著突破。鉴于这一快速发…...

调度系统:Luigi 的主要特性和功能

Luigi 是一个开源的 Python 工作流管理工具,用于构建批处理作业管道,特别适用于数据工程领域。它被设计用来编排任务和处理任务间的依赖关系,支持自动化复杂的 ETL 流程、数据分析、模型训练等任务。 Luigi 的主要特性和功能: 任…...

C# 探险之旅:第二节 - 定义变量与变量赋值

欢迎再次踏上我们的C#学习之旅。今天,我们要聊一个超级重要又好玩的话题——定义变量与变量赋值。想象一下,你正站在一个魔法森林里,手里拿着一本空白的魔法书(其实就是你的代码编辑器),准备记录下各种神奇…...

AUTOSAR:SOME/IP 概念

文章目录 1. 用例与需求1.1 典型用例1.2 对中间件的要求 2. 协议栈示例3. SOME/IP 概念3.1 中间件整体功能与架构3.2 服务组成元素详细解释 4. 服务发现机制深入剖析5. 总结 1. 用例与需求 1.1 典型用例 信息娱乐系统: 后座娱乐系统连接:允许后排乘客连…...

循序渐进kubenetes Service(Cluster ip、Nodeport、Loadbalancer)

文章目录 部署一个web服务Kubernetes Port ForwardKubernetes ServicesClusterIP ServiceNodePort ServiceLoadBalancer Service 部署一个web服务 准备 Kubernetes 集群后,创建一个名为 web 的新 namespace,然后在该 namespace 中部署一个简单的 web 应…...

深入理解 Apache Shiro:安全框架全解析

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...

mac 安装CosyVoice (cpu版本)

CosyVoice 介绍 CosyVoice 是阿里研发的一个tts大模型 官方项目地址:https://github.com/FunAudioLLM/CosyVoice.git 下载项目(非官方) git clone --recursive https://github.com/v3ucn/CosyVoice_for_MacOs.git 进入项目 cd CosyVoic…...

币安移除铭文市场的深度解读:背后原因及其对区块链行业的影响

引言: 就在昨天,2024年12月10号,币安宣布将移除铭文市场(Inscriptions Market)。这一消息引发了全球加密货币社区的广泛关注,尤其是在比特币NFT和数字收藏品市场快速发展的背景下。铭文市场自诞生以来迅速…...

深度学习实战野生动物识别

本文采用YOLOv11作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv11以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对野生动物数据集进行训练和优化,该数据集包含丰富的野生动物图像样…...

windows安装使用conda

在Windows系统上安装和使用Conda的详细步骤如下: 一、下载Conda安装包 访问Conda的官方网站Anaconda | The Operating System for AI,点击“Downloads”按钮。在下载页面,选择适合您系统的安装包。通常,对于Windows系统&#xf…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...