卷积的数学原理与作用
一、一维卷积
(一)定义
- 数学定义
- 给定一个输入序列 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 m≤n。一维卷积的计算过程是通过将卷积核在输入序列上滑动,在每个位置计算它们的点积。
- 设输出序列为 y = [ y 1 , y 2 , ⋯ , y n − m + 1 ] y = [y_1,y_2,\cdots,y_{n - m+1}] y=[y1,y2,⋯,yn−m+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=0m−1kjxi+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。
- 在深度学习中的表示
- 在深度学习框架(如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
取决于输入序列长度、卷积核大小和步长等参数。
- 在深度学习框架(如PyTorch或TensorFlow)中,一维卷积层通常表示为
(二)作用
- 信号处理
- 滤波:可以用于去除信号中的噪声。例如,在音频信号处理中,低通滤波器卷积核可以通过卷积操作滤除高频噪声。假设音频信号的采样点序列为输入,通过设计一个合适的低通滤波器卷积核,让其在信号序列上滑动进行卷积,高频部分对应的系数会被削弱,从而达到滤波的效果。
- 特征提取:从时间序列数据中提取特征。以股票价格数据为例,将一段时间内的股票价格序列作为输入,一维卷积可以提取价格波动的模式,如短期的上涨或下跌趋势等特征。这些特征对于预测股票价格走势等后续任务非常有帮助。
- 自然语言处理(NLP)
- 词向量处理:在处理文本的词向量序列时,一维卷积可以捕捉局部的语义信息。例如,对于一个句子的词向量序列,卷积核可以提取出如名词短语、动词短语等局部语义单元的特征。
- 文本分类:通过对文本经过词嵌入后的序列进行一维卷积操作,提取文本的特征,然后将这些特征输入到分类器中,用于判断文本的类别,如情感分类(积极、消极或中性)等任务。
二、二维卷积
(一)定义
- 数学定义
- 对于一个二维输入矩阵 X ∈ R H × W X\in R^{H\times W} X∈RH×W( H H H表示高度, W W W表示宽度)和一个二维卷积核(滤波器) K ∈ R h × w K\in R^{h\times w} K∈Rh×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} Y∈RH−h+1×W−w+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=0h−1∑n=0w−1kmnxi+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。
- 在深度学习中的表示
- 在深度学习框架中,二维卷积层通常表示为
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_height
和output_width
取决于输入图像的高度、宽度、卷积核大小和步长等参数。
- 在深度学习框架中,二维卷积层通常表示为
(二)作用
- 图像处理
- 边缘检测:通过特定的卷积核可以检测图像的边缘。例如,Sobel算子是一种常用的边缘检测卷积核。它可以计算图像中像素灰度值的变化率,从而确定边缘的位置。对于一幅图像,使用Sobel卷积核进行二维卷积操作后,边缘部分会在输出图像中显示出较高的像素值,而非边缘部分像素值较低。
- 图像滤波:类似于一维卷积在信号处理中的滤波作用,二维卷积可以在图像中去除噪声或模糊图像。例如,均值滤波卷积核可以通过计算像素周围邻域的平均值来模糊图像,减少图像中的细节噪声。
- 特征提取:从图像中提取各种特征,如纹理、形状等。在人脸识别中,二维卷积可以提取面部的关键特征,如眼睛、鼻子、嘴巴等部位的形状和位置特征,这些特征对于后续的人脸识别任务至关重要。
- 计算机视觉中的其他应用
- 目标检测:在目标检测算法中,二维卷积用于提取图像中可能包含目标的区域特征。例如,在基于深度学习的目标检测模型(如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 年由萨姆阿尔特曼、里德霍夫曼、杰西卡利文斯顿、伊隆马斯克、伊尔亚苏茨克维、沃伊切赫萨伦巴、彼得泰尔等人在旧金山成立࿰…...

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系统…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...