专栏首页AI算法与图像处理反常识!深度神经网络并不是通过形状来识别物体的

反常识!深度神经网络并不是通过形状来识别物体的

转载自:AI公园 作者:Robert Geirhos 编译:ronghuaiyang

导读

和人类不同,AI物体识别靠的是小的细节,而不是图像的边界,但是总是有办法来弥补这个差别的!

看看下面的图片,你看到了什么动物?

在上面的图片中,你可能很容易就能认出一只猫。下面是一个顶尖的深度学习算法所看到的:一头“大象”

这个故事是关于为什么人工神经网络在人类看到猫的地方看到大象。此外,这是关于我们如何看待深度神经网络中的物体识别的范式转变——以及我们如何利用这一视角来推进神经网络。这是基于我们最近在ICLR 2019(一个重要的深度学习会议)上发表的论文。

神经网络如何识别猫?一个被广泛接受的答案是:通过检测它的形状。这个假说的证据来自可视化技术DeconvNet(下面的例子),这表明在不同的处理阶段(称为层),网络在一个图像寻求识别越来越大的模式,从第一层简单的边缘和轮廓到更复杂的形状,如汽车轮子,直到整个物体,比如说一辆车,很容易被检测到。

神经网络识别出的不同形状:从早期阶段的小型模式到更复杂的形状(汽车轮子,第三层)最后对象(汽车、第5层)

这种直观的解释已经进入了常识的状态。现代深度学习经典的教科书如Ian Goodfellow的“Deep Learning”(显式引用shape-based可视化技术)当解释深度学习是如何工作的:

“该网络获得与每个类别相关的形状类型的复杂知识。[…] 高级单元似乎可以学习自然图像中出现的形状的表征,比如人脸、人体、动物、自然场景、建筑和汽车。”

但是有一个问题:一些最重要的和广泛使用的可视化技术,包括DeconvNet都被误导了:他们不是揭示网络在图像中找什么,他们仅仅是对图像的部分进行重建,也就是说,那些很酷的人类可解释性可视化和网络是如何做决定的其实没什么关系。

这几乎没有为形状假说留下任何证据。我们是否需要修正我们对神经网络如何识别物体的看法呢?

如果形状假说不是唯一的解释呢?除了“形状”之外,物体通常还有或多或少与众不同的“颜色”、“大小”和“纹理”。所有这些因素都可以利用神经网络来识别。虽然颜色和尺寸通常不是特定物体类别所独有的,但如果我们观察小区域,几乎所有物体都具有类似的纹理元素——甚至汽车,例如,轮胎轮廓或金属涂层。

事实上,我们知道神经网络碰巧有非常好的纹理表示,不需要经过训练就有了。例如,在做 style transfer时,这一点就很明显了。在这一个非常牛逼的图像建模技术中,使用深度神经网络从一张图像中提取纹理信息,例如绘画风格。然后将这种样式应用于第二幅图像,使人们能够以著名画家的风格“绘制”照片。

左:任意照片,中:style=纹理图像(梵高的《星夜》),右:用当前风格绘制出来的照片

神经网络在只接受物体识别训练的情况下,仍能获得如此强大的图像纹理表示,这一事实表明,两者之间有着更深层次的联系。这是我们所说的“纹理假说”的第一个证据:纹理,而不是物体的形状,是人工智能物体识别中最重要的方面。

神经网络如何分类图像:基于形状(通常假设)或纹理?为了解决这个争论,我想出了一个简单的实验来找出哪个解释更可信。实验是基于如下图所示的图像,其中的形状和纹理为截然不同的物体类别提供了证据:

大象纹理的猫|时钟纹理的汽车|瓶子纹理的熊

在这三个示例图像中,纹理和形状不再属于同一类别。我们用风格转换来创造它们:如果输入的是一张大象皮肤的照片,而不是一幅画,那么用梵高风格的照片来“画”一只猫也可以用大象的纹理来创造一只猫。

使用这样的图像,我们现在可以通过观察来自深度神经网络的分类决策来研究形状或纹理偏差(以及人类的比较)。考虑一下这个类比:我们想知道某人是说阿拉伯语还是汉语,但我们不被允许和他们交谈。我们能做什么?一种可能是拿一张纸,用阿拉伯语写“向左走”,在它旁边用汉语写“向右走”,然后简单地观察这个人会向右走还是向左走。类似地,如果我们给深度神经网络输入一张形状和纹理冲突的图像,我们可以通过观察是神经网络是利用形状还是纹理识别的物体(即,是否它认为大象纹理的猫是一只猫还是一只大象),来找出神经网络说的是哪种“语言”。

这正是我们所做的。我们进行了一系列包括近100名人类观察者和许多广泛使用的深度神经网络(AlexNet, VGG-16, GoogLeNet, ResNet-50, ResNet-152, DenseNet-121, SqueezeNet1_1)在内的9个实验,向他们展示了数百幅形状和纹理冲突的图像。结果不容置疑:我们发现了支持纹理解释的惊人证据!带象皮纹理的猫对DNN来说是大象,对人类来说仍然是猫。一辆带有时钟纹理的汽车对DNN来说就是时钟,熊具有瓶子的表面特征就被识别为一个瓶子。目前用于物体识别的深度学习技术主要依赖于纹理,而不是物体的形状。

下面是ResNet-50的一个结果,这是一个常用的深度神经网络,显示了它的前三个“猜测”(分类决策)的百分比,如下图所示:

正如你所看到的,有象皮的猫是根据纹理来分类的,而不是根据它的形状来分类的。目前的人工智能物体识别似乎与我们之前设想的有很大不同,与人类识别物体的方式也有根本不同。

我们能做些什么吗?我们能让人工智能物体识别更像人类吗?我们能教它使用形状而不是纹理吗?

答案是肯定的。深度神经网络,当学习分类物体时,利用任何有用的信息。在标准的图像中,纹理揭示了很多关于物体身份的信息,因此可能根本不需要学习很多关于对物体形状的知识。如果轮胎的轮廓和光滑的表面已经暴露了物体的身份,为什么还要检查形状是否匹配呢?这就是为什么我们设计了一种新的方法来教神经网络专注于形状而不是纹理,希望消除它们的纹理偏见。再次使用风格迁移,可以将图像的原始纹理替换为任意不同的纹理(参见下图中的示例)。在生成的图像中,纹理不再提供信息,因此物体的形状是惟一有用的信息。如果一个深度神经网络想要从这个新的训练数据集中对物体进行分类,它现在需要学习形状。

左:同时具有纹理和形状信息的普通图像|右:十个不同的任意纹理示例,但物体形状相同。

在对成千上万张具有任意纹理的图像进行深度神经网络训练后,我们发现它实际上获得了形状偏好,而不是对纹理的偏好!一只有着大象皮的猫现在被这个基于形状的新网络视为一只猫。此外,还有一些意外的好处。在识别标准图像和定位图像中的目标方面,该网络突然变得比正常训练的同类网络更好。强调类人的、基于形状的表示是多么有用。然而,我们最令人惊讶的发现是,它学会了如何处理带噪声的图像(在现实世界中,这可能是雨雪后面的物体)—而且是前从未见过任何这些噪音模式!通过简单地关注物体的形状而不是容易扭曲的纹理,这个基于形状的网络是第一个接近一般的,人类水平的噪声鲁棒性的深度神经网络。

在人类视觉感知和人工智能的十字路口,灵感可以来自这两个领域。我们利用人类视觉系统的知识及其对形状的偏好来更好地理解深度神经网络,我们发现它们主要使用纹理来分类物体。这使得网络的创建在许多不同的任务上更接近健壮的、类人的性能。展望未来,如果这个网络更准确地预测当我们观察物体的时候,大脑中的神经元是如何“fire”的,这对更好地理解人类视觉感知是非常有用的,在这个真正激动人心的时代,来自人类的视觉的灵感有潜力改善当今人工智能技术,人工智能一样有能力推动今天的视觉科学!

本文分享自微信公众号 - AI算法与图像处理(AI_study)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用深度学习来实现超分辨率的介绍

    超分辨率是从给定的低分辨率(LR)图像中恢复高分辨率(HR)图像的过程。由于较小的空间分辨率(即大小)或退化的结果(如模糊),图像可能具有“较低的分辨率”。我们...

    AI算法与图像处理
  • 图解自监督学习,人工智能蛋糕中最大的一块

    如果人工智能是一块蛋糕,那么蛋糕的大部分是自监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习。

    AI算法与图像处理
  • 精准生成Fake人脸!Amazon全新GAN模型给你全方位无死角美颜

    Amazon One团队最近提出了一个可以对生成的图像进行显式属性控制的GAN训练框架,能够通过设置确切的属性来控制生成的图像,如年龄、姿势、表情等。

    AI算法与图像处理
  • 进击的TensorFlow

    用户1594945
  • 微软开源计算机视觉专题库,含分类、检测、分割、关键点、跟踪、动作识别等主流方向

    微软在计算机视觉研究领域一直非常活跃,尤其是国内的微软亚洲研究院诞生了诸如残差网络(ResNet)、Faster RCNN、高分辨率网络(HRNet)等影响巨大...

    CV君
  • 使用TensorFlow实现神经网络的介绍

    介绍 如果您一直在追踪数据科学/机器学习,您将不会错过深度学习和神经网络周围的动态。组织正在寻找具有深度学习技能的人,无论他们在哪里。从竞争开始到开放采购项目和...

    首席架构师智库
  • 【相机标定篇】halcon自标定(3)

    在项目中,偶尔会遇到由于产品形状、拍摄位置等原因导致标定板很难放置的情况,此时可以考虑使用halcon自标定算法来标定相机。由于自标定可以在不使用用标定板情况下...

    threeQing
  • R编程之路_数据汇总(2)

    这个函数的使用格式为:apply(X,MARGIN, FUN, ...)。它应用的数据类型是数组或矩阵,返回值类型由FUN函数结果的长度确定。

    西游东行
  • 区块链101:区块链技术是如何工作的?

    正如我们的指南中所说的“区块链技术是什么?”有三种主要的技术可以组合成区块链。没有一个是新的。相反,它是他们的业务流程和应用程序。 这些技术包括:1)私有密钥加...

    首席架构师智库
  • BTA | 量子链帅初:区块链的开发很漫长,技术突破要有十年心理预期

    区块链大本营

扫码关注云+社区

领取腾讯云代金券