卷积

文章目录


以下回答摘自知乎回答“ 如何通俗易懂地理解卷积”。

卷积的定义

  1. 连续形式的卷积:
    卷积

  2. 离散形式的卷积:
    卷积
    它们都有一个共同的特征:
    卷积

直观上来看,函数 g ( n − τ ) g(n-\tau) g(nτ)的含义是将函数 g ( τ ) g(\tau) g(τ)首先进行沿y轴翻转得到 g ( − τ ) g(-\tau) g(τ),然后向左平移n个单位得到 g ( n − τ ) g(n-\tau) g(nτ)。即先对g函数进行翻转,相当于在数轴上把g函数从右边褶到左边去,也就是卷积的“”的由来。然后再把g函数平移n个单位,在这个位置对两个函数的对应点相乘,然后相加,这个过程就是卷积的“”的过程。
但是,为什么这么做呢?
可以从现实生活中各个场景来进行解释:
(1)离散情况下

例1.掷骰子问题:掷两个骰子,问两个骰子点数加起来等于4的概率是多少?
卷积那么,两枚骰子点数加起来为4的情况有:
卷积
卷积卷积因此,两枚骰子点数加起来为4的概率为:
卷积
写成卷积定义的形式为:
卷积

例2. 图像卷积
有这么一副图像,可以看到,图像上有很多噪点:
卷积高频信号,就好像平地耸立的山峰:
卷积看起来很显眼。平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。平滑后得到:
卷积卷积可以帮助实现这个平滑算法。有噪点的原图,可以把它转为一个矩阵:
卷积然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:
卷积
记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。
比如我要平滑 a 1 , 1 a_{1,1} a1,1点,就在矩阵中,取出 a 1 , 1 a_{1,1} a1,1点附近的点组成矩阵 f f f,和 g g g进行卷积计算后,再填回去:
卷积要注意一点,为了运用卷积, g g g虽然和 f f f 同维度,但下标有点不一样:
卷积
用动图来表示计算过程:
卷积
写成卷积公式就是:
卷积
要求 c i , j c_{i,j} ci,j ,一样可以套用上面的卷积公式。依次使用如上原理的离散卷积公式,得到卷积后的表示(这里计算结果不太对,把卷积核翻转180度就对了):

卷积

(2)连续情况下(信号处理)
如下图所示,输入信号是 f ( t ) f(t) f(t) ,是随时间变化的。系统响应函数是 g ( t ) g(t) g(t) ,图中的响应函数是随时间指数下降的,它的物理意义是说:如果在 t = 0 t=0 t=0 的时刻有一个输入,那么随着时间的流逝,这个输入将不断衰减。换言之,到了 t = T t=T t=T时刻,原来在 t = 0 t=0 t=0 时刻的输入f(0)的值将衰减为 f ( 0 ) g ( T ) f(0)g(T) f(0)g(T)
卷积考虑到信号是连续输入的,也就是说,每个时刻都有新的信号进来,所以,最终输出的是所有之前输入信号的累积效果。如下图所示,在 T = 10 T=10 T=10时刻,输出结果跟图中带标记的区域整体有关。其中, f ( 10 ) f(10) f(10)因为是刚输入的,所以其输出结果应该是 f ( 10 ) g ( 0 ) f(10)g(0) f(10)g(0),而时刻 t = 9 t=9 t=9的输入 f ( 9 ) f(9) f(9),只经过了1个时间单位的衰减,所以产生的输出应该是 f ( 9 ) g ( 1 ) f(9)g(1) f(9)g(1),如此类推,即图中虚线所描述的关系。这些对应点相乘然后累加,就是 T = 10 T=10 T=10时刻的输出信号值,这个结果也是 f f f g g g两个函数在 T = 10 T=10 T=10时刻的卷积值。
卷积​​显然,上面的对应关系看上去比较难看,是拧着的,所以,我们把 g g g函数对折一下,变成了 g ( − t ) g(-t) g(t),这样就好看一些了。看到了吗?这就是为什么卷积要“卷”,要翻转的原因,这是从它的物理意义中给出的。
卷积上图虽然没有拧着,已经顺过来了,但看上去还有点错位,所以再进一步平移T个单位,就是下图。它就是本文开始给出的卷积定义的一种图形的表述:
卷积​​所以,在以上计算T时刻的卷积时,要维持的约束就是: t + ( T − t ) = T t+ (T-t) = T t+(Tt)=T 。这种约束的意义,大家可以自己体会。