机器学习中的数学(1)——怎样形象的理解卷积

来源:互联网 发布:图片墙制作软件 编辑:程序博客网 时间:2024/06/12 23:15

1、引言

在上大学学习线性代数的时候,就接触过卷积公式,但是当时仅仅限于可以使用卷积公式解题,对它的理解也仅仅是一种积分。直到今天学习图像滤波,再次接触到这个词,想不明白它的物理意义,感觉很疑惑,就在网上搜索资料以解惑,再知乎发现了很有意思的几个解释,记录如下。

2、卷积公式



3、卷积故事—小明偷懒被打脸(概念上认识卷积)

作者:笑劫戈
链接:https://www.zhihu.com/question/22298352/answer/91131073
来源:知乎


    小明是一家知名互联网公司的高级程序员,但是这家公司的老板有点不太好伺候,犯错就打脸。老板命令他干活,他却到楼下打台球去了,后来被老板发现,他非常气愤,扇了小明一巴掌(注意,这就是输入信号,脉冲),于是小明的脸上会渐渐地(贱贱地)鼓起来一个包,小明的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。
    下面还需要一些假设来保证论证的严谨:假定小明的脸是线性时不变系统,也就是说,无论什么时候老板打小明的脸一巴掌,打在小明脸上的同一位置(这似乎要求小明的的脸足够光滑,如果小明的脸长了很多青春痘,甚至整个脸皮处处连续处处不可导,那难度太大了,我就无话可说了哈哈),小明的的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了!
    如果小明每天都到地下去打台球,那么老板每天都要扇小明一巴掌,不过当老板打小明一巴掌后,小明5分钟就消肿了,所以时间长了,小明甚至就适应这种生活了……如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇小明的话,这样问题就来了,第一次扇小明鼓起来的包还没消肿,第二个巴掌就来了,小明脸上的包就可能鼓起来两倍高,老板不断扇小明,脉冲不断作用在小明脸上,效果不断叠加了,这样这些效果就可以求和了,结果就是小明脸上的包的高度随时间变化的一个函数了(注意理解);如果老板再狠一点,频率越来越高,以至于小明都辨别不清时间间隔了,那么,求和就变成积分了。
    可以这样理解,在这个过程中的某一固定的时刻,小明的脸上的包的鼓起程度和什么有关呢?和之前每次打小明都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积,卷积之后的函数就是小明脸上的包的大小随时间变化的函数。本来小明的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?
    反映到剑桥大学的公式上,f(a)就是第a个巴掌,g(x-a)就是第a个巴掌在x时刻的作用程度,乘起来再叠加就ok了,大家说是不是这个道理呢?我想这个例子已经非常形象了,你对卷积有了更加具体深刻的了解了吗?

4、卷积故事—小明攒钱娶媳妇(公式上理解卷积)

作者:果程C
链接:https://www.zhihu.com/question/22298352/answer/50940942
来源:知乎

    对于初学者,推荐用复利的例子来理解卷积可能更好理解一些。

    虽然挨了老板的打,但是老板给的工资很高,所以他一直没有离职。为了能在相亲时有些底气,最近小明开始攒钱了。小明存入100元钱,年利率是5%,按复利计算(即将每一年所获利息加入本金,以计算下一年的利息),那么在五年之后他能拿到的钱数是,如下表所示:


    这笔钱存入银行的一年之后,小明又往银行中存入了100元钱,年利率仍为5%,那么这笔钱按复利计算,到了第五年,将收回的钱数是将这笔钱存入银行的一年之后,小明又往银行中存入了100元钱,年利率仍为5%,那么这笔钱按复利计算,到了第五年,将收回的钱数是,我们将这一结果作为新的一行加入上面的表格中:


     以此类推,如果小明每年都往银行中存入新的100元钱,那么这个收益表格将是这样的:


    可见,最终小明拿到的钱将等于他各年存入的钱分别计算复利之后得到的钱数的总和,即:


用求和符号来简化这个公式,可以得到:

\sum_{i=0}^{5}{f(i)g(5-i)}, \mathrm{where} \ f(i)=100, g(5-i) = (1.05)^{5-i}

      在上式中,f(i)为小明的存钱函数,而g(i)为存入银行的每一笔钱的复利计算函数。在这里,小明最终得到的钱就是他的存钱函数和复利计算函数的卷积。
为了更清晰地看到这一点,我们将这个公式推广到连续的情况,也就是说,小明在从0t的这一段时间内,每时每刻都往银行里存钱,他的存钱函数为f(\tau)\ (0\leq \tau\leq t),而银行也对他存入的每一笔钱按复利公式计算收益:g(t-\tau)=(1+5\%)^{t-\tau},则小明到时间t将得到的总钱数为:

\int_{0}^{t} f(\tau)g(t-\tau)d\tau=\int_{0}^{t} f(\tau)(1+5\%)^{t-\tau}d\tau
这也就是卷积的表达式了,上式可以记为(f\ast g)(t)

相信通过上面这个例子,大家应该能够很清晰地记住卷积公式了。下面我们再展开说两句:
如果我们将小明的存款函数视为一个信号发生(也就是激励)的过程,而将复利函数g(t-\tau)视为一个系统对信号的响应函数(也就是响应),那么二者的卷积(f\ast g)(t)就可以看做是在t时刻对系统进行观察,得到的观察结果(也就是输出)将是过去产生的所有信号经过系统的「处理/响应」后得到的结果的叠加,这也就是卷积的物理意义了。

最后真诚感谢知乎的两位答主。

原创粉丝点击