首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

认识卷积

在机器学习中,深度学习和神经网络已成为必须了解的概念了。其中的CNN,也就是卷积神经网络,在图像识别,语音处理等方面都有着广泛的应用。但卷积究竟是什么呢?很多人第一反映是拿起尘封已久的大学课本,去复习卷积的概念。不过理论总来源于生活,从生活的角度形象地理解概念,可能会更有益处。下面的内容,是从一篇个人认为写的比较通俗的英文博文中摘录和翻译的例子。

从自由落体小球说起

我们常用长、宽、高来度量我们生活的空间。现在,我们降低维度,将长和宽两个维度合并成一个。假设在这个二维空间中存在一个小球,我们在某一高度释放小球,使其在平面向前弹起一段距离,而后在该位置上我们再将小球拿起到一定高度,再次释放小球,让其在平面向前再弹起一段距离。那么,两次重复的操作之后,小球在平面上向前移动的距离为c的可能性有多大呢?

要解决这个问题,让我们分开来看每一步。在第一次落地时,假设小球的落点为a的概率是f(a),其中的f是小球落点的概率分布。

假设我们固定小球首次落地的位置就是a,为了能让两次落地后小球运动的总距离为c,小球第二次运动的距离b也会是个固定值,且需要满足a+b=c。这时,落点为c的概率就是两段概率的乘积f(a)⋅g(b)

让我们举一个更为直观的例子加深理解。我们希望小球最终运动的总距离c是3,首次释放小球后其落点距原点的距离b为2,则在2的位置再次释放小球时其落地的位置距该点的距离b就是1,这样就能保证a+b=3,这时对应概率为f(2)⋅g(1)

不过这并不是小球最终运动到3的唯一路径。小球可以先落在1的位置,再向前运动2格。也可以先停在原地(即a=0),再运动3格。无论a和b是何值,只要它们加起来为3就能满足要求。

上述两种方式对应的概率分别是f(1)⋅g(2)和f(0)⋅g(3)。

只看小球运动到c的某一条路径是无法得到小球最终能到c处的总概率的,我们需要将运动到c的每条路径的概率都加起来,才能计算出整体的概率,也就是说:

... f(0)⋅g(3) + f(1)⋅g(2) + f(2)⋅g(1) ...

对满足a+b=c的每个a和b,可以用f(a)⋅g(b)表示其发生的概率 ,所以下面的公式表示了最终落在c处的总概率:

看,我们正在使用卷积进行运算!通过f和g的卷积计算c的概率可定义成下面这种形式:

如果我们使用b=c-a替换上述等式,则得到:

这就是卷积的标准定义。

为了让这个过程更形象,我们考虑球的所有可能落点。第一次落地后,球会以f(a)的概率落在a位置。如果它落到了a位置,那它将会有g(c-a)的可能性最终落到c位置。

将所有中间位置a都考虑进来,我们就得到了卷积的结果:

卷积可视化

有一种更直观的方式帮助大家理解卷积。

首先,通过观察可知,假设一个小球会以f(x)的概率落在距离释放点x的位置。那么反过来看,如果让小球落地点固定,释放点可随机变动,那么从x位置释放,最终落在原点的概率则为f(-x)。

如果我们知道第二次落地后小球停在c位置,那小球第一次落在a位置的概率是多少呢?

看上图示例可知,小球第一次落地位置为a的概率为g(−(a−c))=g(c−a)

现在,考虑每个中间落点对最终小球落在c位置的贡献。我们知道第一次小球落在a处的概率为f(a)。我们也知道如果小球最终落点为c,那它第一次落在a处的概率为 g(c−a)。

将所有中间落点a的情况累加起来,我们就得到了卷积的结果。

这种理解方式的优势在于,它可以让我们在一张图中表示对特定c的卷积处理过程。通过将图中下半部分左右移动,我们可以观察对不同c值计算卷积时的差异。这能让我们对卷积计算建立更为直观的认识。

比如说,我们能看出来当上下图完全重合时,卷积的结果到达峰值。

并且在交集变小的时候卷积的结果逐渐变小。

通过使用动画,我们能更直观地理解卷积的含义。下面动画展示了两个特定函数卷积计算的过程:

使用这种方法,很多场景就变得更直观了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407G0F8VS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券