选自medium,作者:Robert Geirhos,机器之心编译,参与:Geek AI、张倩。

神经网络识别物体依赖的是形状还是其他表征?一直以来,人们普遍认为答案是前者,但本文中的研究者通过实验颠覆了这种「常识」。

看看下面的这幅图片,你看到了什么?

你可能会很轻易地分辨出上图中的猫。然而,最顶尖的深度学习算法却认为上图中的动物是一只大象!

本文将会讨论为什么人工神经网络会将人类看到的猫识别为大象。此外还将讨论「如何看待深度神经网络物体识别任务中的范式转换」,以及如何利用这种视角来改进神经网络。本文是基于最近提交给 ICLR 的论文——《ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness》撰写的。

神经网络会如何识别一只猫呢?一个人们普遍接受的答案是:通过检测它的形状。这种假设的证据来源于像 DeconvNet(《Visualizing and Understanding Convolutional Networks》)这样的可视化技术。这种技术表明,在不同的处理阶段(被称之为层),网络试图识别一张图像中越来越大的图案,从第一层中简单的边缘和轮廓到更复杂的形状(如汽车轮子),直到轻松识别出该对象(车)。

神经网络识别出的不同形状:从早期处理阶段的小图案(第一层和第二层)到更复杂的形状(第三层中的汽车车轮),再到最后的物体(第五层的汽车)。图源:Kriegeskorte (2015) 。

这种直观的解释已经成为了一种常识。现代的深度学习教科书(如 Ian Goodfellow 的经典著作《深度学习》),在解释深度学习如何工作时,明确提到了基于形状的可视化技术,其他的研究人员也是如此(例如,Nikolaus Kriegeskorte 在《Deep neural networks: a new framework for modelling biological vision and brain information processing》第九页中所述)。

网络习得了与每个类别相关联的各种形状的复杂知识。

高级单元似乎可以学习到自然图像中出现的形状的表征,如人脸、人体、动物、自然场景、建筑和汽车。

但是这种说法存在一个问题:一些包括 DeconvNet 在内的最重要的和广泛使用的可视化技术,最近被证明具有误导性(《A Theoretical Explanation for Perplexing Behaviors of Backpropagation-based Visualizations》):它们仅仅是重建图像的组成部分,而没有揭示神经网络在一张图像中寻找到的是什么—也就是说,那些漂亮的可以被人类解释的可视化结果与网络如何做出一个决策的关系并不大。

并没有很多证据能够支持这种形状假设。那么,我们是否需要修正一下对于「神经网络如何识别物体」这一问题的看法?

如果形状假设不是唯一的解释呢?除了形状,物体通常还有或多或少与众不同的颜色、大小和纹理等特征。所有这些因素都可以被神经网络用来识别目标。虽然颜色和大小通常不是特定对象类别所特有的,但如果我们观察小区域,几乎所有对象都有类似于纹理的元素(甚至是汽车,其侧面有轮胎,外壳是金属)。

事实上,我们知道神经网络刚好有一个令人惊奇的纹理表征功能(即使该网络从来没有被训练过)。例如,在风格迁移问题中,我们就可以很明显地看到这一点。在这种如此令人着迷的图像建模技术中,深度神经网络被用来从一幅图像中提取纹理信息(如绘画风格)。这种风格随后会被应用在第二幅图像上,让人们能够「画」一张与著名画家风格相同的画。你可以通过下面的链接自己尝试一下:https://deepart.io

左:任意图片。中:梵高的《星月夜》纹理图像。右:通过深度神经网络将梵高的《星月夜》风格应用于左图绘制出的图片。

尽管这里用到的神经网络只被训练用于物体识别,但它却能获得如此强大的图像纹理表征能力,这一事实表明,两者之间存在更深层次的联系。这是支撑我们所说的「纹理假设」的第一个证据:人工智能物体识别过程中最重要的因素不是形状,而是纹理。

神经网络是如何分类图像的呢?是基于形状(通常的假设)还是基于纹理?为了平息这一争论,本文作者做了一个简单的实验来探究哪种解释更合理。这个实验是基于如下所示的图像,图像中同一个物体的形状和纹理明显属于不同的类别:

带有大象的纹理的猫 | 带有钟表纹理的汽车 | 带有水瓶纹理的熊

以上三个示例的形状和纹理从属于不同的类别。作者用风格迁移技术创造了它们:如果输入的是一张大象皮肤的照片,而不是一幅画,那么上面提到的技术也可以用来创造一只带有大象纹理的猫的图像。

使用这些图像,现在可以通过观察深度神经网络的分类决策(并且和人类进行比较)来研究形状/纹理偏好。打个比方:在不能与某人交谈的情况下,我们想知道 TA 懂阿拉伯语还是汉语,那么该怎么做?一种可能的办法是拿一张纸,用阿拉伯语写「向左走」,在旁边用中文写「向右走」,然后观察这个人会向右走还是向左走。类似地,如果向神经网络输入一个形状和纹理冲突的图像(如猫的形状,象的皮肤),就可以弄清楚它在识别图像时利用的是形状还是纹理。

作者利用上述方法进行了 9 个实验,涉及大约 100 名人类观察者和许多被广泛使用的深度神经网络(AlexNet、VGG-16、GoogLeNet、ResNet-50、ResNet-152、DenseNet-121、SqueezeNet1_1),向他们展示了数百幅形状和纹理相冲突的图像。实验结果非常清楚:他们发现了支持纹理解释的明显证据!一只带有象皮纹理的猫被深度神经网络判断为大象,但对人类来说仍然是猫。带有时钟纹理的汽车被深度神经网络判断为时钟,带有水瓶表面纹理的熊被深度神经网络判断为水瓶。该实验说明:目前用于物体识别的深度学习技术主要依赖纹理,而不是物体形状。

下面是使用 ResNet-50 得到的一个典型的示例结果,ResNet-50 是一种常用的深度神经网络。图像下方显示出了前三位「猜测」(分类决策)百分比:

如图所示,神经网络根据纹理(而不是形状)对带有象皮纹理的猫进行分类。这一实验结果似乎与我们之前的常识大不相同,也与人类识别对象的方式存在着根本差异。

对此,我们能做些什么呢?我们能让人工智能的物体识别更接近人类吗?我们能教它利用形状而不是纹理识别物体吗?

答案是肯定的。深度神经网络在学习物体分类时会利用任何有用的信息。在标准图像中,纹理揭示了很多关于物体特征的信息,因此可能根本不需要了解很多关于物体形状的信息。如果轮胎的轮廓和光滑的表面已经能够让网络识别出该物体,为什么还要不厌其烦地检查形状是否匹配呢?为了回答这个问题,作者设计了一种新的方法,使得神经网络重点关注形状而不是纹理,希望消除它们的纹理偏好。此处又使用了风格迁移技术,它可以将图像的原始纹理替换为任意不同的纹理(参见下图中的示例)。在生成的图像中,纹理不再提供信息,因此物体的形状是剩下的唯一有用信息。如果深度神经网络想要利用新的训练数据集学会对物体进行分类,它需要学习形状。

左:带有纹理和形状信息的常规图像 | 右:十个纹理不同但形状形同的物体示例

在利用成千上万带有任意纹理的图像训练了深度神经网络之后,作者发现它确实学到了形状偏好,而不是纹理偏好!带有象皮纹理的猫现在被这个基于形状的新网络视为猫。此外还有一些意外收获:在识别标准图像和对图像中的物体进行定位的问题中,该网络突然获得了比经过正常训练的同类网络更好的性能;这说明了接近人类的、基于形状的表征是多么有用。然而,最令人惊讶的发现是,它学会了如何处理带噪声的图像(如现实世界中一层雨雪前景后面的物体),而该网络以前从未接触过这些带噪声的模式!这种基于形状的神经网络通过直接关注物体的形状而不是容易失真的纹理,成为了第一个接近一般人类水平的对噪声具有鲁棒性的深度神经网络。

在人类视觉感知和人工智能的十字路口,研究灵感可以同时来自这两个领域。作者利用人类视觉系统及其对形状的偏好来更好地理解深层神经网络,了解到它们主要使用纹理来对物体进行分类。这促使他们创建了一个在许多不同的任务上更鲁棒的网络,该网络性能更加接近人类。展望未来,如果这个网络能更准确地预测「人类观察物体时大脑神经元的运作方式」,这样的发现将可能非常有用,帮助我们能更好地理解人类的视觉感知能力。因此,在这个激动人心的时代,正如人工智能可以推动今天的视觉科学的发展,来自人类视觉系统的灵感也有可能会促进当今的人工智能技术的发展!

论文:ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness*

论文链接:https://arxiv.org/abs/1811.12231

摘要:通常,人们认为卷积神经网络是通过学习越来越复杂的形状表征来识别物体。最近的一些研究似乎说明了图像纹理具有更重要的作用。在本文中,作者通过使用带有「纹理-形状」冲突的图像对卷积神经网络和人类观察者进行评估,对两个相互矛盾的假设进行了定量测试。研究发现,在 ImageNet 上训练的卷积神经网络十分倾向于识别纹理而非形状,这与人类识别物体的方式存在本质区别,揭示了卷积神经网络完全不同于人类的分类策略。接着,作者说明了,在 ImageNet 上学习到基于纹理的表征的相同的标准架构(ResNet-50),在「Stylized-ImageNet」(ImageNet 的风格迁移版本)上进行训练时,能够学到基于形状的表征。在实验条件控制良好的心理物理实验室的环境下(9 个实验,共包含在 97 名被试上进行的 48,560 次心理物理试验),研究人员得到了更加接近人类行为的网络。而且还有一些意外收获,例如,基于形状的表征能够提升目标检测性能,对于广泛的图像失真问题有前所未有的鲁棒性,凸显了基于形状的表征的优势。

智能判断图片中是否存在某物体_如果给猫披上象皮,神经网络将作何判断?相关推荐

  1. 智能判断图片中是否存在某物体_智能家居组件漫谈——人体传感器

    人体传感器是智能家居中用的最多的组件之一,也是布置起来难度最大的组件,本文从原理讲起,详细说明一下人体传感器的特点.布置方法和使用技巧. 人体传感器的基本功能是感应人体的移动,一定要注意,它感应的不是 ...

  2. 智能判断图片中是否存在某物体_基于WT901传感器及NB-IOT无线技术开发的一款物体倾倒监测设备...

    基于维特智能WT901传感器 及NB-IOT无线技术 开发的一款物体倾倒监测设备 一. 设备功能描述 该设备主要用于物体倾倒时的状态检测,通过维特智能[WT901]定时检测角度状态来判断物体是否倾倒: ...

  3. 【Paper】2022_离散时间多智能体系统编队-包围控制研究_李博凡

    离散时间多智能体系统编队-包围控制研究_李博凡 文章目录 第四章 基于间歇控制的离散时间多智能体系统编队-包围控制 4.1 引言 4.2 基于状态反馈的离散时间间歇多智能体系统编队-包围控制 4.2. ...

  4. python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...

    问题001-1:请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形.若能,输出YES和面积,否则输出NO a = float(input()) b = float(input()) c = ...

  5. 判断一棵树是否为完全二叉树的算法c语言_[二叉树的面试算法](六)之二叉树结构判断-相关题型总结(4题)...

    在线oj练习地址 判断两棵二叉树是否相同_leetcode100 判断一棵树是否是平衡二叉树_leetcode110 翻转二叉树_leetcode226 判断一棵树是否为对称二叉树_leetcode1 ...

  6. vue如何判断已经有定时器在执行_中国股市:如何判断当日涨跌?“分时图”已经全部告诉你了...

    分时图在股市中属于比较精细的操作技术,市场上所有的技术指标都是有延迟性的,属于过去时,但是分时图它是盘中量化关系变化中的实时反映,属于现在进行时. 所以在超短线爱好者里面,分时图是须要掌握的技术 分时 ...

  7. python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...

    从键盘上任意输入一个4位正整数,然后逆序数输出 intmain(){intn,n1,n2,n3,n4;cin>>n;n1=n/1000;n2=(n%1000)/100;n3=(n%100) ...

  8. 用python编程输入三角形的三条边判断是否构成三角形_输入三角形的三条边a,b,c,判断它们能否构成三角形。若能构成三角形,指出是何种三角形....

    任务说明: 输入三角形的三条边a,b,c,判断它们能否构成三角形.若能构成三角形,指出是何种三角形.注:判断浮点数是否相等其差的绝对值小于10-3即认为相等.需用5种测试用例. 输入要求: " ...

  9. java判断图中两点是否连通_连通分量(求有几个连通分量+判断是否两点连通+是否为强联通图 相应例子)...

    参考博客: https://blog.csdn.net/jinzk123/article/details/52231527 https://blog.csdn.net/qq_40998706/arti ...

最新文章

  1. Spring IOC 容器源码分析 - 循环依赖的解决办法
  2. 0 有符号和无符号整型数字
  3. 在VC中使用MATLAB C++函数库
  4. vmware 5.51 下安装Ubuntu Linux8.04安装vmware tools不成功
  5. [Swift]LeetCode212. 单词搜索 II | Word Search II
  6. mysql5.7java安装步骤_MySQL5.7安装步骤
  7. Java计算文件MD5值(支持大文件)
  8. 价格穿越,跟 普通的大于 小于是有差别的
  9. fiddle下载安装教程
  10. .NET in China - What's New in .NET
  11. 中国各大银行卡号查询
  12. 记一次halo博客ssl证书过期处理过程
  13. 企业视频直播如何嵌入企业微信公众号?
  14. CAD三维图自动生成三视图
  15. 羊了个羊游戏开发教程1:堆叠牌的拾取
  16. 深度学习细粒度分类综述
  17. homebrew Error: qt: unknown version :mountain_lion
  18. 如何评价ERP实施绩效 (zt)
  19. php自动生成phpunit,使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
  20. 【浏览器】Chrome/Edge外部导入扩展(.crx)无法启用的解决方法

热门文章

  1. 任务四十七:王牌特工 准备工作(二)
  2. Ubuntu14 添加程序启动
  3. Mac搭建Nodejs+Express
  4. Core Temp-CPU温度计
  5. MOSS2007-学习笔记-备忘录-单点登录-(1)-我的网站'?
  6. Java解析中文数字字符串
  7. 腾讯2019实习生笔试(编程题)
  8. linux b权限开头的文件夹,linux文件权限与目录配置
  9. 这个是我学习的所有sql语句的写法
  10. java api apk_java-如何在APK文件中保护此API