深度学习数学基础(一)~卷积
前言
我在学习机器学习和图像处理的过程中经常会遇到卷积这个概念,但我每次遇到这个概念都有点不甚了解。于是我在学习了几个博客之后把我理解的做了一个总结,其不足之处敬请指正。
一、卷积的起源
文献来源:-A History of the Convolution Operation
卷积的概念来源于17世纪的瑞士数学天才欧拉Leonhard Euler(1707-1783),他双目失明,但疾病没有阻碍他对于数学的贡献,他在那些日子里完成了一本关于积分学和以定积分求解微分方程的巨著。
he suffered complete blindness, but this illness did not prevent him from contributing to mathematics. In fact, in those years, he wrote a memorable book about integral calculus and the solution of differential equations (DEs, 微分方程) by certain definite integrals(定积分).
通过将K(u)替换为u、Q(x)替换为x,或将K(u)替换为-u、Q(x)替换为x,得到与流体力学、电气工程、热传导、信号和图像处理、线性声学、机械工程、光学、概率与统计等领域相关的用积分变换求解微分更通用的形式:
因此,这项操作在某种程度上是输入函数和另一个输入函数的revolving。特别是在数学、物理和相关领域,通常用于指定这样revolving的动词是convolve,这个动词出自拉丁语系的con和volve˜re,这分别意味着“一起”和“卷起”,因此convolving这个动作被称为卷积convolution。
Therefore, the operation is in some sense the “revolving” of one of the input functions with the other one. Particularly in mathematics, physics, and related areas, the verb commonly used to designate such a revolving is “to convolve.” This verb comes from the Latin words con and volve˘re, which mean “together” and “roll up,” respectively; thus, convolve means “roll up together.” Accordingly, the action of convolving is called convolution.
二、卷积的定义
卷积是通过两个函数f和g生成第三个函数的一种数学运算,卷积结果可以看作是函数f的修改(过滤)版本。在这个定义中,函数g被称为过滤器filter、卷积函数或卷积核。
Convolution is an operation on two functions f and g, which produces a third function that can be interpreted as a modified (“filtered”) version of f. In this interpretation we call g the filter.
卷积是任何物理设备或计算过程执行平滑或锐化的核心,应用于图像等二维函数,它也可用于边缘发现、特征检测、运动检测、图像检测和无数其他任务。
Applied to two dimensional functions like images, it’s also useful for edge finding, feature detection, motion detection, image matching, and countless other tasks.
图解卷积参考博客: Understanding Convolutions; 斯坦福大学CS178课程资料(有一个卷积的在线Applet演示)
However, 我认为结合例子更容易理解。
source: 我对卷积的理解-Mengqi’s blog
1. 一维卷积
1.1 数学定义
维基百科上,卷积的形式化定义如下:
(1)
1.2 直观解释
先来分析一下这个公式:
(1) f(x)∗g(x)表示 f(x)和 g(x)的卷积,注意此处自变量为 x;
(2)它是对 (−∞,∞)区间上对 τ求积分;
(3)积分对象为两个函数的乘积:f(τ)和 g(x−τ)。
(4)等式右边只有 g(x−τ)提到了x,其他部分都在关注 τ
这样一个公式恐怕还是难以理解,接下来将通过一个例子来进行解释。
1.3 例子
试想小明有一段时间每天都要去输液,输的药会在身体里残留直至失效,药效随着时间是不断衰落的。 这里为简便起见,假设药效 4 天就失效,而且药效持续函数是离散的。
如下图所示:

图中,横坐标为天数,纵坐标为药效。输液当天(day=0)药效为 100%,第二天减弱为 80%,第三天减弱为 40%,第四天减弱为 0。
现在先定义一些符号:
记天数为t,每天输液的药量为m(t), 药效函数为eff(t),小明身上残留的药效为rest(t)。其中药效函数:
下面观察一下小明从第一天起,连续三天输液后身上所留下的药效(假设每天药量固定为10)。
- 第一天,小明去医院输完液后,药效为10(rest(t)= m(t)·eff(0))。

- 第二天,小明去医院准备输液
输液前,他身上带着前一天的药效,此时已经衰减为 10⋅80%=8,即 m(t−1)·eff(1)。
输液后,他身上携带的药效为:8 + 10 = 18(rest(t)=m(t−1)⋅eff(1)+m(t-0)⋅eff(0))。

- 第三天,小明去医院准备输液
输液前,他身上带着前两天的药效,第一天的此时已衰减为 10⋅40%=4(m(t−2)⋅eff(2)),第二天的此时衰减为 10⋅80%=8(m(t−1)⋅eff(1))。
输液后,他身上携带的药效为:4 + 8 + 10 = 22(rest(t)=m(t−2)⋅eff(2)+m(t−1)⋅eff(1)+m(t-0)⋅eff(0))。

1.4 分析
从上面的分析我们可以得到,小明第t天身上残留的药效,其中n为药效有效的最大天数。我们不难想象,在药效函数eff(t)为连续时,上式中的求和就应改为积分;而当药效能无限期有效时,上式中的n就为
。无限期有效的药效函数,所对应的
(本例中严格来说应该是
,这里推广到了(-∞, ∞))。推导到这里,基本就是维基百科上卷积的定义了。
1.5 总结
我(原文作者)之前对卷积概念的困惑主要是因为对公式(1)的那个的意义理解错了,总以为
是随着坐标轴变化的量。事实上,在上面的例子中,
是作为沿着纵坐标遍历的量:它的作用是对纵向上,历次函数eff(t)在当前点t残余量rest(t)的求和。积分也是对纵向上的积分(我理解是积分函数,也就是那个不规则函数,按照积分定义无限细分之后,是根据横坐标平移而纵坐标不规则变的函数,如果纵坐标规则变化,那就是常规函数了,所以这里说纵坐标遍历也可以,只不过在药效例子中是有限范围),而非横向上沿自变量的积分。
横坐标变化的量始终为t,而且在卷积中并没有明显体现出t的变化。
最后重新回顾一下上面的整个过程:比较三天以来的示意图可以发现,如果我们以当天而不是第t天为参考的话,就会看到eff(t)随着时间是在向左平移(深蓝的线表示当天,前几天的线都在其左边),然后各天衰退后的药量残余等于eff(t)乘上初始的药量值,最后将各天的药量残余求个和。整个过程的核心就是(反转)、移动、乘积、求和,这里面的反转概念也好理解,就是本来eff(t)是朝着右边走的函数,t=0, 1, 2...,eff(t)是形容t天后的药量的,而实际例子中我们是以当天为参考系!我们是在朝着左边看的,因而要反转。我(原文作者)认为这个反转是一个很自然的过程(我之前就很难理解为啥要反转,现在起码有个例子支撑了),不算事整个卷积的核心。此外,在计算机领域,至少我接触到的图像处理、机器学习方面用到的卷积,其卷积核(就是例子中不断平移的药效函数eff(t))一般是对称的,所以这个反转的概念不是那么重要。
➡️连续卷积
函数f和g是定义在R_{n}上关于连续变量x的连续函数,f和g的卷积记做f*g,它是其中一个函数经过翻转并平移后,与另一个函数乘积的积分,是一个对平移量的函数。
➡️离散卷积
对于定义在整数Z上的离散变量x函数f,g,卷积的定义是:
2. 二维卷积
2.1 数学定义
二维卷积常用于图像领域,其定义如下:
图像处理中用到的大多是二维卷积的离散形式:
2.2 图像处理中的二维卷积
二维卷积就是一维卷积的扩展,原理差不多。核心还是反转、移动、乘积、求和。这里二维的反转就是将卷积核沿反对角线(我认为反对角线是分别沿主对角线和副对角线翻转)翻转,比如:
翻转为
之后,卷积核在二维平面上平移,并且卷积核的每个元素与被卷积图像对应位置相乘,再求和(全卷积(Full Convolution)做padding就是对矩阵边界每个元素的邻域(邻域大小就是卷积核的大小)补充0,使矩阵每个元素值都可以被卷积函数平移到)。通过卷积核的不断移动,我们就有了一个新的图像,这个图像完全由卷积核在各个位置时的乘积求和的结果组成。
举一个最简单的均值滤波的例子:
这是一个 3x3 的均值滤波核,也就是卷积核(相当于药效函数):
这是被卷积图像,这里简化为一个二维 5x5 矩阵(实际情况是三原色的二维数据[[255,255,0], [255,0,255], ......]):
当卷积核运动到图像右下角处(卷积中心和图像对应图像第 4 行第 4 列)时,它和图像卷积的结果如下图所示:


可以看出,二维卷积在图像中的效果是对图像每个元素的邻域(邻域大小就是卷积核的大小)加权求和得到该元素点的输出值。卷积核在这里是作为一个权重表来使用的。
三、我对卷积的理解
3.1 图像卷积
卷积操作:翻转、平移、乘积、求和。 卷积运算:卷积运算不是矩阵乘积运算,而是一种矩阵对应位置相乘相加的加权运算。
卷积核,相当于一个权重算子,起到一种加权作用,距离当前点越近的权重越大,距离当前越远的权重越小,类似一个“逆推”的过程。
图像:卷积是一种积分运算,用来求两个曲线重叠区域面积,可以看作加权求和,可以用来消除噪声、特征增强。加权求和,权重w的和为1,以这些权重相乘相加。
3.2 卷积衰减
卷积,就是用来求一个衰减函数g与另一个函数f乘积和的。若这两个函数是离散,则卷积是∑求和;若这两个函数连续,则卷积是∫求和。
在信号领域,卷积函数是一个随时间平移强度逐渐衰减的脉冲信号。
参考文献
卷积的参考文献我都嵌入到博客内容中,转载文章也已注明来源。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)