何为卷积?
数学中的卷积定义:
称(f∗g)(n)为f,g的卷积;
其连续的定义为:
(f∗g)(n)=∫−∞∞f(τ)g(n−τ)dτ
其离散的定义为:
(f∗g)(n)=τ=−∞∑∞f(τ)g(n−τ)
那么如何理解这两个例子,首先从离散的卷积定义说起:
假设随意抛掷两枚骰子,求:
两枚骰子点数相加等于4的概率?
假设骰子的质地均不同,那么两个骰子点数的概率分布也将不一致,假设f为第一枚骰子的概率分布,g为第二枚骰子的概率分布; 那么
那么骰子点数相加为4的概率为:
f(1)g(3)+f(2)g(2)+f(3)g(1)
按照卷积的定义即:
(f∗g)(4)=m=1∑4f(m)g(4−m)
再看一个例子:
假设从一定高度让一个球做*落体,且假设球在落下后只有一个维度的运动,在球静止后再在该位置上方以不同的高度让球落下,求两次落球,球的运动距离为c的概率:
不同的高度落球,球在地面滚动距离的分布也不同,假设第一次落球,球滚动距离为a的概率为f(a),第二次落球,球滚动的距离为b的概率为给g(b),且c=a+b,那么两次落球,球在地面滚动的总距离为c的概率为f(a)g(b)
假设现在需要求c=3时的概率,那么如果第一次落球球滚动距离a为2,那么b=1,即$ f(2)g(1)$
同理,a=0时,b=3; a=3时,b=0; a=1时,b=1;
那么P{c=3}=...f(0)⋅g(3)+f(1)⋅g(2)+f(2)⋅g(1)...
由此得到更一般化的结论;
(f∗g)(c)=a+b=c∑f(a)g(b)
又有
(f∗g)(c)=a∑f(a)g(c−a)
说的更具体些就是,第一次落球球在地面滚动距离为a概率是f(a),在第一次落球后球滚动距离为a的情况下,第二次落球球滚动距离为c-a的概率为g(c−a)
对上述表述做下处理让我们更好的理解卷积,
首先,假设一个球从它开始的地方落下一定距离x的概率是f(x)。 然后,它从它落地后到停止的位置开始距离x的概率是f(−x)。
好了,那我们再来看,如果已经知道两次落球后球滚动的总距离是c,那么第一次落球距离为a的概率是多少呢:
即为g(−(a−c))=g(c−a)
由此可以有如下的图:
计算出在c范围内所有a的取值的和(即棕球位置)既可以得出P{c},
同时,通过移动上图的下半部分(即g分布)即可得到其他的c的概率值
以上是一维度的卷积,那么对于高维度的卷积呢
同样以落球为例,这次不把球落地后滚动的轨迹限定为只有一个维度,而假设球落地后在一个平面内滚动,
同样,也有公式(f∗g)(c)=a+b=c∑f(a)g(b)
不过此时的a,b,c均为向量
则有上述公式的变体:
(f∗g)(c1,c2)=a1+b1=c1,a2+b2=c2∑f(a1,a2)g(b1,b2)
或者
(f∗g)(c1,c2)=a1,a2∑f(a1,a2)g(c1−a1,c2−a2)
就像一维卷积一样,我们可以将二维卷积视为在一个面在另一个上面滑动一个函数
这种情况的一个常见应用是图像处理。 我们可以将图像视为二维函数。 许多重要的图像变换都是卷积,在这些卷积中,将图像函数与称为“内核kerel”(过滤器)的非常小的本地函数进行卷积。
内核滑动到图像的每个位置,并计算一个新像素作为浮动像素的加权和。
我们可以通过一个元素值均为91的3x3维矩阵与图像函数卷积以模糊图像
我们还可以通过在两个相邻像素上取值-1和1来检测边缘,并在其他任何地方取零。 也就是说,我们减去两个相邻的像素。 当并排像素相似时,这给我们大约为零。 然而,在边缘上,相邻像素在垂直于边缘的方向上非常不同。
参考:
colah’s blog Understanding Convolutions
如何通俗易懂理解卷积