AI寒冬论作者再发文:「深」度学习对数据的理解太「浅」了
计算机视觉和 AI 领域研究者 Filip Piekniewski 曾经发表「AI 寒冬将至」的观点,从大公司对 AI 研究的兴趣、深度学习的扩展能力、炒作等角度展开,并认为 AI 寒冬必将到来。前不久,他再次发文,从硅谷的起落讲述 AI 寒冬原理,声称人工智能和区块链终将走入死胡同。这次,他从老本行计算机视觉出发,认为经典计算机视觉技术非常强大并且短期内不会消亡,深度学习对数据的语义理解非常浅层,只能用于接受偏差的场景中。
目前,深度学习为很多领域(尤其是计算机视觉领域)提供了新功能,令很多人对之着迷。然而,深度网络是「黑匣子」,多数人不了解其工作原理(坦白说,我们中的大多数人都是如此,甚至受过该领域培训的科学家也无法准确说出它们是如何工作的)。但是,深度学习的成功以及一系列令人意外的故障模式为我们处理数据留下了宝贵的经验。
本文将展示深度学习的实际效能、深度学习与经典计算机视觉(离消亡还很远)的联系,以及关键应用依赖深度学习的潜在危险。
传统计算机视觉
传统计算机视觉是一个广泛的算法集合,这些算法可以从图像中提取信息(通常表示为像素值数组)。各种应用可以使用的方法很多,如去噪、增强和目标检测。一些方法旨在找出简单的几何基元,例如边缘检测、形态分析、霍夫变换、Blob 检测、角点检测(Corner dection),以及图像阈值(image thresholding)的各种方法。同时还有一些特征表示和变换方法,如方向梯度直方图和哈尔级联(Haar cascade),这些可以作为机器学习分类器的前端,以构建更复杂的检测器。
与流行的理念不同,以上讨论的这些工具结合起来可形成用于特定对象的非常强大和有效的检测器。人们可以构建人脸检测器、汽车检测器和路标检测器,并且对于这些特定对象来说,检测器很可能会在准确率和计算复杂度两方面优于深度学习解决方案。但问题是,每个检测器都需要由专业人士从零开始构建,而这低效、昂贵且无法扩展。
因此,在历史上,极好的检测器只用于那些必须频繁检测且能够证明前期投资合理的对象。很多这样的检测器属于私人专有,不向公众开放。还有一些很棒的人脸检测器及汽车牌照阅读器等。但是,没有一个头脑正常的人会投资编写狗探测器或者对图像中某一品种的狗进行分类的分类器。这样做既昂贵又不实用。这时就需要深度学习了。
深度学习的祝福与诅咒
深度学习技术使用一种叫作梯度反向传播的优化方法来生成「程序」(也被称为「神经网络」)。这些「程序」和优化技术对这个世界一无所知,它们所关心的只是构建变换和条件集合,而这些将为数据集中的图像分配正确的标签。如果存在一些明显的提示(如数据集中所有狗图像的左上角为蓝色),则程序会毫不犹豫地利用这一点「故意为之」。
这些偏差可以通过向训练集添加更多数据来消除,但由反向传播生成的「程序」非常大,也非常复杂,拥有数百万的参数和数千个条件检查(condition check),因此可以理解更小偏差组合。任何允许分配正确标签以在统计学上优化目标函数的程序都会这样做,而不管是否与任务中的「语义精神」(semantic spirit)有关。
这些网络最终是否可以理解「语义正确」的先验呢?当然可以。但现在大量证据表明,这并不是网络实际做的事情。对抗样本表明,对图像进行极细微且察觉不到的修改即可完全颠覆这些结果。对与训练数据集类似的新样本进行研究后发现,原始数据集以外的泛化较数据集内的泛化更弱 [1],这表明网络理解的是给定数据集的低层级特征。在某些情况下,修改单像素即可破坏一个深度网络分类器。
在某些方面,深度学习的最大优势——自动创建人类无法想出的特征——同时也是其最大弱点,因为毫不夸张地说,大多数这些特征在语义上是「可疑的」。
什么时候有用,什么时候没用
深度学习是计算机视觉工具箱的一种有趣补充。现在,我们可以较容易地「训练」某些对象的检测器,否则实现起来太贵且不切实际。在某种程度上,我们也可以扩展这些检测器,以利用更多的计算能力。但是我们会为此付出很高的代价:我们不知道它们如何做出决策,同时我们明白分类的基础很可能与任务的「语义精神」毫无关系。因此,只要输入数据违反了训练集中存在的低层级偏差,检测器就会意外出现故障。实际上,这些故障条件无法描述。
因此在实践中,深度学习很适合那些误差不严重且能够保证输入与训练数据集出入不大的应用,即仅需要性能达到 95% 的问题,包括图像搜索、监控、自动零售,以及几乎所有并非「关键性」并且之后可以进行检查和改正的任务。讽刺的是,大多数人认为深度学习是应用空间的一场革命,这些应用需要实时做出决策,误差很关键且可能导致致命性结果,如自动驾驶汽车和自动化机器人(例如,近期研究显示,基于深度神经网络的自动驾驶解决方案的确易受到现实生活中对抗攻击的影响)。我只能说这种观念是一种「不幸的」误解。
一些人对深度学习在医疗和诊断领域的应用寄予厚望。然而,这个领域也有一些令人担忧的发现,如在一个机构数据上训练的模型出现故障,却在另一个机构数据上验证良好。这种情况再次与以下观点保持一致,即这些模型获取的数据比很多研究人员所希望的更浅层。
数据比我们想的要浅
令人意外的是,深度学习教给我们一些有关视觉数据(通常是高维数据)的有趣东西:以一些较我们过去认为的更「浅」的方式。相比在统计意义上分离一个拥有高级人工分类标签的视觉数据集,基于「语义正确」分离数据集的方法比较少。换言之,在统计学上,低级图像特征集比我们想象的更强大。这是深度学习的重大发现。如何生成按「语义合理」方式分离视觉数据集的模型,这个问题仍然是开放性的,事实上现在这个问题更难回答了。
结论
现在,深度学习已经成为计算机视觉工具箱的重要组成部分。但是,传统计算机视觉仍然用于构建非常强大的检测器。这些手工制作的检测器在一些特定的数据集指标上或许无法实现高效能,但可以保证它们依赖于输入的「语义相关」特征集。所以,检测器的故障模式可被更好地描述和预测。深度学习在无需特征工程的情况下提供统计意义上强大的检测器,不过这依然需要大量标注数据、GPU 和深度学习专家。但是,这些强大的检测器会意外出现故障,它们的适用范围也无法轻易界定(或者更进一步说,根本无法界定)。对于一些可以接受偶尔灾难性故障的应用,深度学习运行良好。但对于那些在给定条件集中性能和计算复杂度更重要的应用,它们会在未来很多年里使用经典的机器视觉管道。