机器学习里的卷积,到底是什么?
2024-02-25 16:35

机器学习里的卷积,到底是什么?

本文来自微信公众号:模态空间(ID:modalspace),作者:谭祥军,原文标题:《什么是卷积?》,题图来自:视觉中国

文章摘要
本文介绍了卷积在机器学习中的应用和定义,并从一维角度解释了卷积的原理和计算过程。

• 💡 卷积是在信号处理、图像处理、神经网络等领域广泛应用的复杂数学处理方法。

• 💡 卷积是对系统响应与输入进行积分运算,描述了线性时不变系统的输入和输出之间的关系。

• 💡 卷积具有交换律、结合律和分配律等基本性质,以及卷积定理和平移性等重要特点。

卷积(Convolution)是一个非常复杂的数学处理,且应用非常广泛,如在信号处理、图像处理、机器学习、神经网络等领域。它有一维、二维和三维的定义与应用。在这里,我们仅介绍一维的定义与应用。这篇文章不是要介绍卷积的深奥理论,而仅是从一维角度介绍卷积的原理与计算过程等内容,使你对它有一个感性认识。如有不严谨之处,望不吝赐教指正。


一、卷积的定义        


首先,我们明白结构系统的响应衰减是需要时间的。系统受到激励(输入)后,会产生响应(输出),如果系统的阻尼小,那么,响应衰减至零需要花费很长的时间。在这,我们以锤击激励为例来进行说明。如果系统在受到第一次锤击之前,系统处于静止状态,那么,系统的响应只与这次激励有关,如图1所示。


图1 结构在静止时受到第一次的激励(上)与响应(下)


如果测量是按紧密连续的方式进行的,即还未等上一次的响应衰减到零,已进行了下一次的激励。此时,第二次激励下的响应包含了第一次锤击之后剩余的响应,而第三次测量的响应包含了第二次或前两次锤击的残余响应,如图2所示。从另一个方面来讲,第二次的响应除了包含第二次的激励产生的响应之外,还叠加了第一次激励产生的“残余”响应;第三次的响应除了本次激励产生的响应之外,还叠加了前两次激励产生响应的“残余”部分。


图2 第二次测量的响应包含前一次的“剩余响应”


如果这个过程持续进行,且两次激励时间间隔非常短。那么,每次测量的响应(除第一次之外)不只是本次锤击引起的结构响应,还包含前一次、前两次、前三次,或者是前n次锤击引起的结构的残余响应,如图3所示。


或者说系统的响应不仅与当前时刻系统的输入有关,而且还跟之前若干时刻的输入有关,因为我们可以理解为这是之前时刻的输入引起的输出经过一种过程(比如衰减,削弱,或其他)对现在时刻系统输出的影响。那么显然,我们计算系统输出时就必须考虑现在时刻的输入引起的响应以及之前若干时刻输入引起的响应在当前时刻的“残余”影响的一个叠加效果。


图3 紧密方式下的输入(上)与输出(下)


我们知道,线性时不变系统的响应等于激励乘以频响函数,这是在频域,一定程度上很难反映出这种“残余响应”的叠加效应。这时,从时域角度,利用线性系统的响应y(t)等于时域输入x(t)与脉冲响应函数h(t)的卷积( *表示卷积)得到,即:


式中,变量 u 仍是时间,与当前要计算的响应时间 t 的区别在于, t 表示当前要计算的响应时刻,而 u是第一次输入时刻至当前要计算时刻之间的所有时刻。也就是说,某时刻的系统响应由当前输入引起的响应,以及之前每次输入引起的响应在当前时刻的“残余响应”叠加得到。


因此,积分范围约束了要考虑的时间范围,即当前时刻的系统响应与多长时间之前时刻的响应的 “残余”有关。从上式可以看出,卷积是一种积分运算,它可以用来描述线性时不变系统的输入和输出的关系:即输出可以通过输入和系统的脉冲响应函数进行卷积运算得到。 


上式给出的定义是连续的积分定义,对于信号处理而言,由于数字化后的信号是离散的,因此,卷积的离散定义为求和,即:



从上面的卷积公式可以看出,要计算当前时刻的系统响应要考虑之前所有时刻,才获得一个单值响应。这个操作类似于图4的卷手绢过程,将整个时间区间“卷”起来得到一个单值结果。卷积的英文是Convolution,它的动词是convolve,这个动词出自于拉丁语系的con和volve,分别是“一起”和“卷起”的意思,因此,convolution表示一起卷起来的东西。


图4 卷手绢 来源:https://www.zhihu.com/tardis/bd/ans/228543288?source_id=1001


二、卷积的计算过程


的确,卷积处理是一个非常复杂的过程,但卷积的计算还是相对简单的,就是一个积分处理过程。两个信号的卷积,使得卷积之后的信号包含了原始信号的“特征”。在上式中,变量 u 是时间,而 t 也是时间,也就是说计算特定时刻 t 时的卷积值需要对整个时间范围(要包含之前的“残余响应”)进行积分,得到这个时刻 t 对应的一个单值,然后移动到下一个时刻,重复这个过程,直到计算完所有的时间。


为了使你明白卷积的计算过程,在这,我们将计算过程分作几个子过程,如图5所示。有限长度的脉冲响应函数h(t)如图5a所示,但我们注意到,卷积定义公式中使用的是h(t - u),不是h(u),因此,需要将脉冲响应函数h(u)反转成h(- u),也就是将h(u)沿 u 轴( x 轴)翻转(镜像)

h(- u),如图5b所示。然后将h(- u)沿 x 轴平移至“起点” u = t (当u =  时,可以认为h(0)对应h(t - u)),如图5c所示。


如果 t 为正值,则沿着 x 轴正向移动;如果 t 为负值,则沿 x 轴负向移动。图5d表示 u 时刻对系统的输入信号,然后两个信号相乘并对时间进行积分,我们知道,积分是一个求面积的过程,因此,在图5e中,积分是计算图中所示的阴影部分的面积,位于 x 轴之上和之下的面积按代数和相加得到时刻 t 所对应的结果。


卷积处理的复杂在于上述描述的过程只是得到一个单值。如果要计算下一个时刻的值y(t2)  ,需要将h(- u)沿 x 轴平移至 u = t2 ,再与输入信号相乘,积分得到这个时刻的值。接着再重复这个过程,直到计算完时间轴上所有要计算的时刻。


图5 卷积计算过程说明


在卷积中,x(u)表示过去 u 时刻(假设 t 表示当前时刻)的输入,而 t - u 表示过去 u 时刻与当前时刻的差值,因此,h(t - u)表示 u 时刻单位脉冲输入下的响应在当前时刻的“残余”。当 u 从 -∞ 到当前时刻时,是对过往所有时刻输入下的“残余响应”进行叠加的过程。当计算整个时间轴上的响应y(t)时,脉冲响应函数h(t - u)将滑行整个时间轴,这意味着脉冲响应函数起到了加权作用。即计算时间 t 时的响应 y(t)是输入信号 x(t)在时间上通过脉冲响应函数“向后”进行了计权。   


以上考虑的过往时间对当前时刻的叠加效果,在信号处理中,如在频域进行卷积则是考虑离散的谱线,此时,计算任何一个频率处的值,要考虑整个频率范围,即当前频率之前与之后的所有谱线的叠加效果。


三、卷积的基本性质


卷积最重要的性质是卷积定理,即信号卷积的傅里叶变换是信号傅里叶变换的乘积。卷积定理分为时域卷积定理和频域卷积定理。时域卷积定理是说时域信号的卷积对应信号频域的乘积;频域卷积定理即频域信号的卷积对应时域的乘积。即:



1)交换律:改变信号的顺序进行卷积,不会改变卷积结果,即:



2)结合律:多个信号进行卷积时,改变两两卷积的先后顺序,不改变卷积结果,即:



3)分配律:两个信号相加与第三个信号进行卷积等于这两个信号分别与第三个信号卷积之和,即:

  


4)数乘:设 a 为常数,则有:

  


5)不变性:信号与同时刻的狄拉克函数进行卷积,仍等于原信号:

  


6)平移性:信号与不同时刻的狄拉克函数进行卷积,等于将原信号进行平移:

  


7)求导规则:



四、卷积在NVH中的应用


卷积在信号处理中有诸多应用,但它是个黑匣子,很多时候,在我们不知不觉中就会用到卷积。比如,采样过程,加窗处理、相关分析、噪声源定位等信号处理应用。


在将模拟信号采样获得数字信号的过程中,会使用一个时间间隔 △t = 1/fs 的脉冲序列(图6c)与原始的模拟信号(图6a)相乘,得到采样后的数字信号(图6e)。根据卷积定理可知,两个信号的时域乘积的傅里叶变换等于这两个信号的频域卷积。这个时域脉冲序列的傅里叶变换(图6d),在频域上也是一个脉冲序列,相邻脉冲的频率间距等于采样频率 fs 。


也就是说,时域脉冲序列的频谱是频率间隔为采样频率 fs 的脉冲序列。信号的频谱(图6b)与时域脉冲序列的频谱(图6d)在频域上的卷积将产生重复频谱:采样信号的频谱将以每个采样频率的整数倍(包括0倍)为中心重复出现,如图6f所示。


因此,为了保证频域卷积不产生重叠的频谱,采样信号的带宽必须低于 fs/2 ,即奈奎斯特频率。通过执行采样定理,我们可以保证信号带宽丨B丨< fs/2 的采样信号的频谱与原始信号的频谱相同。因此,在采样过程中,模拟信号与时间序列脉冲的乘积对应它们频谱的卷积,而我们大多数看到的是采样后的信号频谱,因此,对于我们而言,卷积是一个黑匣子。


图6 采样过程示意,两信号频域的卷积使得频谱重复出现


对信号施加窗函数实质是用一个窗函数与采样后的时域信号相乘的过程(当然加窗也可以在频域进行,但时域更为普遍),使得相乘后的信号似乎更好地满足傅里叶变换的周期性要求。虽然窗函数应用在时域,通过对实际捕获的时域信号乘以时域窗函数,但是窗函数的影响在频域更明显。在频域,实际上是频域的实际信号与窗函数谱线的卷积。这个影响简单的示意性显示在图7中,图中显示了三条谱线的窗函数频谱和一个离散的单频正弦波。时域窗函数与测量数据的乘积导致了频域的卷积。


理论窗的频谱与实际信号的乘积在每个△f 处生成一个值形成叠加。在这个例子中,我们可以看到在第七个 △f  处的实际信号乘以了假设有三个瓣的窗函数。当我们考虑第一个 △f  时,这个频率处信号的值为0,因为窗函数相应的每一项(1 - k△f )乘以这个信号之和为零。这些值都为0,直到窗的主瓣位于第六个 △f  时才有非零值,以及主瓣位于第七和第八个 △f  处,即 -1 ≤ f - 7△f  ≤ 1 时,才有非零值,而其他位置都为0值。


图7 理论窗与实际信号在频域的卷积示意


对数字化的信号进行升采样时,需要在采样点之间进行插值,可由下面的卷积公式进行插值处理。当对 t 时刻进行插值时,式中 x(n)是原始已采样的信号,sinc 函数集中在插值点处,要计算时刻 t 处的插值,需要考虑整个原始数字信号的采样点



如图8所示,对1V、20Hz的正弦波进行采样,假设图8中红色曲线是采样频率12800Hz下的信号为真实的原始信号。如果按频率成分的3倍,即采样频率为60Hz时,得到的信号如图8中绿色曲线所示,可以看出,此时,幅值失真明显。对此采样频率下得到的数字信号进行升采样,升采样频率为2000Hz,那么需要在60Hz采样频率下的各个采样点之间进行插值处理,插值按上式进行,得到插值后的信号如图8中蓝色十字所示。从这可以看出,在满足采样定理的前提条件下,即使采样后的信号幅值失真,仍可按上式重构得到原始的信号。


图8 对低采样率的信号进行插值



当然,除了以上几种应用之外,卷积在信号处理中还有许多应用,如相关运算可通过卷积求得、噪声源定位等。卷积计算的的确确是一个黑匣子,有时我们都不知道应用背后有卷积应用。但明白卷积处理可以使我们更好地明白信号处理背后的原理与过程。


参考:

1. 谭祥军.  模态试验实用技术——实践者指南,机械工业出版社,2019

2. Anders Brandt, Noise and Vibration Analysis: Signal Analysis and Experimental Processing (Second Edition), Wiley Press, 2023

3. 再讲卷积的本质及物理意义,解释的真幽默!算法与数学之美,2021


本文来自微信公众号:模态空间(ID:modalspace),作者:谭祥军

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP