Alan Yuille:在计算机视觉领域,谁是杀死神经网络的真凶?
大数据文摘出品
来源:thegradient.pub
编译:籍缓、lvy、蒋宝尚、钱天培
需要大量的注释数据;难以在标准测试集外取得良好表现;对于数据的微小变化尤为敏感。
这都是近年来深度学习被诟病的缺陷。
即便深度学习已经在诸多领域得到广泛应用,但这三大缺陷也成为了深度学习仍旧无法完全胜任自动驾驶、医疗诊断等“敏感”任务的致命弱点。
毕竟,如果一台自动驾驶系统因为训练数据集中不包含“坐在路上的婴儿”这一情境,就无法作出正确的避让判断,想必不会有人会放心让这一系统完全接管方向盘。
那么,这些问题的背后,究竟体现了深度神经网络怎样的致命缺陷呢?
近期,计算机视觉的奠基人之一、约翰霍普金斯大学教授Alan Yuille和他的学生刘晨曦撰写了一篇博文,详述了深度网络局限性的本质所在。
他们认为,难以处理“组合爆炸问题”正是深度神经网络的致命弱点。
那么,什么是组合爆炸问题呢?
让我们先来看下面这个例子。
图1 :添加遮挡体(Occluders)会导致深层网络失败。左:添加遮挡体摩托车将猴子变成了人类。中心:添加遮挡体自行车将猴子变成人,丛林将自行车把手变成鸟。右:添加遮挡体吉他将猴子变成了人类,丛林将吉他变成了一只鸟。
这张图显示了将吉他照片添加到丛林中的猴子照片中的效果。Deep Net错误地将猴子识别为人类并将吉他误解为鸟类,大概是因为Deep Net认为猴子不可能携带吉他,并且鸟类比吉他更可能在猴子附近的丛林中出现。
这种对背景的过度敏感可以归因于有限的数据集大小。对于任何对象,数据集中仅出现有限数量的背景,因此神经网络就会发生判断偏差。
例如,在早期数据集中,长颈鹿仅在树木边出现,因此,如果长颈鹿附近如果没有树,那神经网络就无法正确识别,即使它们是图片中最主要的对象主体。
捕捉各种各样背景的困难,以及探索大范围的滋扰因素的需要,造成了Deep Nets这类方法的缺陷。
关于组合爆炸
上面这一问题就是“组合爆炸”很好的例子。
真实世界图像集是组合的。因此,任何数据集(无论多大)都很难代表现实世界的复杂性。
组合能产生出多大的集合呢?
想象一下,我们可以在一个场景中随意添加各种物体,这显然可以用很多方式完成。即使对于单个对象的图像,我们也可以获得类似的复杂度,因为它可以以指数增加的方式添加被部分遮挡的情况。我们还可以通过无数种方式更改对象的背景。
尽管人类能够自然地适应视觉环境的变化,但是深度神经网络却更敏感,然而更容易出错,就如图1所示。
在某些视觉任务中,这种组合爆炸基本不会发生。深度神经网络在医学图像的应用中可谓是非常成功,因为其背景的变化相对较小(例如胰腺总是非常接近十二指肠)。
但是,对于许多日常使用的应用程序来说,如果没有指数级别的数据集,我们就无法捕捉到现实世界的复杂性。
这就带来了巨大的挑战——在数量有限、随机抽取的样本上训练和测试模型的标准范式变得不切实际。
所以这迫使我们解决两个新的问题:
- 我们怎样在有限大小的数据集上训练算法,从而使它们能够在需要庞大数据集才能捕获现实世界的组合复杂性的任务中表现良好?
- 如果我们只能在有限的子集上测试这些算法,那么我们如何有效地测试并确保它们在庞大的数据集中表现优秀?
如果克服组合性爆炸
像深度神经网络这样的方法,以目前的形式来看,似乎不太可能具有处理组合爆炸的能力,因为数据集的数量可能永远都不足以训练或测试它们。
我们认为,组合模型或许是解决问题的关键。
组合性
组合性是一个基本原则,可以感性的称它为“一种信仰的体现,即世界是可知的,人们可以将事物拆开并理解它们,然后在精神上随意地重新组合它们”。
但其中关键的假设是,结构是由更基本的子结构按照一组语法规则组成的。这就表明子结构和语法可以从有限的数据中学习,然后拓展到组合的场景中。
与深度神经网络不同,组合模型需要结构化的表征,从而明确其结构和子结构。组合模型能够对可见的数据进行外推,对系统进行推理、干预、诊断以及使用相同的基础知识结构回答许多不同问题。
我们注意到,尽管深度神经网络捕获了一种组合性形式,例如,高层特征是由来自下层特征的响应组成的,但与本文中我们所指的组合性显然还是不一样的。
图2:从(a)到(c),可变性增加同时出现了遮挡情况。尤其(c)是一个庞大组合数据集的例子,它本质上与验证码相同。有趣的是,关于验证码的研究表明,组合模型的性能很好,而深度神经网络的性能则较差。
组合模型的优势已经在很多视觉问题上得到了证明,例如使用相同的底层模型执行多个任务和识别验证码(图2)。其他非视觉的例子也说明了同样的观点,比如智商测试。
在这项任务中,我们的目标是预测3x3网格中丢失的图像,其中8个网格的图像已经给出,同时任务的基本规则是组合型的(并且可以存在干扰)。在这一任务上,组合模型相比深度神经网络也有相当的优势。
组合模型具有许多理想的理论性质,例如可解释性和可生成样本性。这使得错误更容易诊断,因此它们比像DeepNets这样的黑盒方法更难被欺骗。
但是,学习组合模型也是十分困难的,因为它涉及到学习构件和语法(甚至语法的本质也是有争议的)。此外,为了通过合成进行分析,它们需要有一个模型来生成对象和场景结构。
更为根本的是,处理组合爆炸需要学习三维世界的因果模型以及这些模型如何生成图像。对人类婴儿的研究表明,他们通过预测环境结构的因果模型来学习。这种因果理解能够让他们从有限的数据中学习,并拓展到新的环境中。
这与牛顿定律与托勒密模型的对比类似,牛顿定律用最小的自由参数来解释因果关系,而太阳系的托勒密模型给出了非常精确的预测,但它需要大量的数据来确定其细节。
在组合数据上测试
在现实世界中测试视觉算法的组合复杂度的一个潜在挑战是,我们只能测试有限的数据。我们可以通过关注最坏情况,而不是一般情况来解决这一问题。
正如我们前面所说,如果数据集没体现出问题的组合复杂性,那么算法在有限大小数据集中的结果可能没有意义。显然,如果目标是为自动驾驶汽车开发视觉算法,或者在医学图像中诊断癌症,那么关注最坏的情况也是有意义的,因为算法的失败可能会产生严重的后果。
如果能在低维空间中捕捉到故障模式,例如立体匹配算法的危险因素,那么我们可以利用计算机图形学和网格搜索对其进行研究。但对于大多数视觉任务,特别是涉及组合数据的任务,我们很难识别出少数可以被隔离和测试的危险因素。
另一种策略是将标准对抗攻击的概念扩展到包括非局部结构,并允许复杂的操作,这些操作会导致图像或场景发生变化,例如通过遮挡或更改正在查看的对象的物理属性,尽管这不会对人的感知造成太大的影响。
将此策略扩展到处理组合数据的视觉算法仍然是非常具有挑战性的。但是,如果在设计算法时考虑到了组合性,那么它们的显式结构可能使诊断和确定它们的故障模式成为可能。
挑战与未来
几年前,Aude Oliva和Alan Yuille(本文第一作者)共同组织了一个由NSF赞助的计算机视觉前沿研讨会(MIT CSAIL 2011)。这次会议鼓励参会者坦诚交换意见,参会者对计算机视觉的深度神经网络的潜力产生了巨大分歧。
Yann LeCun大胆地预言,每个人都将很快地使用深度神经网络。他的预测是正确的。深度神经网络的成功非同寻常,它带领计算机视觉走向了热门,极大地增加了学术界和工业界之间的互动,将计算机视觉应用到了许多不同的学科,并产生了很多有意义的成果。
但是,尽管深度神经网络取得了成功,但在我们达到通用人工智能和理解生物视觉系统的目标之前,仍然存在着巨大的挑战。我们的一些担忧与最近对深层网络的批评中提到的类似。
其中,我们今天讨论的“组合爆炸”就是最大的挑战之一。
虽然深度神经网络肯定是解决方案的一部分,但我们相信,我们还需要一些额外的方法用来捕获数据基础结构的复合原理和因果模型。此外,面对组合爆炸,我们需要重新思考如何训练和评估视觉算法。
相关报道:
https://thegradient.pub/the-limitations-of-visual-deep-learning-and-how-we-might-fix-them/