如何通俗易懂地解释卷积?
2017-11-22 22:25
429 查看
这里感谢知乎的马同学 、张俊博等各位解释,获益很多,详细大家可以搜索知乎,这里只截取三种解释,并对三种解释的共同处做了一下自己的标注,
马同学
看图学数学,公众号:matongxue314
1264 人赞同了该回答
从数学上讲,卷积就是一种运算。
某种运算,能被定义出来,至少有以下特征:
首先是抽象的、符号化的
其次,在生活、科研中,有着广泛的作用
比如加法:
,是抽象的,本身只是一个数学符号
在现实中,有非常多的意义,比如增加、合成、旋转等等
卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。
1 卷积的定义
我们称
为
的卷积
其连续的定义为:
其离散的定义为:
这两个式子有一个共同的特征:
这个特征有什么意义?
我们令
,那么
就是下面这些直线:
如果遍历这些直线,就好比,把毛巾沿着角卷起来:
此处受到
荆哲:卷积为什么叫「卷」积? 答案的启发。
只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。
我们来看看现实中,这样的定义有什么意义。
2 离散卷积的例子:丢骰子
我有两枚骰子:
把这两枚骰子都抛出去:
求:
这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。
我们把骰子各个点数出现的概率表示出来:
那么,两枚骰子点数加起来为4的情况有:
因此,两枚骰子点数加起来为4的概率为:
符合卷积的定义,把它写成标准的形式就是:
3 连续卷积的例子:做馒头
楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。
假设馒头的生产速度是
,那么一天后生产出来的馒头总量为:
馒头生产出来之后,就会慢慢腐败,假设腐败函数为
,比如,10个馒头,24小时会腐败:
想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。
如此,我们可以知道,一天后,馒头总共腐败了:
这就是连续的卷积。
4 图像处理
4.1 原理
有这么一副图像,可以看到,图像上有很多噪点:
高频信号,就好像平地耸立的山峰:
看起来很显眼。
平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。
平滑后得到:
4.2 计算
卷积可以帮助实现这个平滑算法。
有噪点的原图,可以把它转为一个矩阵:
然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:
记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。
比如我要平滑
点,就在矩阵中,取出
点附近的点组成矩阵
,和
进行卷积计算后,再填回去:
要注意一点,为了运用卷积,
虽然和
同维度,但下标有点不一样:
我用一个动图来说明下计算过程:
写成卷积公式就是:
要求
,一样可以套用上面的卷积公式。
这样相当于实现了
这个矩阵在原来图像上的划动(准确来说,下面这幅图把
矩阵旋转了
):
此图出处:Convolutional
Neural Networks - Basics
编辑于 2017-09-13
-----------------------------------------------------------------------------------------------------------------------------------------------
1.3K
80 条评论
分享
收藏
感谢
收起
张俊博
小米语音
2405 人赞同了该回答
有那么麻烦吗?
不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。
这个其实非常简单的概念,国内的大多数教材却没有讲透。
直接看图,不信看不懂。以离散信号为例,连续信号同理。
已知
(注:这里把x
看做输入信号)
已知
(注:这里,把y
看做离散加权序列)
下面通过演示求
的过程,揭示卷积的物理意义。
第一步,
乘以
并平移到位置0:(注:输入x
离散点输入x
,使用y[0]进行加权,以下类似)
第二步,
乘以
并平移到位置1:
第三步,
乘以
并平移到位置2:
最后,把上面三个图叠加,就得到了
:
简单吧?无非是平移(没有反褶!)、叠加。
====================================================
从这里,可以看到卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。
重复一遍,这就是卷积的意义:加权叠加。
对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应 加权叠加,就直接得到了输出信号。
通俗的说:
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。(注:从马同学的图像卷积案例,可理解为对各个移动区域(看成一个离散输入)进行加权相加,卷积窗格每移动一格,对新“框定”的区域(又是一个离散输入)进行加权,由于移动过程中,有重叠区域,所以各个窗格(区域)对划过它的全部窗格都要响应,从而得到张俊博所说的加权(输出),只不过张提到的更像是信号处理领域的)这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
编辑于 2016-08-25
-----------------------------------------------------------------------------------------------------------------------------------
鱼腻
学生
703 人赞同了该回答
看了好多关于卷积的答案,看到这个例子才彻底地理解了这个过程~
关于卷积的一个血腥的讲解
比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号(注:张俊博中的x
),脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要一些假设来保证论证的严谨:假定你的脸是线性时不变系统,也就是说,无论什么时候老板打你一巴掌,打在你脸的同一位置(这似乎要求你的脸足够光滑,如果你说你长了很多青春痘,甚至整个脸皮处处连续处处不可导,那难度太大了,我就无话可说了哈哈),你的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了!
如果你每天都到地下去打台球,那么老板每天都要扇你一巴掌,不过当老板打你一巴掌后,你5分钟就消肿了,所以时间长了,你甚至就适应这种生活了……如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇你的过程,这样问题就来了,第一次扇你鼓起来的包还没消肿,第二个巴掌就来了,你脸上的包就可能鼓起来两倍高,老板不断扇你,脉冲不断作用在你脸上,效果不断叠加了,这样这些效果就可以求和了,结果就是你脸上的包的高度随时间变化的一个函数了(注意理解);如果老板再狠一点,频率越来越高,以至于你都辨别不清时间间隔了,那么,求和就变成积分了。可以这样理解,在这个过程中的某一固定的时刻,你的脸上的包的鼓起程度和什么有关呢?和之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数(注:张俊博所说的加权,y
)之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积(注:加权之和),卷积之后的函数就是你脸上的包的大小随时间变化的函数。本来你的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?反映到剑桥大学的公式上,f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就ok了,大家说是不是这个道理呢?我想这个例子已经非常形象了,你对卷积有了更加具体深刻的了解了吗?
转自GSDzone论坛
马同学
看图学数学,公众号:matongxue314
1264 人赞同了该回答
从数学上讲,卷积就是一种运算。
某种运算,能被定义出来,至少有以下特征:
首先是抽象的、符号化的
其次,在生活、科研中,有着广泛的作用
比如加法:
,是抽象的,本身只是一个数学符号
在现实中,有非常多的意义,比如增加、合成、旋转等等
卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。
1 卷积的定义
我们称
为
的卷积
其连续的定义为:
其离散的定义为:
这两个式子有一个共同的特征:
这个特征有什么意义?
我们令
,那么
就是下面这些直线:
如果遍历这些直线,就好比,把毛巾沿着角卷起来:
此处受到
荆哲:卷积为什么叫「卷」积? 答案的启发。
只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。
我们来看看现实中,这样的定义有什么意义。
2 离散卷积的例子:丢骰子
我有两枚骰子:
把这两枚骰子都抛出去:
求:
这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。
我们把骰子各个点数出现的概率表示出来:
那么,两枚骰子点数加起来为4的情况有:
因此,两枚骰子点数加起来为4的概率为:
符合卷积的定义,把它写成标准的形式就是:
3 连续卷积的例子:做馒头
楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。
假设馒头的生产速度是
,那么一天后生产出来的馒头总量为:
馒头生产出来之后,就会慢慢腐败,假设腐败函数为
,比如,10个馒头,24小时会腐败:
想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。
如此,我们可以知道,一天后,馒头总共腐败了:
这就是连续的卷积。
4 图像处理
4.1 原理
有这么一副图像,可以看到,图像上有很多噪点:
高频信号,就好像平地耸立的山峰:
看起来很显眼。
平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。
平滑后得到:
4.2 计算
卷积可以帮助实现这个平滑算法。
有噪点的原图,可以把它转为一个矩阵:
然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:
记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。
比如我要平滑
点,就在矩阵中,取出
点附近的点组成矩阵
,和
进行卷积计算后,再填回去:
要注意一点,为了运用卷积,
虽然和
同维度,但下标有点不一样:
我用一个动图来说明下计算过程:
写成卷积公式就是:
要求
,一样可以套用上面的卷积公式。
这样相当于实现了
这个矩阵在原来图像上的划动(准确来说,下面这幅图把
矩阵旋转了
):
此图出处:Convolutional
Neural Networks - Basics
编辑于 2017-09-13
-----------------------------------------------------------------------------------------------------------------------------------------------
1.3K
80 条评论
分享
收藏
感谢
收起
张俊博
小米语音
2405 人赞同了该回答
有那么麻烦吗?
不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。
这个其实非常简单的概念,国内的大多数教材却没有讲透。
直接看图,不信看不懂。以离散信号为例,连续信号同理。
已知
(注:这里把x
看做输入信号)
已知
(注:这里,把y
看做离散加权序列)
下面通过演示求
的过程,揭示卷积的物理意义。
第一步,
乘以
并平移到位置0:(注:输入x
离散点输入x
,使用y[0]进行加权,以下类似)
第二步,
乘以
并平移到位置1:
第三步,
乘以
并平移到位置2:
最后,把上面三个图叠加,就得到了
:
简单吧?无非是平移(没有反褶!)、叠加。
====================================================
从这里,可以看到卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。
重复一遍,这就是卷积的意义:加权叠加。
对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应 加权叠加,就直接得到了输出信号。
通俗的说:
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。(注:从马同学的图像卷积案例,可理解为对各个移动区域(看成一个离散输入)进行加权相加,卷积窗格每移动一格,对新“框定”的区域(又是一个离散输入)进行加权,由于移动过程中,有重叠区域,所以各个窗格(区域)对划过它的全部窗格都要响应,从而得到张俊博所说的加权(输出),只不过张提到的更像是信号处理领域的)这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
编辑于 2016-08-25
-----------------------------------------------------------------------------------------------------------------------------------
鱼腻
学生
703 人赞同了该回答
看了好多关于卷积的答案,看到这个例子才彻底地理解了这个过程~
关于卷积的一个血腥的讲解
比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号(注:张俊博中的x
),脉冲),于是你的脸上会渐渐地(贱贱地)鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。下面还需要一些假设来保证论证的严谨:假定你的脸是线性时不变系统,也就是说,无论什么时候老板打你一巴掌,打在你脸的同一位置(这似乎要求你的脸足够光滑,如果你说你长了很多青春痘,甚至整个脸皮处处连续处处不可导,那难度太大了,我就无话可说了哈哈),你的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了!
如果你每天都到地下去打台球,那么老板每天都要扇你一巴掌,不过当老板打你一巴掌后,你5分钟就消肿了,所以时间长了,你甚至就适应这种生活了……如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇你的过程,这样问题就来了,第一次扇你鼓起来的包还没消肿,第二个巴掌就来了,你脸上的包就可能鼓起来两倍高,老板不断扇你,脉冲不断作用在你脸上,效果不断叠加了,这样这些效果就可以求和了,结果就是你脸上的包的高度随时间变化的一个函数了(注意理解);如果老板再狠一点,频率越来越高,以至于你都辨别不清时间间隔了,那么,求和就变成积分了。可以这样理解,在这个过程中的某一固定的时刻,你的脸上的包的鼓起程度和什么有关呢?和之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数(注:张俊博所说的加权,y
)之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积(注:加权之和),卷积之后的函数就是你脸上的包的大小随时间变化的函数。本来你的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?反映到剑桥大学的公式上,f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就ok了,大家说是不是这个道理呢?我想这个例子已经非常形象了,你对卷积有了更加具体深刻的了解了吗?
转自GSDzone论坛
相关文章推荐
- 如何通俗易懂地解释卷积?
- 如何通俗易懂地解释卷积?
- 如何通俗易懂地解释遗传算法?
- 如何通俗易懂地解释「协方差」与「相关系数」
- 如何用通俗易懂的语言解释需求变更带来的项目影响
- 如何用通俗易懂地解释什么是数据挖掘
- 如何通俗易懂地向初学者通解释 jQuery、CSS3 和 HTML5 的关系?
- 如何通俗易懂地解释「协方差」与「相关系数」的概念?
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 怎样通俗易懂地解释卷积?
- 卷积的意义-是我所看到的解释最生动最通俗易懂的
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 如何通俗易懂地解释遗传算法?有什么例子?
- 通俗易懂的解释卷积
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 如何才能通俗易懂地解释JS中的的"闭包"?
- 如何通俗易懂地向初学者通解释 jQuery、CSS3 和 HTML5 的关系?
- 如何通俗易懂地解释遗传算法