对于空间转录组分析过程中的反卷积,已经是耳熟能详了,但是对于正真理解卷积这个词,还是存在一些距离,本身也是学习的态度去进行了检索,正所谓众里寻他千百度,百度到palet一篇推文,讲的“卷积”是深入浅出,现在整理一下分享出来,避免什么时候遗忘。
基本概念了解
教科书上一般定义函数 f,g 的卷积 f*g(n)如下:

如果把g(x)函数作为响应(处理)函数的话,那么卷积分为了对g(x)函数进行翻转,平移的过程,也就是“卷”,之后就是对对齐的f(x)和g(x)进行积分,也就是所谓的“积”,这样就完成了卷积的过程。
格物(举例说明)
为了更好地理解这些问题,我们来了解两个典型的应用场景:
1. 信号分析
一个输入信号f(t),经过一个线性系统(g(t))变换以后,输出信号实际上就是通过卷积运算得到的。
如下图所示,输入信号 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 进行卷积就更好理解了。

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

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

注意,我们在处理平面空间的问题,已经是二维函数了,相当于:
f(x,y) = ax,y,g(x,y) = bx,y。那么函数f和g的在(u,v)处的卷积公式为

从卷积定义来看,应该是在x和y两个方向去累加,从负无穷到正无穷。可是,真实世界都是有界的,为了更好的理解,我们上面列举的图像处理函数g实际上是个3x3的矩阵,意味着,在除了原点附近以外,其它所有点的取值都为0,只把坐标(u,v)附近的点选择出来做计算了:

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

然后将图像处理矩阵翻转(以圆点为中心取对称),其结果如下:

计算卷积时,就可以用f()和g()翻转后的内积直接求解了。

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