在深度学习(机器学习)中,卷积实际上是信号处理中的自相关操作(cross-correlation),而不是数学上的卷积操作(Convonlution)。
对于自相关函数,具体定义如下:
设 x(t)、 y(t) 为连续信号,则 x(t)、 y(t) 的互相关函数为
Rxy(τ)=∫∞−∞x(t)y(t−τ)dtRyx(τ)=∫∞−∞y(t)x(t−τ)dt
而对于数学中的卷积,定义如下
y(τ)=∫∞−∞x(p)h(τ−p)dt
深度学习中,卷积其实要把卷积核翻转一下的,其中左边是信号中互相关的核,右边是数学中卷积的核。而深度学习中的卷积运算就是省略了反转操作。对应的就是MATLAB里的flip()函数。
导致深度学习中卷积操作和数学中卷积操作不同的原因是在图像处理里面,通常用滤波器进行滤波处理,而这些滤波器通常都是对称的,即翻转操作后和翻转之前是一样的。因此在图像处理中,一般取消翻转操作,直接进行运算。而深度学习则沿用图像处理中这套理论。