一般来说,图像经过小小的平移和变形之后,人类还是信任CNN能够把它们泛化,识别出里面的物体。
归纳偏差 (Inductive Bias) ,是CNN成功的一个关键。卷积和池化的选择,就是为了赋予神经网络一些不变性,避免因为一些小的改变,就丧失了原本的判断。
然而,来自耶路撒冷希伯来大学的两位研究人员发现,一幅图像被平移了几个像素之后,现在的CNN就很容易认不出来。旋转和缩放 ,也是一样。
平移一下就石乐志
团队用测量习得表征 (Learned Representations) 线性度 (Linearity) 的方法,来观察CNN的不变性。
接受考验的CNN选手有三位,VGG-16,ResNet-50以及Inception ResNet-V2。结果——
只是把狗狗下移了一点点,
只是把瓶子放大了一点点,
只是把白熊的姿势换一下,
系统的识别准确率就发生了猛烈的变化。
这就是Inception ResNet-V2给出的答案。面对平移、缩放、旋转这样的无关变化,CNN都可能轻易抛弃原本的判断,无法保持岿然不动。
为了看到它是怎么失败的,研究人员从ImageNet的验证数据集里随机选取200张图片,把它们揉到更大的背景图里面,然后做平移之类的变换。
从Top-5的情况来看,如果移到某一个像素的时候还能够正确判断,而移到下一个像素就错了的话,就在Jaggedness里面加上1。
如果移过了多个像素而Top-5一直都有正确答案的话,就不计数。连续失败也不计数。
Jaggedness越大,表示CNN越不坚定。
统计图上,每一行的色带,表示的是一幅图像的预测结果,而横轴的延伸代表平移的过程。
纯色的色带,表示很稳。
混色的色带,表示不稳。
那么,钟型图上纯色的色带越短,Jaggedness越大,CNN越不坚定。
看上去,VGG16是最稳的,而更加现代化的ResNet50和Inception ResNet-V2,面对同一幅图的简单变换,给出的答案就没有那么统一。
不过,单从正确率来看,还是后面两位选手更优秀一些。
换句话说,VGG16,对得坚定,错得也坚定。
可是,人类需要的或许是正确率又高,判断又坚定的,那种AI。
为何平移就不好了
为什么现在的这些CNN无法兼顾这两项指标?
如果最终用来分类的特征,是表征经过全局池化得来的,那么图像平移应该不会影响到AI的判断。
所以,问题出在哪?
研究人员说,这个逻辑里面,没有考虑到子采样这个操作,现在的CNN里面,这样的步骤有很多很多。
子采样的问题,Simoncelli和同事们也曾经讨论过。
于是,子采样步骤越多,平移不变性越难保持,只有在某些特定的平移之下得以幸存。
比如,在Inception ResNet-V2里面,子采样因子是45。这样一来,只有1/45^2的概率能够保留平移不变性。
平移不变性,还有另外一种比较弱的表现形式,被Simoncelli他们称做“shiftablility”。
耶路撒冷的团队,在这个概念的基础上,证明了只要满足了shiftablility,全局池化就可以保留平移不变性。
曲线救国可以么
即便在子采样的洪流中,CNN难免随波逐流。不过,人类依然可以训练神经网络,做出拥有“不变性”的判断。
首先,这个训练数据集自身,需要对无关变换视而不见。
所以,团队检测了一下ImageNet训练数据集的不变性。
这里,需要给每幅图像手动标上类别,西藏梗、大象、菠萝、贝果以及船桨。
不出所料,研究人员发现ImageNet里面,西藏梗的眼距,以及双眼连线的中点位置,分布都比较集中,不利于平移的训练。
怎么让数据集变得更有不变性?
数据扩增 (Data Augmentation) 是一个思路。不过,这也不是一蹴而就的事。
因为子采样的问题阴魂不散。按照子采样因子是45来计算,每一个样本,都需要45^2=2025个扩增版本。
如果除了平移之外,还要考虑缩放和旋转的话,这个数字还会呈指数增长。
所以,要给CNN培育出坚固的不变性,这个方法可能还是有点困难。
生而为人的骄傲
虽然,现在的ResNet-50和Inception ResNet-V2看上去还有些踌躇,对图像的平移感到无助,但它们识别物体的准确率比以前的技术要好很多了。
当然,这也和ImageNet数据集里,物体在图像中的位置不够多样化,有关。
于是,团队还用了一个位置更加随机的数据集来测试。发现人类的识别不会受到影响,而CNN还是时而疑惑。
论文原文戳我。
本文转自 公众号 量子位