只是平移了一下图像,为什么CNN就识别不出里面的物体了?

方栗子 发自 凹非寺

量子位 出品 | 公众号 QbitAI

一般来说,图像经过小小的平移和变形之后,人类还是信任CNN能够把它们泛化,识别出里面的物体。

归纳偏差 (Inductive Bias) ,是CNN成功的一个关键。卷积和池化的选择,就是为了富裕神经网络一些不变性,避免因为一些小的改变,就丧失了原本的判断。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

然而,来自耶路撒冷希伯来大学的两位研究人员发现,一幅图像被平移了几个像素之后,现在的CNN就很容易认不出来。旋转和缩放 ,也是一样。

平移一下就石乐志

团队用测量习得表征 (Learned Representations) 线性度 (Linearity) 的方法,来观察CNN的不变性。

接受考验的CNN选手有三位,VGG-16,ResNet-50以及Inception ResNet-V2。结果——

只是把狗狗下移了一点点,

只是把瓶子放大了一点点,

只是把白熊的姿势换一下,

系统的识别准确率就发生了猛烈的变化。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

这就是Inception ResNet-V2给出的答案。面对平移、缩放、旋转这样的无关变化,CNN都可能轻易抛弃原本的判断,无法保持岿然不动。

为了看到它是怎么失败的,研究人员从ImageNet的验证数据集里随机选取200张图片,把它们揉到更大的背景图里面,然后做平移之类的变换。

从Top-5的情况来看,如果移到某一个像素的时候还能够正确判断,而移到下一个像素就错了的话,就在Jaggedness里面加上1。

如果移过了多个像素而Top-5一直都有正确答案的话,就不计数。连续失败也不计数。

Jaggedness越大,表示CNN越不坚定。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

统计图上,每一行的色带,表示的是一幅图像的预测结果,而横轴的延伸代表平移的过程。

纯色的色带,表示很稳。

混色的色带,表示不稳。

那么,钟型图上纯色的色带越短,Jaggedness越大,CNN越不坚定。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

看上去,VGG16是最稳的,而更加现代化的ResNet50和Inception ResNet-V2,面对同一幅图的简单变换,给出的答案就没有那么统一。

不过,单从正确率来看,还是后面两位选手更优秀一些。

换句话说,VGG16,对得坚定,错得也坚定。

可是,人类需要的或许是正确率又高,判断又坚定的,那种AI。

为何平移就不好了

为什么现在的这些CNN无法兼顾这两项指标?

如果最终用来分类的特征,是表征经过全局池化得来的,那么图像平移应该不会影响到AI的判断。

所以,问题出在哪?

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

研究人员说,这个逻辑里面,没有考虑到子采样这个操作,现在的CNN里面,这样的步骤有很多很多。

子采样的问题,Simoncelli和同事们也曾经讨论过。

于是,子采样步骤越多,平移不变性越难保持,只有在某些特定的平移之下得以幸存。

比如,在Inception ResNet-V2里面,子采样因子是45。这样一来,只有1/45^2的概率能够保留平移不变性。

平移不变性,还有另外一种比较弱的表现形式,被Simoncelli他们称做“shiftablility”。

耶路撒冷的团队,在这个概念的基础上,证明了只要满足了shiftablility,全局池化就可以保留平移不变性

曲线救国可以么

即便在子采样的洪流中,CNN难免随波逐流。不过,人类依然可以训练神经网络,做出拥有“不变性”的判断。

首先,这个训练数据集自身,需要对无关变换视而不见。

所以,团队检测了一下ImageNet训练数据集的不变性

这里,需要给每幅图像手动标上类别,西藏梗、大象、菠萝、贝果以及船桨。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

不出所料,研究人员发现ImageNet里面,西藏梗的眼距,以及双眼连线的中点位置,分布都比较集中,不利于平移的训练。

怎么让数据集变得更有不变性

数据扩增 (Data Augmentation) 是一个思路。不过,这也不是一蹴而就的事。

因为子采样的问题阴魂不散。按照子采样因子是45来计算,每一个样本,都需要45^2=2025个扩增版本。

如果除了平移之外,还要考虑缩放和旋转的话,这个数字还会呈指数增长。

所以,要给CNN培育出坚固的不变性,这个方法可能还是有点困难。

生而为人的骄傲

虽然,现在的ResNet-50和Inception ResNet-V2看上去还有些踌躇,对图像的平移感到无助,但它们识别物体的准确率比以前的技术要好很多了。

当然,这也和ImageNet数据集里,物体在图像中的位置不够多样化,有关。

只是平移了一下图像,为什么CNN就识别不出里面的物体了?

于是,团队还用了一个位置更加随机的数据集来测试。发现人类的识别不会受到影响,而CNN还是时而疑惑。

所以,作为人类的你,有没有开心一秒?

论文传送门:

https://arxiv.org/pdf/1805.12177.pdf

版权所有,未经授权不得以任何形式转载及使用,违者必究。