最近本人正在研究深度学习相关内容,面对处处出现的卷积运算有很多地方都不太理解,比如为什么要使用卷积运算?为什么卷积是这样算?趋于巨大的求知欲,我在网上寻找各路大神的讲解,终于得到了自己的理解,下面就简单谈谈我自己的想法。
首先,卷积的运算定义是很有现实意义的,我们对于生活中事情重要性的描述,往往可以从两个方面来衡量:一来是事件本身的描述,比如考试考了100分、90分、75分以及59分等;二来是一旦发生后带来的效果,也就是一个事件本身的影响力,比如考100分会奖励、59分会挨打 。如果我们是利用卷积进行预测计算,可以将事件本身的描述换成事件的概率函数,即一个事件发生的概率,比如考100分的概率是10%,考90分的概率是80%等等。
此外,我们还需要注意一个问题就是时间对事件的影响效果,一个最恰当的例子就是新闻。我们今天早上去买报纸,肯定想看的是最新的新闻内容,而不是上个月或者是去年的新闻(哪怕去年的新闻是一个究极爆炸大新闻),这就是因为时间将该事件的权重冲淡了,在当时他影响效果很大,但对于现在来说,就没那么大的影响了。
那么,现在我们再来看看卷积的运算定义,就很好理解了:
首先是离散的表达式:这里f(τ)就表示一个事件函数,g(τ)就表示一个事件发生后带来的影响(即权重),我们将这两者相乘作为某一刻的影响力,然后对于离散情况下对其求和(这个求和的意义就是对一段时间内的每一刻的影响进行求和,因为事件发生后的影响并不是一瞬间的,而是有一个延续的影响效果,这就导致了下一刻的影响情况是根据当前影响以及过去一段时间的总影响来共同决定的。因此我们需要做求和处理)
同理,连续的表达式如下:本质就是将求和换成了积分
举个例子,你是一个刚刚结束了三年高中生涯的学生,然后高考完后你在等你的高考成绩,你焦急的等啊等啊,突然!成绩刷出来了!哇!你考了720分!清华大学已经向你招手了!这个时候我们说“出成绩”这个事件对你的影响效果是很大的,它的权重可能有100、1000甚至是10000(虽然它发生的概率可能只有0.000000…01,狗头.jpg),然后你尽情沉浸在暑假的狂欢中。后来,你真的去了清华大学,看见幽美的校园环境和浓厚的学术氛围,你很感谢自己当时的努力,回忆起当时出成绩的时刻,你当时的兴奋化作了此刻的欣慰,这时候出成绩这个事对你的影响权重就变小了,可能就只有80、90,继续,你慢慢发现,这里的住宿条件没有在家里好,食堂吃饭也没家里香,上课老师讲的很难也听不懂,舍友一个个学起来都很厉害,此时“出成绩”这个事件对你的影响力又降低了,可能是20、30,再后来,直到你毕业,你再回想起录取那天,可能已经记不清了,这时“出成绩”影响的效果对你来说可能几乎为0
最后我们如果想计算“出成绩且为720”这一事件对你大学四年的影响,就可以用上面的表达式,如果你想以年为单位,统计你从大一到大四的情况,就采用离散的表达式;如果你以秒为单位(不是很准确,意思是量化单位很小),就可以采用连续的表达式,进行更精确的计算。
现在你应该已经大体上明白了卷积的运算含义,下面我就一个专业问题谈谈自己的想法。学过《数字图像处理》的朋友可能知道,我们在用模板进行卷积运算的时候,需要先将模板进行180°翻转,但你们有没有想过为什么需要翻转?其实就是因为卷积函数的表达式。这里面的g函数内的参数实际上是(n-τ),初中数学告诉我们,这相当于是将g(τ)关于y轴做对称,然后向右平移n,这个n就是我们所要积分或者是求和的范围(用上面“出成绩”的例子来说,n以年为单位,等于1就是统计大学一年内对你的影响,等于2就是统计大学两年内对你的影响。更详细的介绍参见下文链接)。
下面是用log(x)和log(10-x)做的演示实例:
于是,在数字图像处理中,由于卷积模板是二维的,所以运算翻转就需要将x方向和y方向均做翻转,效果就等同于做了180翻转(中心对称翻转),即这样运算才是满足了卷积运算定义的。
此外对于卷积更深层含义的讲解,比如什么是“卷”、什么是“积”,以及为什么要设置(n-τ)、为什么卷积要定义成这样,有兴趣的朋友可以看看下面这个链接,由于其作者已经讲解的十分通俗易懂,本人就不在赘述了。
如何通俗易懂地解释卷积?