对卷积的困惑

卷积这个概念,很早以前就学过,但是一直没有搞懂。教科书上通常会给出定义,给出很多性质,也会用实例和图形进行解释,但究竟为什么要这么设计,这么计算,背后的意义是什么,往往语焉不详。作为一个学物理出身的人,一个公式倘若倘若给不出结合实际的直观的通俗的解释(也就是背后的“物理”意义),就觉得少了点什么,觉得不是真的懂了。

教科书上一般定义函数的卷积如下:

连续形式:

离散形式:

并且也解释了,先对g函数进行翻转,相当于在数轴上把g函数从右边褶到左边去,也就是卷积的“卷”的由来。

然后再把g函数平移到n,在这个位置对两个函数的对应点相乘,然后相加,这个过程是卷积的“积”的过程。

这个只是从计算的方式上对公式进行了解释,从数学上讲无可挑剔,但进一步追问,为什么要先翻转再平移,这么设计有何用意?还是有点费解。

好在有万能的互联网,尤其是知乎,CSDN这样的网站,很多的热心网友对卷积举了很多形象的例子进行了解释,如卷地毯、丢骰子、打耳光、存钱等等,参见知乎上这两个两个经典的问题,回答的人很多:

如何通俗易懂地解释卷积?https://www.zhihu.com/question/22298352

卷积为什么叫「卷」积?  https://www.zhihu.com/question/54677157

读完觉得非常生动有趣,但过细想想,还是感觉有些地方还是没解释清楚,甚至可能还有瑕疵,或者还可以改进(这些后面我会做一些分析)。

带着问题想了两个晚上,终于觉得有些问题想通了,所以就写出来跟网友分享,共同学习提高。不对的地方欢迎评论拍砖。。。

明确一下,这篇文章主要想解释两个问题:

1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思?

2. 卷积背后的意义是什么,该如何解释?

考虑的应用场景

为了更好地理解这些问题,我们先给出两个典型的应用场景:

1. 信号分析

一个输入信号f(t),经过一个线性系统(其特征可以用单位冲击响应函数g(t)描述)以后,输出信号应该是什么?实际上通过卷积运算就可以得到输出信号。

2. 图像处理

输入一幅图像f(x,y),经过特定设计的卷积核g(x,y)进行卷积处理以后,输出图像将会得到模糊,边缘强化等各种效果。

对卷积的理解

对卷积这个名词的理解:所谓两个函数的卷积,本质上就是先将一个函数翻转,然后进行滑动叠加。

在连续情况下,叠加指的是对两个函数的乘积求积分,在离散情况下就是加权求和,为简单起见就统一称为叠加。

整体看来是这么个过程:

翻转——>滑动——>叠加——>滑动——>叠加——>滑动——>叠加.....

多次滑动得到的一系列叠加值,构成了卷积函数。

卷积的“卷”,指的的函数的翻转,从 g(t) 变成 g(-t) 的这个过程;

卷积的“积”,指的是滑动积分/加权求和。

有些文章只强调滑动叠加求和,而没有说函数的翻转,我觉得是不全面的;有的文章对“卷”的理解其实是“积”,我觉得是张冠李戴。

对卷积的意义的理解:

1. 从“积”的过程可以看到,我们得到的叠加值,是个全局的概念。以信号分析为例,卷积的结果是不仅跟当前时刻输入信号的响应值有关,也跟过去所有时刻输入信号的响应都有关系,考虑了对过去的所有输入的效果的累积。在图像处理的中,卷积处理的结果,其实就是把每个像素周边的,甚至是整个图像的像素都考虑进来,对当前像素进行某种加权处理。所以说,“积”是全局概念,或者说是一种“混合”,把两个函数在时间或者空间上进行混合。

2. 那为什么要进行“卷”?直接相乘不好吗?我的理解,进行“卷”(翻转)的目的其实是施加一种约束,它指定了在“积”的时候以什么为参照。在信号分析的场景,它指定了在哪个特定时间点的前后进行“积”,在空间分析的场景,它指定了在哪个位置的周边进行累积处理。

举例说明

下面举几个例子说明为什么要翻转,以及叠加求和的意义。

例1:信号分析

如下图所示,输入信号是 f(t) ,是随时间变化的。系统响应函数是 g(t) ,图中的响应函数是随时间指数下降的,它的物理意义是说:如果在 t=0 的时刻有一个输入,那么随着时间的流逝,这个输入将不断衰减。换言之,到了 t=T时刻,原来在 t=0 时刻的输入f(0)的值将衰减为f(0)g(T)。

考虑到信号是连续输入的,也就是说,每个时刻都有新的信号进来,所以,最终输出的是所有之前输入信号的累积效果。如下图所示,在T=10时刻,输出结果跟图中带标记的区域整体有关。其中,f(10)因为是刚输入的,所以其输出结果应该是f(10)g(0),而时刻t=9的输入f(9),只经过了1个时间单位的衰减,所以产生的输出应该是 f(9)g(1),如此类推,即图中虚线所描述的关系。这些对应点相乘然后累加,就是T=10时刻的输出信号值,这个结果也是f和g两个函数在T=10时刻的卷积值。

显然,上面的对应关系看上去比较难看,是拧着的,所以,我们把g函数对折一下,变成了g(-t),这样就好看一些了。看到了吗?这就是为什么卷积要“卷”,要翻转的原因,这是从它的物理意义中给出的。

上图虽然没有拧着,已经顺过来了,但看上去还有点错位,所以再进一步平移T个单位,就是下图。它就是本文开始给出的卷积定义的一种图形的表述:

所以,在以上计算T时刻的卷积时,要维持的约束就是: t+ (T-t) = T  。这种约束的意义,大家可以自己体会。

例2:丢骰子

在知乎问题 如何通俗易懂地解释卷积?中排名第一的 马同学在中举了一个很好的例子(下面的一些图摘自马同学的文章,在此表示感谢),用丢骰子说明了卷积的应用。

要解决的问题是:有两枚骰子,把它们都抛出去,两枚骰子点数加起来为4的概率是多少?

分析一下,两枚骰子点数加起来为4的情况有三种情况:1+3=4, 2+2=4, 3+1=4

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

写成卷积的方式就是:

在这里我想进一步用上面的翻转滑动叠加的逻辑进行解释。

首先,因为两个骰子的点数和是4,为了满足这个约束条件,我们还是把函数 g 翻转一下,然后阴影区域上下对应的数相乘,然后累加,相当于求自变量为4的卷积值,如下图所示:

进一步,如此翻转以后,可以方便地进行推广去求两个骰子点数和为 时的概率,为fg的卷积 f*g(n),如下图所示:

由上图可以看到,函数 g 的滑动,带来的是点数和的增大。这个例子中对f和g的约束条件就是点数和,它也是卷积函数的自变量。有兴趣还可以算算,如果骰子的每个点数出现的概率是均等的,那么两个骰子的点数和n=7的时候,概率最大。

例3:图像处理

还是引用知乎问题 如何通俗易懂地解释卷积?中 马同学的例子。图像可以表示为矩阵形式(下图摘自马同学的文章):

对图像的处理函数(如平滑,或者边缘提取),也可以用一个g矩阵来表示,如:

注意,我们在处理平面空间的问题,已经是二维函数了,相当于:

        

那么函数f和g的在(u,v)处的卷积 该如何计算呢?

按卷积的定义,二维离散形式的卷积公式应该是:

从卷积定义来看,应该是在x和y两个方向去累加(对应上面离散公式中的i和j两个下标),而且是无界的,从负无穷到正无穷。可是,真实世界都是有界的。例如,上面列举的图像处理函数g实际上是个3x3的矩阵,意味着,在除了原点附近以外,其它所有点的取值都为0。考虑到这个因素,上面的公式其实退化了,它只把坐标(u,v)附近的点选择出来做计算了。所以,真正的计算如下所示:

首先我们在原始图像矩阵中取出(u,v)处的矩阵:

然后将图像处理矩阵翻转(这个翻转有点意思,可以有几种不同的理解,其效果是等效的:(1)先沿x轴翻转,再沿y轴翻转;(2)先沿x轴翻转,再沿y轴翻转;),如下:

原始矩阵:

翻转后的矩阵:

(1)先沿x轴翻转,再沿y轴翻转

(2)先沿y轴翻转,再沿x轴翻转

计算卷积时,就可以用的内积:

请注意,以上公式有一个特点,做乘法的两个对应变量a,b的下标之和都是(u,v),其目的是对这种加权求和进行一种约束。这也是为什么要将矩阵g进行翻转的原因。

以上计算的是(u,v)处的卷积,延x轴或者y轴滑动,就可以求出图像中各个位置的卷积,其输出结果是处理以后的图像(即经过平滑、边缘提取等各种处理的图像)。

再深入思考一下,在算图像卷积的时候,我们是直接在原始图像矩阵中取了(u,v)处的矩阵,为什么要取这个位置的矩阵,本质上其实是为了满足以上的约束。因为我们要算(u,v)处的卷积,而g矩阵是3x3的矩阵,要满足下标跟这个3x3矩阵的和是(u,v),只能是取原始图像中以(u,v)为中心的这个3x3矩阵,即图中的阴影区域的矩阵。

推而广之,如果如果g矩阵不是3x3,而是6x6,那我们就要在原始图像中取以(u,v)为中心的6x6矩阵进行计算。由此可见,这种卷积就是把原始图像中的相邻像素都考虑进来,进行混合。相邻的区域范围取决于g矩阵的维度,维度越大,涉及的周边像素越多。而矩阵的设计,则决定了这种混合输出的图像跟原始图像比,究竟是模糊了,还是更锐利了。

比如说,如下图像处理矩阵将使得图像变得更为平滑,显得更模糊,因为它联合周边像素进行了平均处理:

而如下图像处理矩阵将使得像素值变化明显的地方更为明显,强化边缘,而变化平缓的地方没有影响,达到提取边缘的目的:

对网上一些解释的不同意见

网上有一些对卷积的形象解释,如知乎问题卷积为什么叫「卷」积?中 荆哲 ,以及问题 如何通俗易懂地解释卷积?中 马同学 等人提出的如下比喻:

其实图中“卷”的方向,是沿该方向进行积分求和的方向,并无翻转之意。因此,这种解释,并没有完整描述卷积的含义,对“卷”的理解值得商榷。

一些参考资料

《数字信号处理(第二版)》程乾生,北京大学出版社

《信号与系统引论》 郑君里,应启珩,杨为理,高等教育出版社

对卷积的定义和意义的通俗解释相关推荐

  1. F(X)分布函数的通俗解释

    爱心大纲 一.分布函数的定义 二.分布函数的通俗解释 一.分布函数的定义 分布函数的定义: 其实分布函数所求出的东西是"概率",在x取某个值时这个事件所发生的概率,即可能性是多大. ...

  2. 卷积的意义(幽默解释)--转

    卷积的意义(幽默解释)--转 默认分类 2009-12-03 22:47:34 阅读79 评论0 字号:大中小 谈起卷积分当然要先说说冲击函数----这个倒立的小蝌蚪,卷积其实就是为它诞生的. &qu ...

  3. 二维反卷积 matlab,二维反卷积的实现(实际意义不明确)

    前言 一维反卷积(deconv),可以很好的实现一维卷积的反过程!但是二维反卷积就很难恢复了!为什么呢?因为我们知道二维卷积计算的过程就是:卷积核不断滑动,卷积核不断与原始数据中的小矩阵做" ...

  4. 【概率】常见分布(离散/连续)、卷积公式(实际意义与作用、公式、记忆法)

    发现自己对各种分布不太熟悉,决定趁此机会整理一下,看有没有比较好的记忆方法. 各种分布最重要的理解它的实际意义,都是解决什么问题的,其次是公式的含义. 所以下面都按以下几点来展开:实际意义.数学表达. ...

  5. 卷积物理意义的超强解释

    最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白.正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:&q ...

  6. 【元宇宙经济学】元宇宙经济的定义和意义

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 文章目录 元宇宙经济的定义和意义 元宇宙经济学的定义 元宇宙经济与数字经济的异同 元宇宙对于物理世界的影响 总结 元宇 ...

  7. 循环神经网络(RNN)原理通俗解释

    循环神经网络(RNN)原理通俗解释 1.RNN怎么来的? 2.RNN的网络结构及原理 3.RNN的改进1:双向RNN 4.RNN的改进2:深层双向RNN 4.1 Pyramidal RNN 5.RNN ...

  8. 协方差、相关系数---通俗解释

    一.协方差的意义 学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差.首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧 ...

  9. 小波变换(wavelet transform)的通俗解释

    本篇为<信号处理>系列博客的第三篇,该系列博客主要记录信号处理相关知识的学习过程和自己的理解,方便以后查阅. 文章原地址:<小波变换(wavelet transform)的通俗解释( ...

最新文章

  1. linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
  2. 一个简单粗暴的爬虫 - 必应今日美图
  3. mysql segmentation fault_mysql Segmentation fault的问题,求教
  4. DXperience,不能不爱
  5. ASP.NET MVC 实现多文件上传
  6. iPhone 6S GPU到底多强
  7. 加密货币交易所Gemini已支持新加坡元(SGD)
  8. java 中的 ThreadLocal
  9. word2vec(一)——skip-gram原理理解
  10. Mapx 具体使用方法
  11. 华为ensp基础指令
  12. Axure RP9快捷键
  13. ScreenFlow 录制Mac电脑声音
  14. 文件快速拷贝工具大比拼,谁是最快的复制软件
  15. 翟菜花:国产游戏为什么还不适合出海“亮剑”
  16. 青岛科技大学计算机硕士就业,2021年青岛科技大学专业排行榜,哪个专业就业比较好...
  17. python字典转字符串并输出其长度_从Python中SOX的字符串输出中获取字典中的可用数据...
  18. java 线程resume_为什么java线程不推荐调用stop,suspend,resume方法
  19. 用AkShare获取沪深京A股所有股票历史数据
  20. 学习opencv.js(1)图像入门

热门文章

  1. 【斜率优化】Codechef July Challenge 2019——Hit the Coconuts
  2. 爬取实时航班信息 - 从航班信息网站获取实时航班信息
  3. 五大微信小程序开发IDE深度评测 1
  4. 辨析:开发环境、测试环境、准生产环境、生产环境
  5. 【愚公系列】2023年04月 攻防世界-MOBILE(APK逆向)
  6. RocketMQ延迟消息
  7. [酷] 神奇的创意相框的图片显示效果
  8. 计算机毕业设计ssm法律在线咨询系统ds684系统+程序+源码+lw+远程部署
  9. ILRuntime:ILRuntime寄存器模式详解
  10. 深入探究宽带路由器优化技巧