深度学习在视觉上的局限性以及我们如何对付它们

作者:Alan L. Yuille, Chenxi Liu
编译:ronghuaiyang

深度学习在视觉领域取得了巨大的成功,即便如此,深度学习在视觉上仍然有很多的局限性,这篇文章从深度学习的历史开始说起,阐述了深度学习在视觉上的局限性,并给出了一些可能的方案。

深度学习历史

我们正在见证深度学习的第三次兴起。前两次浪潮—1950 - 1960年和1980 - 1990年—引起了相当大的兴奋,但慢慢失去了动力,因为这些神经网络既没有实现它们承诺的性能提升,也没有帮助我们理解生物视觉系统。第三次浪潮(2000年至今)则有所不同,因为深度学习在大量基准测试和现实世界应用方面的竞争力已经远远实现了超越。虽然大多数深度学习的基本思想在第二次浪潮中已经发展起来,但直到大型数据集和强大的计算机(GPU)的出现,它们的力量才得以释放。

深度学习的兴起和衰落反映了在业界的时尚和学习算法流行程度上的变化。第二波浪潮看到了传统人工智能的局限性,表现为对压倒性承诺的平庸表现。1980年代中期的人工智能冬天就这样开始了。第二波的衰落转变为支持向量机、核方法和相关方法的兴起。我们为神经网络的研究人员感到高兴,他们不顾沮丧继续研究,但注意到钟摆又摆了一次。现在很难发表任何与神经网络无关的东西。这不是一个好的发展。我们认为,如果研究人员追求方法和技术的多样性,而不是追逐当前的流行趋势,那么这一领域将发展得更快。更令人担忧的是,学生在人工智能课程中往往完全忽略了旧的技术,而倾向于当前的趋势。

成功与失败

在2011年AlexNet击败Imagenet上的所有竞争对手之前,计算机视觉社区对深度学习持相当怀疑的态度。在未来几年,视觉研究人员将提出各种各样的神经网络架构,这些架构在物体分类上的表现会越来越好。

深度学习也很快适应了其他视觉任务,如物体检测,图像中包含一个或多个物体,背景要大得多。为了完成这项任务,神经网络在初始阶段得到了增强,这一阶段对物体可能的位置和大小提出了建议。这些方法在PASCAL物体检测挑战(ImageNet之前的主要物体检测和分类挑战)方面优于以往的最佳方法可变部件模型。其他深度网络架构也在其他经典任务中提供了巨大的性能提升,其中许多任务如图1所示。

图1:深度网络可以执行各种各样的视觉任务。这包括:边界检测、语义分割、语义边界、表面法线、显著性、人体部位和物体检测。

但是,尽管深度学习优于其他技术,但它们并不是通用的。在这里,我们确定了三个主要限制。

首先,深度学习几乎总是需要大量的标注数据。这使得视觉研究人员倾向于研究那些容易理解的任务,而不是那些重要的任务。

有一些方法可以减少对监督的需要,包括迁移学习、小样本学习、无监督学习和弱监督学习。但到目前为止,他们的研究成果还没有监督学习那么令人印象深刻。

其次,深度网络在基准数据集上表现良好,但在数据集之外的真实世界图像上表现糟糕。所有数据集都有偏差。这些偏差在早期的视觉数据集中尤其明显,研究人员很快就学会了利用这些偏差,例如利用背景上下文(例如,在Caltech101中检测鱼很容易,因为它们是唯一的背景是水的对象)。这些问题减少了,但仍然存在,尽管使用了大数据集和深度网络。例如,如图2所示,训练用于检测ImageNet上的沙发的深度网络,如果从训练数据集中没有充分的各种角度的图像,则可能无法检测到它们。特别是,深度网络偏向于忽略数据集中不经常发生的“罕见事件”。但在现实世界的应用中,这些偏差尤其有问题,因为它们可能对应于视觉系统故障,可能导致可怕的后果。用于训练自动驾驶汽车的数据集几乎从不包含坐在路上的婴儿。

图2: UnrealCV使视觉研究人员能够轻松地操纵合成场景,例如通过改变沙发的视角。我们发现沙发的Faster-RCNN检测的平均精度(AP)在0.1到1.0之间,对视角的敏感度极高。这可能是因为训练中的偏见导致 Faster-RCNN偏向于特定的视角。

第三,深度网络对图像的变化过于敏感,不会欺骗人类观察者。深度网络不仅对导致图像难以察觉变化的标准对抗性攻击敏感,而且对上下文的变化也过于敏感。图3显示了将吉他ps到丛林中的猴子图片中的效果。这导致深度网络将猴子误认为人类,也将吉他误认为鸟,大概是因为猴子比人类更不可能携带吉他,而鸟类比吉他更可能在猴子附近的丛林中。最近的研究给出了许多深度网络对环境过度敏感的例子,比如把一头大象放在房间里。

图3:添加遮挡会导致深度网络失败。左图:这辆摩托车把一只猴子变成了人。中间:自行车把猴子变成了人,丛林把自行车把手变成了鸟。右图:吉他把猴子变成了人,而丛林把吉他变成了鸟。

这种对上下文的过度敏感也可以追溯到数据集的有限大小。对于任何物体,数据集中只会出现有限数量的上下文,因此神经网络会偏向于它们。例如,在早期的图像描述数据集中,观察到长颈鹿只出现在附近的树木中,因此,对于长颈鹿边上没有树木的图片,生成的描述中就不会提到有长颈鹿,即使它们是最主要的物体。

对于像深度网络这样的数据驱动方法来说,捕获大量上下文的困难以及探索大量有害因素的需求是一个很大的问题。看起来要确保网络能够处理所有这些问题,就需要无穷大的数据集,这对训练和测试数据集都提出了巨大的挑战。下面我们将讨论这些问题。

当大数据集不足够大的时候

组合爆炸

上面提到的问题都不是影响深度学习的因素,但我们认为这些都是问题的早期预警信号。也就是说,真实世界的图像集合是组合在一起的,因此任何数据集,无论有多大,都很难代表真实世界的复杂性。

对于一个集合的组合来说,它意味着什么?想象一下,通过从物体字典中选择一个物体并将它们放在不同的配置中来构建一个视觉场景。这显然可以用指数的方式来做。即使是单个物体的图像,我们也可以获得类似的复杂性,因为它可以以指数级的方式部分遮挡。我们还可以用无数种方式改变一个物体的上下文。

尽管人类很自然地适应视觉环境的变化,但深度网络更敏感,更容易出错,如图3所示。我们注意到,这种组合爆炸可能不会发生在一些视觉任务上,而深度网络在医学图像应用上可能会非常成功,因为在上下文中变化相对较小(例如,胰腺总是非常接近十二指肠)。但是对于许多真实世界的应用,如果没有指数级大的数据集,就无法捕捉真实世界的复杂性。

这带来了巨大的挑战,因为在有限数量随机抽取的样本上训练和测试模型的标准范式变得不切实际,因为它们永远不会大到足以代表数据的底层分布。这迫使我们解决两个新的问题:

(I)我们如何在有限大小的数据集上训练算法,使它们能够在捕捉真实世界的组合复杂性所需的真正庞大的数据集上表现良好?

(II)如果我们只能在有限子集上测试这些算法,我们如何有效地测试这些算法,以确保它们在这些庞大的数据集中工作?

克服组合爆炸问题

像目前形式的深度网络这样的方法似乎不太可能处理组合爆炸。数据集可能永远不够大,无法训练或测试它们。下面我们概述一些可能的解决方案。

组合

组合是一种普遍的原则,它可以被诗意地描述为“一种信念的体现,这种信念认为世界是可知的,人们可以将事物拆解,理解它们,并在精神上随意重组它们”。关键的假设是,结构是按照一组语法规则,由更基本的子结构分层构成的。这表明,子结构和语法可以从有限的数据中学习,但将泛化到组合的情况中。

与深度网络不同的是,组合模型需要结构化的表示来明确它们的结构和子结构。组合模型提供了超越所见数据进行推断、对系统进行推理、进行干预、进行诊断以及基于相同的底层知识结构回答许多不同问题的能力。引用Stuart Geman的话:“世界要么是由成分组成的要么上帝就是存在的。”我们注意到,虽然深度网络捕获了一种形式的组合,例如,高级功能是由低级功能的响应组成的,但它们不是我们在本文中所指的那种组合。

图4:从(a)到(b)到(c),使用了越来越多的可变性和遮挡。特别是(c)是一个组合大数据集的例子,它本质上与验证码相同。有趣的是,对验证码的研究表明,组合模型的性能很好,而深度网络的性能要差得多。

图4展示了一个与合成分析相关的组合的示例。组合模型的一些概念优势已经在视觉问题上得到了证明,例如使用相同的底层模型执行多个任务和识别验证码的能力。其他非视觉示例也说明了同样的问题。训练深度网络进行智商测试的尝试没有成功。

在这个任务中,目标是在一个3x3网格中预测丢失的图像,在这个网格中给出其他8幅图像,并且在其中基础规则是组合的(并且可能存在干扰项)。相反,对于一些自然语言应用,神经模块网络的动态结构似乎足够灵活,可以捕捉到一些有意义的组合,其性能优于传统的深度学习网络。事实上,我们最近证实,经过组合训练后,各个模块确实实现了它们预期的组合功能(如AND、OR、FILTER(RED)等)。

组合模型具有许多理想的理论特性,例如可解释,以及能够生成样例。这使得错误更容易诊断,因此它们比像深度网络这样的黑盒方法更难被欺骗。但是学习组合模型是困难的,因为它需要学习构建块和语法(甚至语法的性质也是有争议的)。此外,为了进行组合分析,他们需要对象和场景结构的生成模型。将分布放到图像上具有挑战性,只有少数例外,如人脸、字母和常规纹理。

更根本的是,处理组合爆炸需要学习三维世界的因果模型以及它们如何生成图像。对人类婴儿的研究表明,他们是通过建立因果模型来学习的,这些因果模型可以预测他们所处环境的结构,包括朴素的物理学。这种因果关系的理解使我们能够从有限的数据中学习,并对新情况进行真正的归纳。这类似于将牛顿定律与托勒密的太阳系模型进行对比,前者用最少的自由参数给出因果关系的理解,后者给出非常准确的预测,但需要大量的数据来确定其细节。

在组合数据上进行测试

在真实世界的组合复杂性上测试视觉算法的一个潜在挑战是,我们只能在有限的数据上进行测试。博弈论通过关注最坏的情况而不是一般情况来解决这个问题。如前所述,如果数据集没有捕捉到问题的组合复杂性,那么有限大小数据集上的平均案例结果可能没有意义。如果我们的目标是为自动驾驶汽车开发视觉算法,或者在医学图像中诊断癌症,而算法的失败可能会带来严重后果,那么关注最糟糕的情况显然也是有意义的。

如果能够在低维空间中捕捉到故障模式,如立体视觉的危险因素,则可以利用计算机图形学和网格搜索对其进行研究。但是对于大多数可视化任务,特别是涉及组合数据的任务,很难识别出少数可以隔离和测试的危险因素。一种策略是将标准对抗性攻击的概念扩展到包括非局部结构,允许对图像或场景造成变化的复杂操作,例如通过遮挡或改变被观察对象的物理属性,但不显著影响人类感知。将这种策略扩展到处理组合数据的视觉算法仍然具有很大的挑战性。但是,如果算法在设计时考虑到了组合性,那么它们的显式结构可能使诊断它们和确定它们的故障模式成为可能。

结论

几年前Aude Oliva和Alan Yuille(第一作者)共同组织了一个由NSF赞助的计算机视觉前沿研讨会(MIT CSAIL 2011)。会议鼓励坦率的意见交流,特别是在计算机视觉的深度网络的潜力方面存在巨大的分歧。Yann LeCun大胆地预言,不久每个人都将使用深度网络。他是对的。他们的成功是非凡的,帮助视觉变得非常受欢迎,戏剧性地增加了学术界和工业界之间的互动,导致视觉技术应用于许多学科,并产生了许多其他重要的后果。但是,尽管它们取得了成功,但在我们实现通用人工智能和理解生物视觉系统的目标之前,仍必须克服巨大的挑战。我们的一些担忧与最近对深度网络的批评中提到的类似。可以说,最严峻的挑战是如何开发能够应对组合爆炸的算法,因为研究人员在越来越现实的条件下处理越来越复杂的视觉任务。虽然深度网络肯定是解决方案的一部分,但我们认为,我们还需要涉及构成原则和因果模型的补充方法,以捕捉数据的基本结构。此外,面对组合爆炸,我们需要重新思考如何训练和评估视觉算法。

注:这是我们原始论文"Deep Nets: What have they ever done for Vision?"的一个简短版本。

英文原文:https://thegradient.pub/the-limitations-of-visual-deep-learning-and-how-...

本文转自:微信号 - AI公园(AI_Paradise),转载此文目的在于传递更多信息,版权归原作者所有。

最新文章