要回答卷积为何有效,恐怕大家都要去看看这篇论文《Visualizing and Understanding Convolutional Networks》,它将每个卷积层的输出反卷积然后展示出来,让我们知道每一层的卷积到底是学习到了什么特征。这是这篇论文的翻译。然后,我去知乎搜了一下关于卷积网络的理解,这是链接,看第一名的答案即可。
写在前面的一点,滤波器就是权重。而我们以前全连接网络的权重是隐层的结点(m)和上一层的结点(n)组成的矩阵(mn),这就是不同。
简单来说,训练CNN在相当意义上是在训练每一个卷积层的滤波器。让这些滤波器对特定的模式有高的激活,以达到CNN网络的分类或检测等目的。
卷积神经网络的第一个卷积层的滤波器用来检测低阶特征,比如边、角、曲线等。随着卷积层的增加,对应滤波器检测的特征就更加复杂。比如第二个卷积层的输入实际上是第一层的输出,这一层的滤波器是用来接触低阶特征的组合等情况(半圆、四边形)等,如此累积,以检测越来越复杂的特征。
所以,在某种意义上,构建卷积神经网络的任务在于构建这些滤波器。也就是,将这些滤波器变成这样(改变滤波器矩阵的值,也就是Weight)---- 能识别特定的特征。这个过程叫做训练。
在训练开始之时,卷积层的滤波器完全是随机的,他们不会有任何特征激活。把一个空白的滤波器,修改其权重(weights)使他能检测特定的模式,整个过程就像工程的反馈机制。