点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
作者:Robert Geirhos
编译:ronghuaiyang
导读
和人类不同,AI物体识别靠的是小的细节,而不是图像的边界,但是总是有办法来弥补这个差别的!
看看下面的图片,你看到了什么动物?
在上面的图片中,你可能很容易就能认出一只猫。下面是一个顶尖的深度学习算法所看到的:一头“大象”!
这个故事是关于为什么人工神经网络在人类看到猫的地方看到大象。此外,这是关于我们如何看待深度神经网络中的物体识别的范式转变——以及我们如何利用这一视角来推进神经网络。这是基于我们最近在ICLR 2019(一个重要的深度学习会议)上发表的论文。
神经网络如何识别猫?一个被广泛接受的答案是:通过检测它的形状。这个假说的证据来自可视化技术DeconvNet(下面的例子),这表明在不同的处理阶段(称为层),网络在一个图像寻求识别越来越大的模式,从第一层简单的边缘和轮廓到更复杂的形状,如汽车轮子,直到整个物体,比如说一辆车,很容易被检测到。
这种直观的解释已经进入了常识的状态。现代深度学习经典的教科书如Ian Goodfellow的“Deep Learning”(显式引用shape-based可视化技术)当解释深度学习是如何工作的:
“该网络获得与每个类别相关的形状类型的复杂知识。[…]
高级单元似乎可以学习自然图像中出现的形状的表征,比如人脸、人体、动物、自然场景、建筑和汽车。”
但是有一个问题:一些最重要的和广泛使用的可视化技术,包括DeconvNet都被误导了:他们不是揭示网络在图像中找什么,他们仅仅是对图像的部分进行重建,也就是说,那些很酷的人类可解释性可视化和网络是如何做决定的其实没什么关系。
这几乎没有为形状假说留下任何证据。我们是否需要修正我们对神经网络如何识别物体的看法呢?
如果形状假说不是唯一的解释呢?除了“形状”之外,物体通常还有或多或少与众不同的“颜色”、“大小”和“纹理”。所有这些因素都可以利用神经网络来识别。虽然颜色和尺寸通常不是特定物体类别所独有的,但如果我们观察小区域,几乎所有物体都具有类似的纹理元素——甚至汽车,例如,轮胎轮廓或金属涂层。
事实上,我们知道神经网络碰巧有非常好的纹理表示,不需要经过训练就有了。例如,在做 style transfer时,这一点就很明显了。在这一个非常牛逼的图像建模技术中,使用深度神经网络从一张图像中提取纹理信息,例如绘画风格。然后将这种样式应用于第二幅图像,使人们能够以著名画家的风格“绘制”照片。
神经网络在只接受物体识别训练的情况下,仍能获得如此强大的图像纹理表示,这一事实表明,两者之间有着更深层次的联系。这是我们所说的“纹理假说”的第一个证据:纹理,而不是物体的形状,是人工智能物体识别中最重要的方面。
神经网络如何分类图像:基于形状(通常假设)或纹理?为了解决这个争论,我想出了一个简单的实验来找出哪个解释更可信。实验是基于如下图所示的图像,其中的形状和纹理为截然不同的物体类别提供了证据:
在这三个示例图像中,纹理和形状不再属于同一类别。我们用风格转换来创造它们:如果输入的是一张大象皮肤的照片,而不是一幅画,那么用梵高风格的照片来“画”一只猫也可以用大象的纹理来创造一只猫。
使用这样的图像,我们现在可以通过观察来自深度神经网络的分类决策来研究形状或纹理偏差(以及人类的比较)。考虑一下这个类比:我们想知道某人是说阿拉伯语还是汉语,但我们不被允许和他们交谈。我们能做什么?一种可能是拿一张纸,用阿拉伯语写“向左走”,在它旁边用汉语写“向右走”,然后简单地观察这个人会向右走还是向左走。类似地,如果我们给深度神经网络输入一张形状和纹理冲突的图像,我们可以通过观察是神经网络是利用形状还是纹理识别的物体(即,是否它认为大象纹理的猫是一只猫还是一只大象),来找出神经网络说的是哪种“语言”。
这正是我们所做的。我们进行了一系列包括近100名人类观察者和许多广泛使用的深度神经网络(AlexNet, VGG-16, GoogLeNet, ResNet-50, ResNet-152, DenseNet-121, SqueezeNet1_1)在内的9个实验,向他们展示了数百幅形状和纹理冲突的图像。结果不容置疑:我们发现了支持纹理解释的惊人证据!带象皮纹理的猫对DNN来说是大象,对人类来说仍然是猫。一辆带有时钟纹理的汽车对DNN来说就是时钟,熊具有瓶子的表面特征就被识别为一个瓶子。目前用于物体识别的深度学习技术主要依赖于纹理,而不是物体的形状。
下面是ResNet-50的一个结果,这是一个常用的深度神经网络,显示了它的前三个“猜测”(分类决策)的百分比,如下图所示:
正如你所看到的,有象皮的猫是根据纹理来分类的,而不是根据它的形状来分类的。目前的人工智能物体识别似乎与我们之前设想的有很大不同,与人类识别物体的方式也有根本不同。
我们能做些什么吗?我们能让人工智能物体识别更像人类吗?我们能教它使用形状而不是纹理吗?
答案是肯定的。深度神经网络,当学习分类物体时,利用任何有用的信息。在标准的图像中,纹理揭示了很多关于物体身份的信息,因此可能根本不需要学习很多关于对物体形状的知识。如果轮胎的轮廓和光滑的表面已经暴露了物体的身份,为什么还要检查形状是否匹配呢?这就是为什么我们设计了一种新的方法来教神经网络专注于形状而不是纹理,希望消除它们的纹理偏见。再次使用风格迁移,可以将图像的原始纹理替换为任意不同的纹理(参见下图中的示例)。在生成的图像中,纹理不再提供信息,因此物体的形状是惟一有用的信息。如果一个深度神经网络想要从这个新的训练数据集中对物体进行分类,它现在需要学习形状。
在对成千上万张具有任意纹理的图像进行深度神经网络训练后,我们发现它实际上获得了形状偏好,而不是对纹理的偏好!一只有着大象皮的猫现在被这个基于形状的新网络视为一只猫。此外,还有一些意外的好处。在识别标准图像和定位图像中的目标方面,该网络突然变得比正常训练的同类网络更好。强调类人的、基于形状的表示是多么有用。然而,我们最令人惊讶的发现是,它学会了如何处理带噪声的图像(在现实世界中,这可能是雨雪后面的物体)—而且是前从未见过任何这些噪音模式!通过简单地关注物体的形状而不是容易扭曲的纹理,这个基于形状的网络是第一个接近一般的,人类水平的噪声鲁棒性的深度神经网络。
在人类视觉感知和人工智能的十字路口,灵感可以来自这两个领域。我们利用人类视觉系统的知识及其对形状的偏好来更好地理解深度神经网络,我们发现它们主要使用纹理来分类物体。这使得网络的创建在许多不同的任务上更接近健壮的、类人的性能。展望未来,如果这个网络更准确地预测当我们观察物体的时候,大脑中的神经元是如何“fire”的,这对更好地理解人类视觉感知是非常有用的,在这个真正激动人心的时代,来自人类的视觉的灵感有潜力改善当今人工智能技术,人工智能一样有能力推动今天的视觉科学!
好消息!
小白学视觉知识星球
开始面向外开放啦👇👇👇
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~