在卷积过程中翻转过滤器背后的直觉是什么?

What is the intuition behind flipping filters during convolution?

我看到,在使用 Theano 的 conv2d 函数时,过滤器被垂直和水平翻转。这是为什么?在卷积神经网络的情况下它重要吗?

因为这就是convolution is defined mathematically. Without the flipping of filter, the operation is called cross-correlation。卷积的好处是它有更好的数学性质

但是在卷积神经网络的上下文中,使用卷积还是互相关并不重要,它们是等价的。这是因为过滤器的权重是在训练期间学习的,即更新它们以最小化成本函数。在使用互相关操作的 CNN 中,学习的过滤器将等于使用卷积操作的 CNN 的翻转学习过滤器(假设两者的训练条件完全相同,即相同的初始化、输入、轮数等.).因此,对于相同的输入,这两个 CNN 的输出将是相同的。

互相关运算稍微更直观,更容易实现(因为没有执行翻转),这可能是 Tensorflow 和 Pytorch 等其他框架使用它而不是实际卷积的原因(尽管他们仍然称其为卷积) ,可能是由于历史原因或在术语上与使用实际卷积的其他框架保持一致)。

补充一下上面的内容post,尽管我们说我们在 CNN 中使用“卷积”操作,但实际上我们使用的是互相关。但是卷积和相关性都会产生不同的结果,我做这个练习是为了实际看到结果的差异。

当我对这个话题进行更多研究时,我发现 CNN 的最开始被认为起源于 Neocognitron 论文,该论文在使用内核操作的同时使用卷积运算,但后来的 CNN 实现众所周知,大多数深度学习库使用相关过滤而不是卷积过滤,我们仍然继续使用卷积神经网络的名称,因为大多数算法的复杂性和性能几乎保持不变。

如果您想了解两者的详细文章和直觉,请看一下:https://towardsdatascience.com/does-cnn-represent-convolutional-neural-networks-or-correlational-neural-networks-76c1625c14bd

如果有帮助请告诉我。 :)