论文:Why do deep convolutional networks generalize so poorly to small image transformations?
CNN深度神经网络虽然在IMAGENET上刷新了记录,甚至超越了人类的识别能力。但是由于神经网络固有的缺陷,只能通过stride=2的conv和pooling实现平移不变性,使得其对尺度不变形没有很好的鲁棒。有时甚至只是图片中一个像素的变化,都会使得识别结果产生巨大的变化。
如上图所示,第一行表示对图片做了平移操作(shift),第二行表示对图片进行了缩放操作(scale),第三行表示姿态变化操作,截取了连续视频中的不同几帧。
从右面的曲线可以看出,神经网络并没有表现出很好的鲁棒性,变化非相关性。
实验验证:
实验中论文使用了3个经典的网络结构,分别为VGG16 ,ResNet50 ,InceptionResNetV2
为了验证网络结构对图片的变化的敏感,随机从ImageNet数据集中进行采样,并且对预测结果进行降序排序。
A图表示了图片对于垂直变换的敏感,B图表示了三种经典网络的锯齿状预测,y轴越低表示网络越鲁棒。可以得出,网络越深,预测结果的锯齿性越大,鲁棒性越差。
A图表示原始的输入图像,B图表示了3种网络不同层的输出特征图。可以从特征图上看出,VGG16对3个输入图片最终都有很好的特征激活点,Resnet50表现出2个特征激活点,InceptionResNetV2 只变现出1个特征激活点。
最终可以得出,随着网络采样深度的增加,网络的平移不变性也越来越差。
原因分析:
上图为ImageNet的“Tibetan terrier”类别,作者对该类别的所有图片进行了标注。绿色的点表示2个眼睛的中心位置,红色的线表示瞳距。第二个图表示了绿色的点的分布。第三个图表示了不同的瞳距和预测结果的关系,表现出了高斯分布,可见并不具备鲁棒性。
数据增强是训练神经网络常用的方法。像InceptionResNetV2 这样下采样45倍的网络将会需要452 = 2025 张图片来覆盖所有的平移变化。如果再考虑旋转和缩放变化,需要的图片量将会呈指数增加。
结论:
- 可以使用sift这种具有尺度不变性的特征
- 在卷积之前,使用pooling操作来增加尺度不变性,而不是stride=2的conv
- 通过集成学习,投票方式来改变这种尺度不变性表现出的差异