关于卷积

卷积的理解

1 定义

卷积的定义很直接,其定义如下:


从定义看,其形式非常简单,无非是简单的叠加,但是其背后的内涵与概念对于灵活应用卷积至关重要。

对于工科童鞋而言,接触卷积应该是来自于信号与系统这门课,我们先从信号与系统的角度进行理解。对于信号而言,通常情况下,随着时间的流逝,之前时刻的信号通常会逐渐减弱(当然,我们可以任意定义 )。下面以一个例子进行解释(摘自于知乎https://www.zhihu.com/question/22298352):

关于卷积_第1张图片
图1

如图所示,为输入信号,为响应信号,从的形态看,随着时间的流逝,信号逐渐减弱。下面进行解释:

  • , 为:
  • , 此时值由两部分组成,一部分为前一时刻保留信息为(因为已经经过了一个时刻,其对应的响应为),另一部分则为当前时刻输入和响应的积,其值为:,因此,
  • ,此时此时值由三部分组成,分别为, ,
  • 依此类推,即可得到公式(1)中的表达式

也就是说,信号与系统中的卷积本质上就是一个与时序关联的信号加权求和,即当前时刻的信号不仅与当前的输入相关,还与之前时刻的信号输入相关。想象几个人依次对着一堵高墙大声喊话,有兴趣的童鞋可以感受一下声音信号的衰减与叠加。

至于如何计算卷积,大家看下面一组图(摘自:https://www.zhihu.com/question/22298352)弄清原理就行了,当前几乎所有的工具或库都提供卷积算子和相关函数,

关于卷积_第2张图片
img
关于卷积_第3张图片
img
关于卷积_第4张图片
img

2 典型应用

卷积的应用场景很多,最典型的莫过于当前已经火了好几轮的CNN(卷积神经网络),其中的卷积就是本文提到的卷积,那它为什么有用?

在数字图像处理中,对图像作各种操作,以满足用户的需求,如图片钝化、图片锐化、图片轮廓提取等常见操作。下面以图片钝化为例子进行解释,先看下面的图片:


原图.png
钝化后.png

很明显,下面的这张图模糊化了,其对应的python代码为:

blur = cv2.blur(img,(5,5))

那这跟卷积又有什么关系呢?在数字图像中,每一个像素用一个灰度表示其亮度,要钝化或者说模糊化图像,其基本思路是:对一个像素周围的像素灰度值进行平均化,则对应坐标的像素都被周围像素平均化了,从而高灰度值被平均,值减少;而低灰度值被升高,从而降低相邻像素的差值,使图像看上去更平滑。

在这个思路的指导下,最简单的方式是只需要对一个领域附近的像素平均化即可,具体操作如下图所示:


关于卷积_第5张图片
卷积示意.png

上图中的矩阵为原图像,为权值,假设卷积核大小为3*3,则对于原图像中的(1, 1)处的像素值平滑后的值为:,如果取,则可以达到上述模糊化的效果。
与一维的卷积类似,二维图像的卷积公式为:

同理,如果要求锐化效果,只需要设置相应的卷积核即可。具体的内容,如果感兴趣,可以参考相关的数字图像处理技术。

3 小结

通过信号与图像的例子,可以观察到,如果信号(图像也是一种信号)具有时序关联或者空间观念,我们都可以考虑是否用卷积对特征进行计算。另外,由于信号时域的卷积或者空域的卷积,对应于频域的乘积关系(两者具有对偶关系),在处理卷积比较复杂时,也可以在频域做乘积处理后,在转换到时域或空域进行处理。卷积的这种性质提示我们,凡是在空域或时域具有关联关系的特征,卷积都可以作为参考。

卷积本质上是一种线性变换,然而,在很多情况下,在局部区域内,可以用线性近似代替非线性。在AI时代,卷积几乎无处不在。

你可能感兴趣的:(关于卷积)