IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST

这是一篇ICLR在review阶段的文章,特别有意思而且带给我挺大的启发的,文章从一只披着象皮的猫究竟会被识别为大象还是猫这个问题入手,揭示了神经网络根据物体的texture进行识别而非我们以为的根据物体的形状。同时,给予我们启发:如何针对性地去引导神经网络训练以及当神经网络学习到的东西不是我们想要的东西的时候(训练集表现很好而在测试和验证集上面表现不佳),如何进行针对性地调整(可以有意识地抑制那个特征,使网络学习其他新的特征,甚至不让模型只受单个特征的影响,增加其鲁棒性)。

一、实验

1.1 数据

作者准备了6份数据,分别是正常的图片,灰色图,只包含轮廓的,只包含边缘的,只有纹理没有形状,纹理和形状相互矛盾(大象的纹理,猫的形状)。具体(1-5)如下图所示:

IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST_第1张图片

IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST_第2张图片

对于第六份数据(纹理和形状冲突的数据),作者采用Stylized-ImageNet随机地将物体的纹理替换掉,具体可参见:
https://github.com/rgeirhos/Stylized-ImageNet。

2.实验结果分析

2.1形状和纹理的对比实验

IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST_第3张图片

对于前面5份数据,采用原图和灰度图,神经网络都可以取得非常高的准确率,而对于只包含轮廓和只包含边缘的图片,神经网络的预测准确率则显著降低。更有意思的是,对于只包含纹理的图片,神经网络取得特别高的准确率。因而不难推断出,神经网络在识别中,主要是参考纹理信息而不是形状信息。

2.2在文章【1】中,作者让模型只学习局部的特征信息而不是全图并取得很好的效果证明了神经网络在识别时候主要考虑了纹理信息而非形状信息。因此,作者做了第二个实验,将原图中的纹理信息采用风格转移的方法替换成其他信息,然后用于训练模型。

IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST_第4张图片

注:上表IN---SIN代表在原始图片上训练,在去除纹理的数据上面测试

从上表的第一行可以看出,在原始图片上训练的模型不适应去除纹理的图片,而使用去除纹理的图片进行训练和测试效果会差于使用原始图片进行训练和测试,这说明纹理信息在图像识别中确实起到了一定的作用,去除了纹理信息会提高模型识别的难度。最后,当我们使用去除纹理的图片进行训练而在原图进行测试的时候,效果比在去除纹理的图片上面效果好。

后面三行的实验采用的是【1】的网络结构,其主要特征是限制模型的感受野,从而让模型无法学习到空间的信息,其对应的感受野分别是33*33,17*17,9*9,对于训练原始的图片,其结果测试误差跟没有加上感受野限制的误差差别不大,从而说明纹理信息起到主导作用,而对应去除掉纹理信息的图片,其测试结果下降十分明显,说明形状信息起到主要的作用,证明了SIN的模型确实在学习形状的信息而不是纹理的信息。

2.3数据增强的实验

IMAGENET-TRAINED CNNS ARE BIASED TOWARDS TEXTURE; INCREASING SHAPE BIAS IMPROVES ACCURACY AND ROBUST_第5张图片

作者把去掉纹理的数据和原图一起放进去模型中进行训练,最后用原图进行finetune,发现这种方法可以提高模型的性能。

【1】Approximating CNNs with Bag-of-local-Features models works surprisingly well on ImageNet
 

你可能感兴趣的:(深度学习,cv)