深度学习仍然离不开“你”的大数据 深度学习需要大数据,这已经不是什么秘密了,比如ImageNet上超过百万张已标注的训练图像。这些数据从哪里来?答案当然是你以及你所认识的每个人。现代计算机视觉应用程序之所以成为可能,主要归功于互联网用户已上传的、有时带有说明图像内容的文本标签的数十亿张图像。你是否曾在Facebook上发布过一张朋友的照片并进行评论?Facebook应该对你表示感谢!该图像及其文本可能已被用于训练他们的人脸识别系统了。你是否曾在Flickr上传过图片?如果是,那么你所上传的图像可能已成为ImageNet训练集的一部分了。你是否曾通过识别一张图片来向某个网站证明你不是一个机器人?你的识别结果可能帮助了谷歌为图片设置标签并被用于训练其图片搜索系统。 大型科技公司通过计算机和智能手机为你提供许多免费服务:网络搜索、视频通话、电子邮件、社交网络、智能助理,诸如此类。这些对公司有什么用处呢?答案你可能已经听说过,就是这些公司真正的产品其实是其用户,例如你和我,而他们真正的客户则是那些获取我们在使用这些免费服务时的注意力和信息的广告商。还有另外一个答案:在使用大型科技公司如谷歌、亚马逊和 Facebook 等提供的服务时,我们会以图像、视频、文字或语音等形式直接为这些公司提供样本,这些样本可供公司更好地训练其人工智能程序,这些改进的程序能够吸引更多用户来贡献更多数据,进而帮助广告商更有效地定位其广告投放的对象。此外,我们提供的训练样本也可被公司用于训练程序来提供企业服务,并进行商业收费,例如计算机视觉和自然语言处理方面的服务。 关于这些大公司在没有通知或补偿用户的情况下,使用用户所创造的数��来训练程序并用于销售产品的道德问题,已有许多相关探讨。这是一个非常重要的讨论主题,但超出了本书的范围 。我想在这里强调的**是:依赖于收集到的大量已标注的数据来进行训练是深度学习不同于人类学习的另一个特点。 随着深度学习系统在物理世界实际应用的激增,很多公司发现需要大规模的新标记的数据集来训练DNN。自动驾驶汽车就是一个值得关注的例子,这类汽车需要复杂的计算机视觉功能,以识别车道、交通信号灯、停车标志等,以及辨别和追踪不同类型的潜在障碍物,如其他汽车、行人、骑自行车的人、动物、交通锥、翻倒的垃圾桶、风滚草,以及其他任何你可能不希望汽车会撞到的对象。自动驾驶汽车还需要学习这些对象在晴天、雨天、下雪天、有雾的日子,以及白天和黑夜时看起来的样子,还要学会判断哪些对象可能会发生移动,而哪些则会留在原地。深度学习将有助于这项任务的实现,至少在某种程度上是如此,但这同样需要大量的训练样本。 自动驾驶汽车公司从安装在真实汽车上的摄像头所拍摄的海量视频中收集训练样本。这些行驶于高速公路和城市街道中的汽车可能是汽车公司用来测试的自动驾驶车辆的原型,而对特斯拉而言,这些汽车就是由客户驾驶的汽车,在客户购买特斯拉汽车时,需要接受该公司的数据共享条款。 特斯拉车主并未被要求对他们的汽车拍摄的视频中的每个对象进行标注,但有人在做这些事。2017年,《金融时报》(Financial Times)报道称,“大多数研究这项技术的公司位于印度等国的离岸外包**并雇用了数百至上千人,他们的工作就是教自动驾驶汽车识别行人、骑自行车的人以及其他障碍物。这些工作人员需要手动标注长达数千小时的视频片段来完成这项工作,而且通常是逐帧进行标注”。提供标注数据集服务的新公司如雨后春笋般涌现,例如,Mighty AI公司提供训练计算机视觉模型所需的标注数据,并承诺:“我们是知名的、专攻自动驾驶数据的、经过认证的、可信的标注者。 长尾效应常常会让机器犯错 这种需要大型数据集和大量人类分类员的监督学习方法,至少对自动驾驶汽车所需的某些视觉功能是有用的,许多公司也正在探索利用类似于视频游戏的模拟驾驶程序来强化有监督的训练。那么对于生活的其他领域呢?几乎所有从事人工智能研究的人都认同,监督学习方法并不是一条通往通用人工智能的可行途径。正如**的人工智能研究者吴恩达所警告的:“对大量数据的需要是目前限制深度学习发展的主要因素。”另一位知名的深度学习专家约书亚·本吉奥(Yoshua Bengio)表示赞同,他说:“实事求是地讲,我们不可能对世界上的所有事物都进行标注,并一丝不苟地把每一个细节都解释给计算机听。” 这一情况由于“长尾效应”的存在而进一步恶化,所谓的“长尾”,就是指人工智能系统可能要面临各种可能的意外情况。遇到红灯或停车标志等都是常见的情况,被评定为具有高可能性;中等可能性的情况包括遇到碎玻璃或者风吹过来的塑料袋,这些情况并非每天都会遇到,但也不是不常见,这取决于你驾驶的区域;不太常见的情况是自动驾驶汽车遇到了被水淹没的道路或被雪遮挡住的车道标志;而在高速公路的**遇到一个雪人,则是更加不常见的情况了。 我想出了上述这些不同的情况,并对其相应的可能性进行了猜测,我相信你可以想出更多自己的猜测。任何一辆单独的汽车都可能是**的,毕竟,总体来说,自动驾驶的测试车辆已经行驶了数百万千米,也只发生了很少的交通事故,尽管其中确有一些备受关注的伤亡事故。然而,一旦自动驾驶汽车普及开来,真实世界中有如此多种可能的情况,尽管每个单独的、不太可能发生的情况极少发生,但是面对如此多数不清的可能场景以及巨大的车流量,总会有某辆自动驾驶汽车会在某个时间、某个地点遭遇其中的一种情况。 “长尾”这个术语来自统计学,其中包含的各种可能事件的概率分布的形状类似于图 6-1:这一长串可能性低,但却可能发生的情况被称为该分布的“尾巴”,尾巴上的情况有时被称为“边缘情况”。人工智能在现实世界的大多数领域中都会面对这种长尾效应:现实世界中的大部分事件通常是可预测的,但仍有一长串低概率的意外事件发生。如果我们单纯依靠监督学习来提升人工智能系统对世界的认识,那么就会存在一个问题:尾部的情况并不经常出现在训练数据中,所以当遇到这些意外情况时,系统就会更容易出错。 举两个真实的案例。2016年3月,天气预报称美国东北部将出现大规模暴风雪,推特上有报道称发现特斯拉汽车在自动驾驶模式下把车道标记和高速公路上为预防暴风雪而铺设的盐线弄混了。2016年2月,谷歌的一辆无人驾驶汽车在右转弯时,为避开公路右侧的沙袋不得不左转,致使车辆的左前方撞上了一辆在左车道行驶的公共汽车。这两辆车都预判对方会进行避让,其中公交车司机可能认为,人类司机会害怕体积更大的公交车从而选择避让,没想到这是一辆无人驾驶汽车。从事自动驾驶技术研究的公司敏锐地意识到了长尾效应,他们的团队围绕可能的长尾情境展开了头脑风暴,积极创造更多的训练样本,并针对他们能想到的所有不太可能的场景编写了相应的应对策略,但是,他们显然无法穷尽系统可能遇到的所有场景。 一种常见的解决方案是:让人工智能系统在少量标注数据上进行监督学习,并通过“无监督学习”(unsupervised learning)来学习其他所有的内容。无监督学习是指在没有标记数据的情况下学习样本所属类别的一系列方法。常见的例子包括:基于相似度来对样本进行分类的方法,或者通过与已知类别进行对比来学习新类别的方法。正如我将在后面章节中介绍的那样,对抽象事物的感知以及类比是人类擅长的,但到目前为止,还没有特别成功的人工智能算法来实现这种无监督学习。杨立昆承认:“无监督学习是人工智能的暗物质。”换句话说,对于通用人工智能,几乎所有学习都应该在无监督方式下进行,然而,还没人提出过成功进行无监督学习所需的各种算法。 人类总会犯错,特别是在驾驶时,如果是我们处在前文例子中为躲避沙袋而要转向的场景,我们也有可能会撞上那辆公交车;但是,人类具有一种当前所有的人工智能系统都缺乏的基本能力:运用常识。我们拥有关于这个世界的体量庞大的背景知识,包括物质层面及社会层面。我们对现实世界中的事物会如何行动或变化有充分的了解,无论它是无生命的还是有生命的,我们广泛地运用这些常识来决定如何在特定情况下采取行动。即使从未在暴风雪天开过车,我们也能推断出道路铺设盐线的原因。我们知道如何与其他人进行社交互动,因此能够使用眼神、手势和其他肢体语言交流来应对电源故障期间交通信号灯无法使用的情况。我们也知道,应该尽量避让大型公共汽车,即便从严格意义上来说我们拥有路权。这里我举的只是汽车驾驶方面的一些例子,其实人类通常在生活的方方面面都会本能地运用常识。许多人认为,除非人工智能系统能像人类一样拥有常识,否则它们将无法在复杂的现实世界中实现完全自主。 机器“观察”到的东西有时与我们截然不同 几年前,我的研究团队的一名研究生威尔·兰德克尔(Will Landecker),训练了一个可以将图像分为“包含动物”和“不包含动物”两种类别的DNN。网络在图像上进行了训练,并且在测试集上表现得非常好,但网络实际上学到了什么呢?通过仔细研究,威尔发现了一个让人意想不到的答案:网络学会的是将具有模糊背景的图像分到“包含动物”这一类别,无论该图像是否真的包含一只动物。这是由于训练集以及测试集中的图像遵循了一项重要的摄影规则:聚焦在目标对象上。当图像的目标对象是一只动物时,动物将成为焦点,而图像的背景是模糊的。当图像本身就是一种背景时,则图像中没有任何地方是模糊的。令威尔感到很懊恼的是,他的网络并没有学会识别动物,而是使用了与动物图像统计特征相关的更简单的线索,如模糊的背景。 这是机器学习常见现象中的一个例子。机器学到的是它在数据中观察到的东西,而非我们人类可能观察到的东西。如果训练数据具有统计性关联,即使这些关联与机器要解决的任务无关,机器也会很乐意学习这些内容,而不是学习那些我们希望它学习的内容。如果机器在具有相同统计性关联的新数据上进行测试,它将表现得像是已经成功地学会了如何完成这一任务;然而,机器在其他数据上运行可能会出乎意料地失败,就像威尔的网络在无模糊背景的动物图像上的表现一样。用机器学习的术语来说,威尔的网络“过拟合”(overfitted)了特定的训练集,因此无法很好地将其学到的知识应用到与训练集特征不同的那些图像上。 近年来,一些研究团队调查了在ImageNet和其他大数据集上训练的ConvNets是否同样会在其训练数据上过拟合。有一个研究团队表示:如果ConvNets是在从网络下载的图像(如ImageNet中的图像)上进行训练的,那么在由机器人用照相机在房屋中移动拍摄出来的图像上,它们就会表现得很差。这似乎是由于家居用品的随机视图看起来与人们在网络上发布的照片非常不同。 其他研究团队表明,图像表面的变化,如使图像模糊一点或给图像加上斑点、更改某些颜色或场景中物体的旋转方向等,这些扰动不影响人类对其中对象的识别,却可能导致ConvNets出现严重错误。ConvNets和其他那些在目标识别方面“超越”人类的网络的这种意想不到的脆弱性,表明它们在其训练数据上出现了过拟合,而且学到了一些与我们试图教给它们的不同的东西。