如何通俗易懂地解释卷积?

卷积的理解、卷积公式的推导以及计算 卷积)是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。(源于:百度百科)卷积是一种数学运算。既然卷积是一种数学运算,那么肯定有公式吧。我以信号与系统里的卷积公式来解释。连续LTI系统下的卷积公式为:离散LTI系统下的卷积公式为:看到这里依然云里雾里的,接下来我们一步步解释。LTI系统也叫线性时不变系统。 阅读详情

从数学上讲,卷积就是一种运算。

某种运算,能被定义出来,至少有以下特征:

  • 首先是抽象的、符号化的
  • 其次,在生活、科研中,有着广泛的作用

比如加法:

  • a+b ,是抽象的,本身只是一个数学符号
  • 在现实中,有非常多的意义,比如增加、合成、旋转等等

卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。

1 卷积的定义

我们称 (f*g)(n) 为f,g 的卷积

其连续的定义为:

\displaystyle (f*g)(n)=\int _{-\infty }^{\infty }f(\tau )g(n-\tau )d\tau

其离散的定义为:

\displaystyle (f*g)(n)=\sum _{\tau =-\infty }^{\infty }{f(\tau )g(n-\tau )}

这两个式子有一个共同的特征:


这个特征有什么意义?

我们令 x=\tau ,y=n-\tau ,那么x+y=n 就是下面这些直线:



如果遍历这些直线,就好比,把毛巾沿着角卷起来:

此处受到 荆哲:卷积为什么叫「卷」积? 答案的启发。

只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。

我们来看看现实中,这样的定义有什么意义。

2 离散卷积的例子:丢骰子

我有两枚骰子:


把这两枚骰子都抛出去:


求:


这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。

我们把骰子各个点数出现的概率表示出来:


那么,两枚骰子点数加起来为4的情况有:




因此,两枚骰子点数加起来为4的概率为:

f(1)g(3)+f(2)g(2)+f(3)g(1)

符合卷积的定义,把它写成标准的形式就是:

\displaystyle (f*g)(4)=\sum _{m=1}^{3}f(4-m)g(m)

3 连续卷积的例子:做馒头

楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。

假设馒头的生产速度是 f(t) ,那么一天后生产出来的馒头总量为:

\int _{0}^{24}f(t)dt

馒头生产出来之后,就会慢慢腐败,假设腐败函数为 g(t) ,比如,10个馒头,24小时会腐败:

10*g(t)

想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。

如此,我们可以知道,一天后,馒头总共腐败了:

\int _{0}^{24}f(t)g(24-t)dt

这就是连续的卷积。

4 图像处理

4.1 原理

有这么一副图像,可以看到,图像上有很多噪点:


高频信号,就好像平地耸立的山峰:

看起来很显眼。

平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。

平滑后得到:


4.2 计算

卷积可以帮助实现这个平滑算法。

有噪点的原图,可以把它转为一个矩阵:



然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:

g=\begin{bmatrix} \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \\ \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \\ \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \end{bmatrix}

记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。

比如我要平滑 a_{1,1} 点,就在矩阵中,取出a_{1,1} 点附近的点组成矩阵f ,和g 进行卷积计算后,再填回去:


要注意一点,为了运用卷积, g 虽然和 f 同维度,但下标有点不一样:
我用一个动图来说明下计算过程:

写成卷积公式就是:

\displaystyle (f*g)(1,1)=\sum _{k=0}^{2}\sum _{h=0}^{2}f(h,k)g(1-h,1-k)

要求 c_{4,5} ,一样可以套用上面的卷积公式。

这样相当于实现了 g 这个矩阵在原来图像上的划动(准确来说,下面这幅图把g 矩阵旋转了180^\circ ):


此图出处:Convolutional Neural Networks - Basics

-----------------------------------------------------------------------------------------------------------------------------------------------

有那么麻烦吗?
不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。
这个其实非常简单的概念,国内的大多数教材却没有讲透。

直接看图,不信看不懂。以离散信号为例,连续信号同理。

已知x[0] = a, x[1] = b, x[2]=c(注:这里把x[n]看做输入信号)

已知y[0] = i, y[1] = j, y[2]=k  (注:这里,把y[n]看做离散加权序列)

下面通过演示求x[n] * y[n]的过程,揭示卷积的物理意义。

第一步,x[n]乘以y[0]并平移到位置0:(注:输入x[n]离散点输入x[n],使用y[0]进行加权,以下类似)


第二步,x[n]乘以y[1]并平移到位置1:

第三步,x[n]乘以y[2]并平移到位置2:

最后,把上面三个图叠加,就得到了x[n] * y[n]:

简单吧?无非是 平移(没有反褶!)、叠加。

====================================================

从这里,可以看到卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。


重复一遍,这就是卷积的意义:加权叠加。

对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应 加权叠加,就直接得到了输出信号。


通俗的说:
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。(注:从马同学的图像卷积案例,可理解为对各个移动区域(看成一个离散输入)进行加权相加,卷积窗格每移动一格,对新“框定”的区域(又是一个离散输入)进行加权,由于移动过程中,有重叠区域,所以各个窗格(区域)对划过它的全部窗格都要响应,从而得到张俊博所说的加权(输出),只不过张提到的更像是信号处理领域的)这正是单位响应是如此重要的原因。

在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。

在输入信号的每个位置, 叠 加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。

看了好多关于卷积的答案,看到这个例子才彻底地理解了这个过程~
关于卷积的一个血腥的讲解
比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号(注:张俊博中的x[n]),脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要一些假设来保证论证的严谨:假定你的脸是线性时不变系统,也就是说,无论什么时候老板打你一巴掌,打在你脸的同一位置(这似乎要求你的脸足够光滑,如果你说你长了很多青春痘,甚至整个脸皮处处连续处处不可导,那难度太大了,我就无话可说了哈哈),你的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了!

如果你每天都到地下去打台球,那么老板每天都要扇你一巴掌,不过当老板打你一巴掌后,你5分钟就消肿了,所以时间长了,你甚至就适应这种生活了……如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇你的过程,这样问题就来了,第一次扇你鼓起来的包还没消肿,第二个巴掌就来了,你脸上的包就可能鼓起来两倍高,老板不断扇你,脉冲不断作用在你脸上, 效果不断叠加了,这样这些效果就可以求和了,结果就是你脸上的包的高度随时间变化的一个函数了(注意理解);如果老板再狠一点,频率越来越高,以至于你都辨别不清时间间隔了,那么,求和就变成积分了。可以这样理解, 在这个过程中的某一固定的时刻,你的脸上的包的鼓起程度和什么有关呢?和之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数(注:张俊博所说的加权,y[n])之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积(注:加权之和),卷积之后的函数就是你脸上的包的大小随时间变化的函数。本来你的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?反映到剑桥大学的公式上,f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就ok了,大家说是不是这个道理呢?我想这个例子已经非常形象了,你对卷积有了更加具体深刻的了解了吗?
转自GSDzone论坛
通俗易懂的理解卷积 通俗易懂的理解卷积在图像上的运用 先来看一个例子: 有这么一副图像,可以看到,图像上有很多噪点 高频信号,就好像平地耸立的山峰:看起来很显眼。平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。 由此,我们可以把图片转换成矩阵 然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像 比如我要平滑a1,1 点,就在矩阵中,取出a1,1 点附近的点组成矩阵f,和 g进行卷积计算后,再填回去: 阅读详情

相关推荐

别怕,“卷积”其实很简单

首先给大家讲一个关于卷积的小故事:小明是杭州某互联网大厂的员工,每天996十分辛苦,但小明最近爱上了打台球,经常不在工位。这天,小明的主管让小明改一个需求,小明却到楼下找产品部小丽打台球去了,被主管发现,他非常气愤,扇了小明一巴掌(注意,这就是输入信号,脉冲)。于是小明脸上会渐渐地(贱贱地)鼓起来一个包,小明的脸就是一个系统,而鼓起来的包就是小明的脸对巴掌的响应。好,这样就和信号系统建立起来意义对应的联系。

Machine Learning with Tutors 3181

什么是卷积

什么是卷积

猛犸象 1万+

解决rt-thread上使用SPI+DMA

首先阐述下遇到的问题 使用SPI读取icm20602数据,读取频率为1000hz,使用stm32f407主控,发现CPU占用率达到了70%,将此线程注释掉后CPU占用率掉到25%,看来这里要着重优化,便萌生了使用DMA的想法。 使用SPI+DMA要进行的配置 1.开启RTT设备驱动。点击自己的工程 ->RT-Thread Setting2.在board.hzhong3.在board.c文件里加入以下函数,此函数受设备框架调用 void HAL_SPI_MspInit(SPI_HandleTypeDef

响望的博客 8085

卷积的通俗解释

原文地址:《对卷积的困惑》这个知乎上的回答对卷积进行了迄今为止我认为最明确的解释,现把其中一些内容摘录下来作为学习笔记,以下均为摘录内容: 文章主要想解释两个问题: 1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思? 2. 卷积背后的意义是什么,该如何解释? 对卷积这个名词的理解:所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加。 在连续...

piglite的专栏 4万+

可视化工具--Plotly

随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重要的一环。对于Python语言来说,比较传统的数据可视化模块是Matplotlib,但它存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化方面的发展。   为了解决这个问题,新型的动态可视化开源模块Plotly应运而生。由于Plotly具有动态、美观、易用、种类丰富等特性,所以一经问世就受到开发人员的喜爱。

YFater的博客 1万+

在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走

在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走 同步的比较简单,直接在coze 工作流里面就可以搞定了,也不用写代码之类的

AI懒虫 2357

如何通俗易懂地解释卷积

“卷积”是数字信号处理和自动控制原理中的一个非常常用且重要的方法。 教材中定义的卷积一般形式如下: (f∗g)(n)=∫−∞∞f(τ)g(n−τ)dτ (f * g)(n)=\int_{-\infty}^{\infty} f(\tau) g(n-\tau) d \tau (f∗g)(n)=∫−∞∞​f(τ)g(n−τ)dτ 下面以离散信号为例,来简单描述卷积的计算过程和其物理意义,连续信号同理。 ...

Aromash的博客 1125

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1606

通俗易懂地解释卷积?

通俗易懂地解释卷积?1. 卷积的定义2. 离散卷积的例子:丢骰子3. 连续卷积的例子:做馒头4. 图像处理卷积 1. 卷积的定义 如果遍历这些直线,就好比,把毛巾沿着角卷起来: 因此也可以理解为什么叫做“卷积”。 2. 离散卷积的例子:丢骰子        假设我有两枚骰子,我将其抛出,求两个骰子点数加起来是4的概率,这正是卷积的应用场景,我们把骰子各个点数出现的概率表示出来:。    &nb

Raywit的博客 3649

CloudCompare 二次开发:插件中的 PCL 环境配置与编程

在进行 CloudCompare 的二次开发过程中,我们常常需要使用点云库(Point Cloud Library,简称 PCL)来处理和分析点云数据。在 CloudCompare 的界面中,选中一个点云对象,然后点击菜单栏中的 “插件” -> “MyPluginAction”。插件将对选中的点云对象进行体素滤波处理,并更新显示结果。下面我们将展示一个简单的插件编程示例,该示例使用 PCL 对输入的点云数据进行体素滤波处理。方法进行体素滤波处理,并将结果点云赋值给选中的点云对象。文件并点击 “打开”。

2301_79331387的博客 283

java毕设:基于springboot的服装搭配推荐系统(springboot+layui+jq+html)1011

项目描述 基于springboot的服装搭配推荐系统: 基于天气服装搭配推荐系统为用户提供未来一周的天气预报情况,并根据预报天气和用户现有的服装进行着装搭配,以及显示未来6小时精确温度数据为用户提供更精确的天气信息便于用户在出行前对自己的着装进行调整,每日用户可以根据自己当日对系统推荐的着装搭配舒适度进行反馈,系统将根据用户的反馈对用户着装的保暖系数进行相应调整,通过多次的反馈和调整形成对用户着装的个体化和精确化的推荐。 本系统可以为用户提供以下服务: 1.未来五天的天气信息显示; 2.未来六小时内天气温度

qq_2537071370的博客 3646

如何通俗易懂的解释卷积

以下内容全部是转载来自 作者:palet 链接:https://www.zhihu.com/question/22298352/answer/637156871 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 仅用于本人学习 对卷积的困惑 卷积这个概念,很早以前就学过,但是一直没有搞懂。教科书上通常会给出定义,给出很多性质,也会用实例和图形进行解释,但...

Wayne0926的博客 524

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款:博主发现接入手柄这块的可以参考的内容非常少,对于大疆遥控器的控制更是没有。博主经过一番研究,终于理通了这块的遥控器摇杆数据的控制。并且将解决思路分享出来,希望对大家有所帮助。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2819
上一篇: 浅说深度学习(4):增强学习
下一篇: 深度 | 理解深度学习中的卷积
GoodShot
博客等级 码龄22年 968粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值