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

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

在这里插入图片描述
这点让人很困惑,因为在数学上,卷积运算是这么定义的
( f ∗ g ) ( t ) = ∫ 0 t f ( τ ) g ( t − τ )   d τ (f * g )(t) = \int_{0}^{t} f(\tau) g(t - \tau)\, d\tau (fg)(t)=0tf(τ)g(tτ)dτ

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

在这里插入图片描述

posted @ 2020-05-06 20:24  2021年的顺遂平安君  阅读(89)  评论(0编辑  收藏  举报