卷积神经网络的“卷积”操作不等于数学上定义的卷积操作

在介绍卷积神经网络CNN的时候,大部分教材在介绍“卷积操作”的时候都与下面这张图类似的说明

卷积神经网络的“卷积”操作不等于数学上定义的卷积操作
这点让人很困惑,因为在数学上,卷积运算是这么定义的
(fg)(t)=0tf(τ)g(tτ)dτ(f * g )(t) = \int_{0}^{t} f(\tau) g(t - \tau)\, d\tau

很明显,在与f(τ)f(\tau)相乘的是g(tτ)g(t-\tau),而不是g(t+τ)g(t+\tau)!而上图的卷积运算并不符合卷积的定义。事实上,卷积神经网络中的“卷积”操作其实是互相关运算(correlation operator),而不是卷积运算(convolution operator)。他们的区别在于,卷积运算相当于把kernel进行上下左右翻转之后,再进行互相关运算。
卷积神经网络的“卷积”操作不等于数学上定义的卷积操作

卷积神经网络的“卷积”操作不等于数学上定义的卷积操作