卷积神经网络 (CNN) 包含卷积层。在诸如Tensorflow和PyTorch等现代深度学习库中,卷积层是通过使用互相关算子而不是卷积算子来实现的。不同之处在于,在卷积中,内核在将其应用于输入之前会被翻转。
例如在《深度学习》一书中,解释如下。
许多机器学习库实现了互相关,但称之为卷积。--- 在机器学习的上下文中,学习算法会在适当的地方学习内核的适当值,因此基于卷积核翻转的算法将学习一个相对于算法学习的内核翻转的内核没有翻转。在机器学习中单独使用卷积也很少见;相反,卷积与其他函数同时使用,并且无论卷积操作是否翻转其内核,这些函数的组合都不会交换。
这是完全有道理的,并且令人信服地论证了为什么不需要实现内核的翻转。
但是为什么 CNN 通常不被称为“互相关神经网络”而不是“卷积神经网络”呢?据我所知,CNN 的第一个具体实现早于上述任何库。这些 CNN 的早期实现是否确实使用了卷积算子,从而得名?还是另有原因?