深入理解“卷积”的概念

本文主要为下面两篇篇文章加自己的理解感悟总结而来

1.知乎高赞回答如何通俗易懂地解释卷积?

2.知乎高赞回答卷积为什么叫「卷」积?

预备知识

  1.向量运算

  • 点乘(a * b)

      向量的点乘,也叫向量的内积、数量积,点积。对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操    作,点乘的结果是一个标量

  • 叉乘(a ∧ b)

      两个向量的叉乘,又叫向量积、外积、叉积。叉乘的运算结果是一个向量。并且两个向量的叉积与这两个向量组成的坐标平面垂直(即法向量)。

      注:本文用不到叉积,这里写出来只是为了帮助辨析概念

  2.张量

张量是一种表示物理量的方式。张量的阶数可以简单的理解为其基向量的维度。例如标量没有基向量,所以它是0阶张量,向量的基向量为一维,所以它为1阶张量。以此类推。

具体可以参考此篇文章:怎么通俗地理解张量?

卷积的定义及其理解

我们称 (f*g)(n) 为 f,g 的卷积

其连续的定义为:

其离散的定义为:

 

这两个式子有一个共同的特征:

我们令 x=t ,y=n-t  ,那么 x+y=n 就是下面这些直线:

将以上坐标系看作一个平面。将该平面升高一个维度,得到下图

上面保存着f和g在区间[a,b]上的张量积,即U(x,y)=f(x)g(y)。则直线x+y=n上对应点的张量积的积分就是(f*g)(n)对应的卷积值。本例对应的计算公式如下

为什么叫“卷积”

接上例,把平面一角卷起来

将整个平面卷起来后,便降维到了一条直线,即变成了一个一维的函数,而且直线上每点的函数值等于卷起来后重合的点函数值之和。

再将平面摊开

可以看出,被画了线的地方,正好就是x+y为定值的一条直线,所以卷起来后那点的函数值正好为这条直线上函数值的积分,也即等于卷积值。这便是“卷积”的由来。

卷积值的计算

根据定义,对上图的两个矩阵进行卷积,计算过程如下动图所示

写成卷积公式就是:

 

进行卷积时为什么把算子旋转180°

上面的式子用代码实现起来是有点复杂的,如果只是矩阵对应位置的数值相乘就会方便很多!那有没有什么办法做到这一点呢?答案是有,当把一个矩阵旋转180°后,两个矩阵对应位置乘积的和就等于根据定义计算得到的乘积和。所以为了方便计算,人们在进行卷积时往往把算子进行旋转,然后直接计算对应位置的乘积和。

卷积过程概览

注意:上面的卷积核是经过180°旋转后的,所以才能以对应位置乘积的和做为卷积值

猜你喜欢

转载自blog.csdn.net/li_l_il/article/details/83692891