想象一下,你正在享受一场精彩的魔术表演,魔术师用他的魔杖轻轻一挥,两张看似普通的纸片突然融合在一起,变成了一张全新的、包含两者图案的纸片。这听起来是不是很神奇?其实,这种现象在数学和工程领域中也有一个类似的版本,它就是卷积。卷积,听起来可能有点高深莫测,但实际上,它就像那个魔术一样,是一种将两个事物结合起来,创造出新事物的过程。那么,卷积到底是什么?它又是如何在我们的日常生活中施展魔法的呢?
(图片来源:AI生成)
卷积可以看作是两个函数或信号在某种程度上的“重叠”运算。对于两个函数f(t)和g(t),它们的卷积定义为:
其中,符号∗表示卷积运算,𝜏是一个“滑动”的时间变量,𝑡是卷积结果的时间或位置变量。我们可以想象在时间轴上滑动一个信号,并计算两个信号在每个时间点上的相乘结果,然后将所有结果相加,最终得到输出信号。
为了更加通俗地理解这一过程,我们可以想象自己正在制作一杯混合饮料,比如奶昔。我们把草莓、香蕉和牛奶倒入搅拌机中,打开开关,搅拌机的刀片开始旋转,将这些成分混合在一起。这个过程就像是卷积,每个成分(草莓、香蕉、牛奶)则可以看作是一个函数,而搅拌的过程就是这些函数的“卷积”,最终产生了一个新的混合物——奶昔。
(图片来源:AI生成)
在数字信号处理和计算机图像处理中,离散形式的卷积更加常见。对于离散序列f[n] 和g[n],卷积的定义为:
在这种形式中,卷积通过对两个离散序列的加权求和实现,表示信号在不同位置上的叠加效果。
理解卷积的定义之后,接下来我们讨论卷积的计算过程。以离散卷积为例,假设有两个有限长度的序列f[n] 和g[n],其长度分别为M 和 N。卷积的计算过程包括以下步骤:
将一个函数进行翻转,例如将g[n] 变为g[−n],这称为函数的反向操作。你也许会疑惑:为什么首先要进行翻转呢?其实这源于卷积的定义和信号处理的物理背景。在卷积中,翻转实际上代表了一种时间反转,它能够确保正确地捕捉到信号的历史对当前时刻的影响,尤其是在处理时间序列时。具体来说,当你滑动一个信号时,你需要查看过去的输入是如何影响当前的输出,因此需要进行翻转。
将翻转后的函数g[−n] 按𝑡值平移。这意味着我们需要逐个计算 g(t−n)在每个时刻与f(n)的重叠程度。
在每个平移位置上,计算f[n] 和g(t−n)的乘积,然后求和。这一步的结果就是在位置𝑡的卷积值。
在信号处理领域,卷积用于对信号进行平滑、滤波和特征提取。想象你在一个嘈杂的酒吧里,音乐声、人声混杂在一起,你很难听清楚你朋友在说什么。信号处理中的滤波就像给你一个降噪耳机,它可以过滤掉背景噪音,让你只听到你朋友的声音。在数学上,这就是通过卷积实现的,把原始信号(你听到的所有声音)和滤波器(降噪耳机的效果)进行卷积,得到清晰的信号(你朋友的声音)。
(图片来源:AI生成)
在图像处理中,卷积是图像滤波的核心操作。图像滤波器,例如边缘检测、模糊和锐化,都是通过卷积来实现的。想象你拿着一张模糊的照片,想要找出照片中的边缘,比如建筑物的轮廓。我们有一个边缘检测的卷积核,它就像是一个模板,我们用这个模板去“扫描”整张照片,找出边缘。
边缘检测卷积核的效果(图片来源:[4])
CNN的原理示意图(图片来源:[5])
[1]https://mp.weixin.qq.com/s/tj6rQum3AJyv1ys5I8wpVA
[2]https://mp.weixin.qq.com/s/holuN1O0M9RatwVqOHhxZQ
[3]https://mp.weixin.qq.com/s/s-QZDdQJvUHhKUEtZVAalA
[4]https://mp.weixin.qq.com/s/Kc0dB9W--5-g2lqOumHlnw
[5]https://mp.weixin.qq.com/s/-JIyMBK31zK4UwFBL_hZ5g