深度学习中的“卷积”与数学中的“卷积”有何不同

任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~

 

 

深度学习中的卷积

当提到神经网络中的卷积时,我们通常是指由多个并行卷积组成的运算。(因为单个核只能特区一种类型的特征,我们usually希望可以在多个位置提取多个特征)

输入也不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格。

我们有的时候会希望跳出核中的一些位置来降低计算的开销(相应的代价是提取特征没有先前那么好了)我们就把这个过程看作对全卷积函数输出的下采样(downsampling).如果只是在输出的每个方向上每间隔s个像素进行采样,那么可重新定义一个 下采样卷积函数。我们把s称为下采样卷积的步幅(stride)。

在任何卷积网络的实现中都有一个重要性质:能够隐含地对输入V用零进行填充(pad)使得它加宽。


普遍意义的卷积

从数学上讲,卷积只不过是一种运算,对于很多没有学过信号处理,自动控制的同学来说各种专业的名词可以不做了解。我们接着继续:

本质上卷积是将二元函数 U(x,y) = f(x)g(y) 卷成一元函数 V(t) ,俗称降维打击。

怎么卷?

考虑到函数 f 和 g 应该地位平等,或者说变量 x 和 y 应该地位平等,一种可取的办法就是沿直线 x+y = t 卷起来:

V(t) = \int_{x+y=t} U(x,y) \,\mathrm{d}x

卷了有什么用?

可以用来做多位数乘法,比如:

\begin{align}42 \times137 &= (2\times10^0+4\times10^1)(7\times10^0+3\times10^1+1\times10^2) \\&= (2\times7)\times10^0 + (2\times3+4\times7)\times10^1+(2\times1+4\times3)\times10^2 + (4\times1)\times10^3 \\&= 14 + 340+1400+4000 \\&= 5754\end{align}

注意第二个等号右边每个括号里的系数构成的序列 (14,34,14,4),实际上就是序列 (2,4) 和 (7,3,1) 的卷积

在乘数不大时这么干显得有点蛋疼,不过要计算很长很长的两个数乘积的话,这种处理方法就能派上用场了,因为你可以用快速傅立叶变换 FFT 来得到卷积,比示例里的硬乘要快。

 

这里有一个不太严格的理解:
(\sum_{n=1}^{\infty}{a_nx^n})(\sum_{n=1}^{\infty}{b_nx^n})=\sum_{n=1}^{\infty}(\sum_{k=1}^{n}a_kb_{n-k})x^n
x^n是“基”,a_n是在这个基上的展开系数。两个多项式乘积的在基上展开的系数就是两个多项式各自在基上展开系数的卷积。
x^n对应着频率不同的\exp(ikt),系数对应着其傅里叶变换。自然就是乘积的傅里叶变换等于傅里叶变换的卷积了。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值