如何理解卷积

本文大量参考链接中文章形成,如有需要,请自行跳转。

引言

如何通俗易懂地理解卷积?

连续形式的一维卷积

在泛函分析中,卷积是通过两个函数f(x)和g(x)生成第三个函数的一种算子,它代表的意义是:两个函数中的一个(取g(x),可以任意取)函数,把g(x)经过翻转平移,然后与f(x)的相乘,得到的一个新的函数,对这个函数积分,也就是对这个新的函数求它所围成的曲边梯形的面积。

设f(t),g(t)是两个可积函数,f(t)与g(t)的卷积记为f ( t ) ∗ g ( t ) f(t)g(t)f(t)∗g(t*),它是其中一个函数翻转并平移后与另一个函数乘积的积分,是一个自变量是平移量的函数。也就是:

离散形式的一维卷积

对于定义在整数$\mathbb{Z}$上的函数f,g,卷积定义为

实例:掷骰子问题

光看数学定义可能会觉得非常抽象,下面举一个掷骰子的问题,该实例参考了知乎问题”如何通俗易懂地解释卷积”的回答。

想象现在有两个骰子,两个骰子分别是f跟g,f(1)表示骰子f向上一面为数字1的概率。同时抛掷这两个骰子1次,它们正面朝上数字和为4的概率是多少呢?相信读者很快就能想出它包含了三种情况,分别是:

  • f向上为1,g向上为3;
  • f向上为2,g向上为2;
  • f向上为3,g向上为1;

最后这三种情况出现的概率和即问题的答案,如果写成公式,就是$\sum_{\tau=1}^{3} f(\tau) g(4-\tau)$。可以形象地绘制成下图:

果稍微扩展一点,比如说认为 f(0) 或者 g(0)等是可以取到的,只是它们的值为0而已。$\sum_{\tau=-\infty}^{\infty} f(\tau) g(4-\tau)$。仔细观察,这其实就是卷积(f∗g)(4)。如果将它写成内积的形式,卷积其实就是

这么一看,是不是就对卷积的名字理解更深刻了呢? 所谓卷积,其实就是把一个函数卷(翻)过来,然后与另一个函数求内积。

对应到不同方面,卷积可以有不同的解释:g 既可以看作我们在深度学习里常说的核(Kernel),也可以对应到信号处理中的滤波器(Filter)。而 f 可以是我们所说的机器学习中的特征(Feature),也可以是信号处理中的信号(Signal)。f和g的卷积 (f∗g)就可以看作是对f的加权求和。下面两个动图就分别对应信号处理与深度学习中卷积操作的过程。

矩阵中卷积计算

以下图中f*g卷积为例,要注意一点,为了运用卷积,$g$虽然和$g$同维度,但下标有点不一样:

这里以一个动图来说明下计算过程:

写成卷积公式就是:

这样相当于实现了$g$这个矩阵在原来图像上的划动(准确来说,下面这幅图把$g$矩阵旋转了180度):

所以一般在用的是卷积核实际上是进行过180度旋转的。

参考链接

  1. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导-持续更新
  2. 如何通俗易懂地解释卷积?

  转载请注明: NYSDY 如何理解卷积

 上一篇
pycharm 远程调试 pycharm 远程调试
Remote篇——PyCharm远程运行、调试环境配置 一般在本地无法调试远程端代码,机械性的scp传输文件十分影响工作效率,PyCharm的Pro支持远程Run,Debug,等可视化的功能。 操作系统:本地MacOS,远程Linux
2020-11-18
下一篇 
范数与距离的联系 范数与距离的联系
1 范数向量的范数可以简单形象的理解为向量的长度,或者向量到零点的距离,或者相应的两个点之间的距离。 常用的向量的范数: L0范数:为x向量各个非零元素的个数。L2范数:为x向量各个元素平方和的1/2次方。L2范数又称Euclidean范数
2020-10-18
  目录