AI 图像识别:人类看的是形状,算法看的是纹理

软件

2019-07-16 15:00

本文来自 36 氪 编译团队「神译局」,译者为小兵手,爱范儿经授权发布。

图片中的动物轮廓是猫,但是猫披着大象皮肤纹理,将图片交给人识别,人会说是猫,如果给计算机视觉算法处理,它会说是大象。德国研究人员认为:人看的是形状,计算机看的是纹理。这一发现相当有趣,但它证明计算机算法离人类视觉还有很远距离。

当你看着一张猫的照片,轻松就能知道猫有没有条纹,不管照片是黑白照,有斑点,还是磨损或者褪色了,都能轻松识别。不论宠物蜷缩在枕头背后;或者跳到工作台上,拍照时留下一片朦胧,你都能轻松识别。如果用机器视觉系统(用深度神经网络驱动)识别,准确率甚至比人还要高,但是当图片稍微新奇一点,或者有噪点、条纹,机器视觉系统就会犯傻了。

为什么会这样呢?德国研究团队给出一个原因,这个原因出乎意料:人类会关注图中对象的形状,深度学习计算机系统所用的算法不一样,它会研究对象的纹理。

德国的发现告诉我们人类与机器「思考」问题时有着明显区别,也许还能揭示人类视觉进化的秘密。

有大象皮肤的猫和时钟做的飞机

深度学习算法是怎样「工作」的呢?首先人类向算法展示大量图片,有的图片有猫,有的没有。算法从图片中找到「特定模式」,然后用模式来做出判断,看看面对之前从未见过的图片应该贴怎样的标签。

神经网络架构是根据人类视觉系统开发的,网络各层连接在一起,从图片中提取抽象特点。神经网络系统通过一系列联系得出正确答案,不过整个处理过程十分神秘,人类往往只能在事实形成之后再解释这个神秘的过程。

美国俄勒冈州立大学计算机科学家 Thomas Dietterich 说:「我们正在努力,想搞清到底是什么让深度学习计算机视觉算法走向成功,又是什么让它变得脆弱。」

怎样做?研究人员修改图片,欺骗神经网络,看看会发生什么事。研究人员发现,即使只是小小的修改,系统也会给出完全错误的答案,当修改幅度很大时,系统甚至无法给图片贴标签。还有一些研究人员追溯网络,查看单个神经元会对图像做出怎样的反应,理解系统学到了什么。

德国图宾根大学(University of Tübingen)科学家 Geirhos 领导的团队采用独特方法进行研究。去年,团队发表报告称,他们用特殊噪点干扰图像,给图像降级,然后用图像训练神经网络,研究发现,如果将新图像交给系统处理,这些图像被人扭曲过(相同的扭曲),在识别扭曲图像时,系统的表现比人好。不过如果图像扭曲的方式稍有不同,神经网络就无能为力了,即使在人眼看来图像的扭曲方式并无不同,算法也会犯错。

对于这样的结果如何解释?研究人员深入思考:到底是什么发生了变化,即使只是加入很少的噪点,也会发生如此大的变化?答案是纹理。当你在很长的时间段内添加许多噪点,图中对象的形状基本不会受到影响;不过即使只是添加少量噪点,局部位置的架构也会快速扭曲。研究人员想出一个妙招,对人类、深度学习系统处理图片的方式进行测试。

研究人员故意制作存在矛盾的图片,也就是说将一种动物的形状与另一种动物的纹理拼在一起,制作成图片。例如,图片中的动物轮廓是猫,但是猫披着大象纹理;或者是一头熊,但它们是由铝罐组成的;又或者轮廓是飞机,但飞机是由重叠的钟面组成的。研究人员制作几百张这样的拼凑图片,然后给它们标上标签,比如猫、熊、飞机。用 4 种不同的分类算法测试,最终它们给出的答案是大象、铝罐、钟,由此看出算法关注的是纹理。

Columbia 大学计算机神经科学家 Nikolaus Kriegeskorte 评论说:「这一发现改变了我们对深度前向神经网络视觉识别技术的认知。」

乍一看,AI 偏爱纹理而非形状有点奇怪,但细细深思却是有理的。Kriegeskorte 说:「你可以将纹理视为精密的形状。」对于算法系统来说精密的尺寸更容易把握:包含纹理信息的像素数量远远超过包含对象边界的像素数量,网络的第一步就是检测局部特征,比如线条,边缘。多伦多约克大学计算机视觉科学家 John Tsotsos 指出:「线段组按相同的方式排列,这就是纹理。」

Geirhos 的研究证明,凭借局部特征,神经网络足以分辨图像。

另有科学家开发一套深度学习系统,它的运行很像深度学习出现之前的分类算法 —— 像一个特征包。

算法将图像分成为小块,接下来,它不会将信息逐步融合,变成抽象高级特征,而是给每一小块下一个决定,比如这块包含自行车、那块包含鸟。再接下来,算法将决定集合起来,判断图中是什么,比如有更多小块包含自行车线索,所以图中对象是自行车。算法不会考虑小块之间的空间关系。结果证明,在识别对象时系统的精准度很高。

研究人员 Wieland Brendel 说:「这一发现挑战了我们之前的假定,我们之前认为深度学习的行为方式与旧模型完全不同。很明显,新模型有很大飞跃,但飞跃的幅度没有大家预料的那么大。」

约克大学、多伦多大学博士后研究员 Amir Rosenfeld 认为,网络应该做什么,它实际做了什么,二者之间仍有很大差异。

Brendel 持有相似观点。他说,我们很容易就会假定神经网络按人类的方式完成任务,忘了还有其它方式。

向人类视觉靠近

目前的深度学习技术可以将局部特征(比如纹理)与整体模式(比如形状)结合 在一起。

Columbia 大学计算机神经科学家 Nikolaus Kriegeskorte 说:「在这些论文中有一点让人感到稍稍有些奇怪,架构虽然允许这样做,不过如果你训练神经网络时只是希望它分辨标准图像,它不会自动整合,这点在论文中得到明显证明。」

如果强迫模型忽视纹理,又会怎样呢?Geirhos 想找到答案。团队将训练分类算法的图片拿出来,用不同的方式给它们「粉刷」,将实用纹理信息剔除,然后再用新图片重新训练深度学习模型,系统转而依赖更全局的模式,像人类一样更加偏爱形状。

当算法这样行动时,分辨噪点图像的能力同样更强了,虽然在此之前研究人员并没有专门训练算法,让它识别扭曲图像。

对于人类来说,可能自然而然也存在这样的「偏爱」,比如偏爱形状,因为当我们看到一件东西,想确定它是什么时,靠形状判断是最有效的方式,即使环境中有许多干扰,同样如此。人类生活在 3D 世界,可以从多个角度观察,我们还可以借助其它感知(比如触觉)来识别对象。所以说,人类偏爱形状胜过纹理完全合理。

德国图宾根大学研究人员 Felix Wichmann 认为,这项研究告诉我们数据产生的偏见和影响远比我们认为的大得多。之前研究人员也曾发现相同的问题,例如,在面部识别程序、自动招聘算法及其它神经网络中,模型过于重视意料之外的特征,因为训练算法所用的数据存在根深蒂固的偏见。想将这种不想要的偏见从算法决策机制中剔除相当困难,尽管如此,Wichmann 认为新研究证明剔除还是有可能的。

虽然 Geirhos 的模型专注于形状,不过如果图像中噪点过多,或者特定像素发生变化,模型仍然会失败。由此可以证明,计算机算法离人类视觉还有很远距离。在人类大脑中,可能还有一些重要机制没有在算法中体现出来。Wichmann 认为,在某些情况下,关注数据集可能更重要。

多伦多大学计算机科学家 Sanja Fidler 认同此观点,她说:「我们要设计更聪明的数据和更聪明的任务。」她和同事正在研究一个问题:如何给神经网络分派第二任务,通过第二任务让它在完成主任务时有更好表现。受到 Geirhos 的启发,最近她们对图像分类算法进行训练,不只让算法识别对象本身,还让它识别对象轮廓(或者形状)中的像素。

结果证明,执行常规对象识别任务时,神经网络越来越好,自动变得越来越好。Fidler 指出:「如果指派单一任务,你会特别关注某些东西,对其它视而不见。如果分派多个任务,也许能感知更多。算法也是一样的。」当算法执行多个任务时,它会关注不同的信息,就像 Geirhos 所做的「形状纹理」实验一样。

美国俄勒冈州立大学计算机科学家 Thomas Dietterich 认为:「这项研究是一个激动人心的突破,深度学习到底发生了什么?我们对此有了更深的理解,也许研究还能帮助我们突破极限,看到更多东西。正因如此,我很喜欢这些论文。」

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中