卷积

目录

1 卷积的定义

2 卷积的例子

2.1 信号分析

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

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

2.4 图像处理

2.4.1 原理

2.4.2 计算

2.4.3 f 和 g 的在(u,v)处的卷积

3 卷积定理


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

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

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

比如加法:

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

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

1 卷积的定义

我们称  为  的卷积

其连续的定义为:

其离散的定义为:

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

这个特征有什么意义?

我们令  ,那么  就是下面这些直线:

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

https://vdn1.vzuu.com/SD/87ec7ad8-2328-11eb-a2f4-5af206f672cd.mp4?disable_local_cache=1&bu=pico&expiration=1609172504&auth_key=1609172504-0-0-6d69dc16b86542b3e30b8c4fafec6998&f=mp4&v=hw

2 卷积的例子

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.2 离散卷积的例子:丢骰子

        我有两枚骰子,把这两枚骰子都抛出去,两个骰子加起来要等于4的概率时多少。这正是卷积的应用场景。我们把骰子各个点数出现的概率表示出来:

        

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

        

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

        

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

        

进一步用上面的翻转滑动叠加的逻辑进行解释。

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

        

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

        

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

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

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

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

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

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

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

          

        这就是连续的卷积。

2.4 图像处理

2.4.1 原理

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

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

看起来很显眼。

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

2.4.2 计算

        卷积可以帮助实现这个平滑算法。有噪点的原图,可以把它转为一个矩阵:

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

          

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

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

        

要注意一点,为了运用卷积,  虽然和  同维度,但下标有点不一样:

        

我用一个动图来说明下计算过程:

       

写成卷积公式就是:

        

要求  ,一样可以套用上面的卷积公式。

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

2.4.3 f 和 g 的在(u,v)处的卷积

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

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

        

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

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

     

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

原始矩阵:

翻转后的矩阵:

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

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

        

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

           

3 卷积定理

卷积定理:函数卷积的傅立叶变换是函数傅立叶变换的乘积

 

 

 

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

“卷积”其实没那么难以理解:https://zhuanlan.zhihu.com/p/41609577?utm_source=com.tencent.tim

卷积有多少种?一文读懂深度学习中的各种卷积:https://mp.weixin.qq.com/s/Olliwe3ux77H4Vlsn4IrCw

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值