卷积神经网络初探(一)理解卷积

何为卷积?

数学中的卷积定义:
( f ∗ g ) ( n ) (f*g)(n) (fg)(n) f , g f,g f,g的卷积;
其连续的定义为
( f ∗ g ) ( n ) = ∫ − ∞ ∞ f ( τ ) g ( n − τ ) d τ (f*g)(n) = \int_{-\infty}^{\infty}f(\tau)g(n-\tau)d\tau (fg)(n)=f(τ)g(nτ)dτ
其离散的定义为
( f ∗ g ) ( n ) = ∑ τ = − ∞ ∞ f ( τ ) g ( n − τ ) (f*g)(n) = \sum_{\tau =-\infty}^{\infty}f(\tau)g(n-\tau) (fg)(n)=τ=f(τ)g(nτ)

那么如何理解这两个例子,首先从离散的卷积定义说起:

假设随意抛掷两枚骰子,求:
两枚骰子点数相加等于4的概率?

假设骰子的质地均不同,那么两个骰子点数的概率分布也将不一致,假设 f f f为第一枚骰子的概率分布, g g g为第二枚骰子的概率分布; 那么
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
那么骰子点数相加为4的概率为:
f ( 1 ) g ( 3 ) + f ( 2 ) g ( 2 ) + f ( 3 ) g ( 1 ) f(1)g(3)+f(2)g(2)+f(3)g(1) f(1)g(3)+f(2)g(2)+f(3)g(1)
按照卷积的定义即:
( f ∗ g ) ( 4 ) = ∑ m = 1 4 f ( m ) g ( 4 − m ) (f*g)(4) = \sum_{m=1}^{4}f(m)g(4-m) (fg)(4)=m=14f(m)g(4m)

再看一个例子:
假设从一定高度让一个球做自由落体,且假设球在落下后只有一个维度的运动,在球静止后再在该位置上方以不同的高度让球落下,求两次落球,球的运动距离为c的概率:

不同的高度落球,球在地面滚动距离的分布也不同,假设第一次落球,球滚动距离为a的概率为 f ( a ) f(a) f(a),第二次落球,球滚动的距离为b的概率为给 g ( b ) g(b) g(b),且 c = a + b c=a+b c=a+b,那么两次落球,球在地面滚动的总距离为c的概率为 f ( a ) g ( b ) f(a)g(b) f(a)g(b)
在这里插入图片描述
假设现在需要求c=3时的概率,那么如果第一次落球球滚动距离a为2,那么b=1,即$ f(2)g(1)$
在这里插入图片描述
同理,a=0时,b=3; a=3时,b=0; a=1时,b=1;

在这里插入图片描述
那么 P { c = 3 } = . . . f ( 0 ) ⋅ g ( 3 ) + f ( 1 ) ⋅ g ( 2 ) + f ( 2 ) ⋅ g ( 1 ) . . . P\{c=3\} =... f(0)⋅g(3) + f(1)⋅g(2) + f(2)⋅g(1) ... P{c=3}=...f(0)g(3)+f(1)g(2)+f(2)g(1)...

由此得到更一般化的结论;
( f ∗ g ) ( c ) = ∑ a + b = c f ( a ) g ( b ) (f*g)(c) = \sum_{a+b=c}f(a)g(b) (fg)(c)=a+b=cf(a)g(b)

又有
( f ∗ g ) ( c ) = ∑ a f ( a ) g ( c − a ) (f*g)(c) = \sum_{a}f(a)g(c-a) (fg)(c)=af(a)g(ca)
说的更具体些就是,第一次落球球在地面滚动距离为a概率是 f ( a ) f(a) f(a),在第一次落球后球滚动距离为a的情况下,第二次落球球滚动距离为c-a的概率为 g ( c − a ) g(c-a) g(ca)

在这里插入图片描述
对上述表述做下处理让我们更好的理解卷积,
首先,假设一个球从它开始的地方落下一定距离x的概率是 f ( x ) f(x) f(x)。 然后,它从它落地后到停止的位置开始距离x的概率是 f ( − x ) f(-x) f(x)在这里插入图片描述
好了,那我们再来看,如果已经知道两次落球后球滚动的总距离是c,那么第一次落球距离为a的概率是多少呢:
在这里插入图片描述
即为 g ( − ( a − c ) ) = g ( c − a ) g(-(a-c)) = g(c-a) g((ac))=g(ca)

由此可以有如下的图:
在这里插入图片描述
计算出在c范围内所有a的取值的和(即棕球位置)既可以得出 P { c } P\{c\} P{c}

同时,通过移动上图的下半部分(即g分布)即可得到其他的c的概率值

以上是一维度的卷积,那么对于高维度的卷积呢

同样以落球为例,这次不把球落地后滚动的轨迹限定为只有一个维度,而假设球落地后在一个平面内滚动,
在这里插入图片描述
同样,也有公式 ( f ∗ g ) ( c ) = ∑ a + b = c f ( a ) g ( b ) (f*g)(c) = \sum_{a+b=c}f(a)g(b) (fg)(c)=a+b=cf(a)g(b)
不过此时的 a ⃗ , b ⃗ , c ⃗ \vec{a},\vec{b},\vec{c} a ,b ,c 均为向量

则有上述公式的变体:
( f ∗ g ) ( c 1 , c 2 ) = ∑ a 1 + b 1 = c 1 , a 2 + b 2 = c 2 f ( a 1 , a 2 ) g ( b 1 , b 2 ) (f*g)(c_1,c_2) = \sum_{a_1+b_1=c_1,a_2+b_2=c_2}f(a_1,a_2)g(b_1,b_2) (fg)(c1c2)=a1+b1=c1,a2+b2=c2f(a1,a2)g(b1,b2)
或者
( f ∗ g ) ( c 1 , c 2 ) = ∑ a 1 , a 2 f ( a 1 , a 2 ) g ( c 1 − a 1 , c 2 − a 2 ) (f*g)(c_1,c_2) = \sum_{a_1,a_2}f(a_1,a_2)g(c_1-a_1,c_2-a_2) (fg)(c1c2)=a1,a2f(a1,a2)g(c1a1,c2a2)

就像一维卷积一样,我们可以将二维卷积视为在一个面在另一个上面滑动一个函数

这种情况的一个常见应用是图像处理。 我们可以将图像视为二维函数。 许多重要的图像变换都是卷积,在这些卷积中,将图像函数与称为“内核kerel”(过滤器)的非常小的本地函数进行卷积。
内核滑动到图像的每个位置,并计算一个新像素作为浮动像素的加权和。
在这里插入图片描述
我们可以通过一个元素值均为 1 9 \frac1{9} 91的3x3维矩阵与图像函数卷积以模糊图像

我们还可以通过在两个相邻像素上取值-1和1来检测边缘,并在其他任何地方取零。 也就是说,我们减去两个相邻的像素。 当并排像素相似时,这给我们大约为零。 然而,在边缘上,相邻像素在垂直于边缘的方向上非常不同。
在这里插入图片描述
参考:
colah’s blog Understanding Convolutions
如何通俗易懂理解卷积

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值