上面一堆杂乱无章的图片,你能看出是什么吗?但CNN却能很轻松地识别它们。其实,人与机器在这方面的差异,恰恰蕴含着神经网络分类策略背后简单的逻辑。
最近,来自德国的一群学者构造了一个简单模型BagNet,就是为了解答上面的疑惑。该模型可以在ImageNet上实现很高的准确率,甚至超过了AlexNet。文章已经发表在ICLR 2019上。
BagNet模型重要的意义在于,它不仅证明ImageNet比我们想象得要容易得多,还能帮助我们构建一个更具解释性和透明度的图像分类pipeline,从而更好地理解CNN背后的原理。
那么,这个BagNet是用什么构造出来的,它为何如此简单而有神奇?
用古典模型设计神经网络
在深度学习出现以前,图像识别使用的是一种特别简单的方法:定义一组关键视觉特征(“单词”),识别每个视觉特征在图像中存在的频率(“包”),然后根据这些数字对图像进行分类。
举个例子,如何分辨人和鸟,我们定义两个关键视觉特征“人眼”和“羽毛”。如果图像中出现人眼,就把图像是人的“证据”+1;如果出现羽毛,就把图像是鸟的“证据”+1。
这就是特征包模型,在深度学习出现之前,它曾是最先进的方法。但是在深度学习出现以后,它因为性能不佳又被抛弃。
但我们是否能确定今天的CNN与过去的“特征包”使用了两种截然不同的决策策略呢?
为了测试这一点,作者将“特征包”与DNN的高性能结合起来。策略如下:
- 将图像分割成q×q的小块;
- 通过DNN传递patch获得每个patch的类证据;
- 对所有类证据求和,达到图像级决策。
为了用最简单有效的方式实现这一策略,作者采用标准的ResNet-50架构,用1×1卷积替换掉大多数的3×3卷积。
在这种情况下,最后一个卷积层中的隐藏单元只能“看到”图像的一小部分,其感受野远小于图像的整体尺寸。
作者将这种模型结构称之为BagNet-q,其中q代表每个小块的尺寸。
当q=17时,BagNet的性能已经达到与AlexNet相同的水平。当q=33时,top5的准确率能达到87.6%。在加上额外的超参数调整,BagNet还能达到更高的准确率。
以上结果证明:只需使用一组小图的特征即可解决ImageNet问题。对象形状或对象部分之间的关系等远程空间关系对分类结果影响不大,完全可以忽略。
可解释的神经网络BagNet
因为BagNet用到了“特征包”的策略,它的决策也是透明和可解释的。我们可以查看哪个图像特征对于某个特定类判别的作用最大。
上图中,最上面的手指图像被识别成一种鱼,因为这个类别中的大多数图像中,都有渔民用手举起鱼的画面。
同样,我们还能得到一个精确定义的热图,显示图像的哪些部分有助于模型做出判定。
与ResNet-50惊人相似
BagNets的实验结果表明,基于局部图像特征和对象类别之间的弱统计相关性,可以在ImageNet上达到很高的精度。
那么,深度神经网络最强大的能力是否仅来自于对局部特征的处理?
如果这就够了,为什么像ResNet-50这样的标准深度神经网络会学到完全不同的东西?
如果丰富的局部图像特征足以解决图像分类任务,为什么还要让ResNet-50了解更复杂的大尺度关系?
为了验证现代DNN与特征包模型有着类似的策略,作者又用下面的几种“标记”来测试BagNet、ResNet、DenseNet和VGG:
- 决策对图像特征的空间改组是不变的(只能在VGG模型上测试);
- 不同图像部分的修改应该是独立的(对总类证据的影响而言);
- 标准CNN和BagNets产生的错误应该类似;
- 标准CNN和BagNets应该对类似的特征敏感。
经过上面四项实验,作者发现CNN和BagNets之间的行为非常相似。上面的实验证明了BagNets最敏感的图像部分与CNN基本相同。
实际上,BagNets的热图(灵敏度的空间图)比DeepLift更好地预测了DenseNet-169的灵敏度。
人们绕了一圈后才发现,原来这些年的神经网络和并不比过去的特征包在策略上高明多少。
当然,DNN并不完全类似于特征包模型,确实显示出一些偏差。特别是,网络越深,功能越来越大,远程依赖性也越来越大。
因此,更深的神经网络确实改善了特征包模型的性能,但作者认为其核心分类策略并没有真正改变。
总结
总之,这篇论文的结果表明CNN可能遵循极其简单的分类策略。更悲观的说,这表明深度神经网络在过去几年的进步大部分是通过调参取得的,从决策策略上来说,他比古典的特征包模型并没有高明太多。
因为缺乏对DNN的理解使我们无法发展出更好的模型和架构。而德国学者的这篇文章或许对我们深化深入理解神经网络有一定的启发。
“