Understanding Convolutions/理解卷积(1)

    上一篇文章对神经网络算法有了初步的理解,也为涉及重要的数学知识点。然而,进一步理解的的话我们需要理解卷积。

     如果仅仅是为了理解卷积神经网络。大概的理解卷积是足够了的。但是本篇的目的是卷积神经的前沿和探索新的选择。做到这一点要很深入的理解卷积。

    幸运的是,借助几个例子,卷积就能简单的呈现。

从丢球来学习

    设想从一定的高度丢球到地面,这仅仅是一维的运动。如果丢一个球然后在落地的上方再次丢下去,有多大的可能移动距离c呢?

让我们进一步突破这个想法。在第一次丢下,从开始的位置有f(a)的概率下落a个单位,f可能是离散函数.

     在第一次丢球之后,我们捡起球,在第一次落地的上方以一个高度再次丢下,相对于起落点球可能落下b个单位g(b),从不同的高度落下的话,g可能是一个不同沟通离散函数。   

 我们假定第一次落球的固定距离是a,两次总共的下落距离和是c,第二的固定距离是b,且a+b=c。这个场景的结果可能就是简单的f(a)⋅g(b).1。

 咱们来考虑一个离散的例子。我们想总的下落距离c=3。如果第一次的下落距离是a=2,则第二次必须是b=1总和才能是a+b=3。这个关系可能是f(2)⋅g(1)。

 但是这不是保证总距离是3的唯一的方式。球第可以一次下落个单位,第二次两个单位。或者第一次0单位,第二次3个单位。a,b可以是任何值,只要满足a+b=3。

 可能是f(1)⋅g(2) 和 f(0)⋅g(3)。

 为了找到所有满足总距离是3的可能性,我不能仅仅只考虑一种达到c的可能性。代替的,我们找所有将c差分为两次下落a,b的肯能性,并计算每种可能性的总和。

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

 我们已经知道每种可能性只是简单的f(a)⋅g(b)。所以计算每种a+b=c总和的肯能行的总和,我们使用如下方法表示:  

                        \sum_{a+b=c}^{ } f(a).g(b)

    事实证明,我们是在做卷积。特别的是,我们是做f和g在c处的卷积:

                        (f*g)(c) = \sum_{a+b=c}^{ } f(a).g(b)

   如果我们替换   b=c−a,我们将得到:
                      (f*g)(c) = \sum_{a+b=c}^{ } f(a).g(c-a)

  这是卷积的标准定义2

  使其更具体一些,咱们可以考虑使用球落地的位置。第一次落在a中间的概率是f(a)。如果落在a,则有g(c−a)概率落在c。
 

获得卷积,我们考虑所有的位置。

可视化卷积

 有一个很好的技巧,帮助更容易的理解卷积。设想球落在一个距离开始位置确定的距离x上,落到这里的概率是f(x)。

 首先先观察。假设球自开始的地方下落距离x的概率是f(x)。然后它从距离x的地方落下的概率是f(−x)。

如果我们知道第二次落在c点,则第一次是落在a第二次的概率是?
 

所以之前的位置是a的可能性是g(−(a−c))=g(c−a)。

现在,考虑所有可能的落地点对于最后落在c处的影响。我们知道第一次落在中间位置的可能性是f(a)。我们也知道第一次在a时第二次落在c处概率是f(c-a).
                          

 如上总结,我们得到卷积。

 这种方式的优势是将在c处的卷积在一张图中就可视化。通过移动下半部分,可以评估在另一个c处上午卷积。者有利于我们整体理解卷积。

 例如,我们可以看到上下对其的时候达到顶峰。

/**写不下,待下一篇**/

猜你喜欢

转载自blog.csdn.net/liubin192837/article/details/81090126
今日推荐