如何理解卷积(Convolution)?

Posted Uncertainty!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解卷积(Convolution)?相关的知识,希望对你有一定的参考价值。

1.如何理解卷积?

笔记来源:【小动画】彻底理解卷积【超形象】卷的由来,小元老师

1.1 角度一(概率统计)

概率中的卷积提供了一种得到随机变量之和的概率密度函数方式,卷积是一种运算,概率中用 ∗ \\ast 来表示

以两个随机变量为例
两个相互独立的随机变量 X X X和随机变量 Y Y Y的概率密度函数通过卷积得到随机变量之和 X + Y X+Y X+Y的概率密度函数

假设第一行为某人数学考试的可能得分、第二行为某人英语考试的可能得分【假设满分20】
获得每个分数的概率为 1 / 20 1/20 1/20,此人两科总分为35分的概率是多少?

S ( 35 ) = f ( 15 ) g ( 35 − 15 ) + f ( 16 ) g ( 35 − 16 ) + f ( 17 ) g ( 35 − 17 ) + f ( 18 ) g ( 35 − 18 ) + f ( 19 ) g ( 35 − 19 ) + f ( 20 ) g ( 35 − 20 )   S ( 35 ) = f ( 15 ) g ( 20 ) + f ( 16 ) g ( 19 ) + f ( 17 ) g ( 18 ) + f ( 18 ) g ( 19 ) + f ( 19 ) g ( 16 ) + f ( 20 ) g ( 15 )   S ( 35 ) = 1 20 ⋅ 1 20 + 1 20 ⋅ 1 20 + 1 20 ⋅ 1 20 + 1 20 ⋅ 1 20 + 1 20 ⋅ 1 20 + 1 20 ⋅ 1 20 = 6 20 S(35)=f(15)g(35-15)+f(16)g(35-16)+f(17)g(35-17)+f(18)g(35-18)+f(19)g(35-19)+f(20)g(35-20)\\\\ ~\\\\ S(35)=f(15)g(20)+f(16)g(19)+f(17)g(18)+f(18)g(19)+f(19)g(16)+f(20)g(15)\\\\ ~\\\\ S(35)=\\frac120\\cdot \\frac120+\\frac120\\cdot \\frac120+\\frac120\\cdot \\frac120+\\frac120\\cdot \\frac120+\\frac120\\cdot \\frac120+\\frac120\\cdot \\frac120=\\frac620\\\\ S(35)=f(15)g(3515)+f(16)g(3516)+f(17)g(3517)+f(18)g(3518)+f(19)g(3519)+f(20)g(3520) S(35)=f(15)g(20)+f(16)g(19)+f(17)g(18)+f(18)g(19)+f(19)g(16)+f(20)g(15) S(35)=201201+201201+201201+201201+201201+201201=206

S ( z ) = ∑ n f ( x n ) g ( y n )   z = x n + y n 、 y n = z − x n   S ( z ) = ∑ n f ( x n ) g ( z − x n ) S(z)=\\sum_nf(x_n)g(y_n)\\\\ ~\\\\ z=x_n+y_n、y_n=z-x_n\\\\ ~\\\\ S(z)=\\sum_nf(x_n)g(z-x_n) S(z)=nf(xn)g(yn) z=xn+ynyn=zxn S(z)=nf(xn)g(zxn)
为方便上下两行能够很好的对应起来,我们将上面一行进行翻转

如果将上面的两行数据放置到坐标轴上,下图中的斜线为两个变量的和的所有情况




1.2 角度二(信号处理)

引用自:最容易理解的对卷积(convolution)的解释

在打巴掌过程中的某一固定的时刻,你的脸上的包的鼓起程度之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积
f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就是卷积,卷积之后的函数就是你脸上的包,其大小随时间变化的函数

截图来源:【小动画】彻底理解卷积【超形象】卷的由来,小元老师

【注:本人未学过信号与系统,只是简单套用,概念套用不一定正确】

我们设输入信号的函数为 f ( t ) f(t) f(t),信号衰减系数的函数为 g ( z − t ) g(z-t) g(zt)
则第9s时信号有多少?【0-9s期间不断有信号输入,期间也有信号衰减】
s ( 9 ) = ∫ 0 9 f ( t ) g ( 9 − t ) d t s(9)=\\int_0^9f(t)g(9-t)dt s(9)=09f(t)g(9t)dt

为方便信号与其衰减系数对应,我们将信号函数图像翻转



笔记来源:Convolution and Unit Impulse Response

左侧为某个单位脉冲输入,右侧为其对应的单位脉冲响应


左侧为多个单位脉冲输入,右侧为其分别对应的单位脉冲响应


假设我们要了解某个时刻(红色箭头)的所有脉冲情况,那么从红色箭头这里“截断”


“截断”后的情况



红色矩形的面积为当前时刻的脉冲总输出


1.3 角度三(图像处理)

图片来源:数字图像处理:理解什么是卷积(滤波)、卷积核以及相关参考资料

图像处理中的卷积运算规则如下图:


截图来源:Convolutions in image processing | Week 1 | MIT 18.S191 Fall 2020 | Grant Sanderson

移动的为卷积核,此例中左侧图形经过卷积运算后图像变得模糊

以上是关于如何理解卷积(Convolution)?的主要内容,如果未能解决你的问题,请参考以下文章

CS231n笔记6--Convolution与Pooling

AI数学基础26-卷积(Convolution)

卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)

《PyTorch深度学习实践8》——卷积神经网络(Convolution Neural Network)

Keras / Theano:如何添加 Convolution2D 层?

SCINet:Time Series Modeling and Forecasting with Sample Convolution and Interaction学习记录