翻译

134 阅读13分钟

9.为什么人工智能难以实现?

9.1介绍

9.2机器学习

9.3人工智能的困难在哪里?

9.4人工智能中的人工技术

9.5无监督学习

9.6人工智能往哪里发展

9.7我们需要害怕人工智能吗?

9.1介绍

  我一直对人工智能这个词感到不安,但很少有人认为自己主要在那个领域工作。然而我还记得我第一次见到埃德杰·迪克斯特拉时,他不仅以其对计算机科学的开创性贡献而闻名,而且以其强大的观点和尖锐的机智而闻名。他问我在做什么。也许只是为了引发一场令人难忘的交流,我说人工智能他立即回答说:你为什么不研究我呢?

  当然,他说得对,如果I比AI更普遍,那么就应该解决更普遍的问题,特别是如果是自然现象,在这种情况下是。事实上,这正是我所相信的,我一直在做的事情。在这本书中,到目前为止,所有适用于人工智能的东西基本上也适用于智能。但我们都知道,其自然和人工形式的智能并不一定是相同的。本章讨论其中的区别。前几章寻求了一种学习和智力的计算观点,这足够明确,用计算机模拟都不存在固有的问题。所以,你可能觉得有理由问,是什么阻止了我们?

  一个问题是,尽管机器学习的实践支持学习是智力的核心,但在人类大脑中硬连接的学习算法尚未确定。然而,最初来自自然启发的机器学习算法已经被广泛使用,现有的机器学习算法在各种数据中发现了有用的规律,无论是人工生成的还是自然生成的。更广泛地说,尽管算法方法揭示了用机器模拟人类智能的问题——它表明在努力过程中需要使用以学习为中心的方法——但它也指出了一些严重的障碍。本章的主要目标之一是解释算法视图如何给出有信服的解释,为什么人工智能比预期的更困难实现。这听起来可能像是一个借口,但没有人能否认,迫切需要一个好的借口。

9.2机器学习

  面对任何任务,计算机既可以通过编程来处理它,也可以用来学习如何处理它,或者可能是一种组合。正如我们所看到的,学习有一个统计方面,因此不能避免错误。与为一项任务创建一个完美的程序的可能性相比,学习解决方案总是有这个基本的弱点。在我们知道如何指定我们想要的确切结果的应用程序中,最好是简单地对其进行编程,假设我们能够这样做。

  当然,由于各种原因,我们可能无法为其进行编程。学习变得更加强大,而且确实是不可或缺的,(1)每当我们不能明确指定我们想要的结果时,(2)当我们无法确切地指定执行它的系统已经知道什么。(3)当我们无法直接编程访问系统时。当所讨论的系统是人类时,所有这三种条件都成立了,我们对学习别无选择。当设备是计算机时,条件(1)和(2)有时保持不变。学习解决方案也将成为计算机的理想选择。

  机器学习现在是一项重要而普遍的技术。到目前为止,重要的应用程序主要是第一类,我们不知道如何明确地指定所期望的结果。人们还可以预见第二类的应用,在第二类应用中,与健壮逻辑一样,学习知识在连续的层中添加,因此精确指定系统所知道的东西的可能性很快就会消失,即使它在一开始就存在。

  机器学习的重要应用领域是由万维网提出的,在那里每天都会创建大量的新信息,没有希望任何一个人,甚至一个群体,都能跟上理解它的步伐。在电子邮件中检测垃圾邮件就是一个例子。每天都可以出现新的垃圾邮件来源。跟踪每一种新方法,并人工将检测其纳入电子邮件系统的方法,将是令人望而却步的。更有效的是使用机器学习算法,学习一些规律,区分用户标记为垃圾邮件的电子邮件和他们没有标记的电子邮件。其他应用程序使搜索引擎能够对网页进行排名,以确定哪些页面将根据用户的搜索词显示在用户的页面顶部。当提供其他选项时,人们会点击哪些页面的证据是非常宝贵的信息。同样地,通过在线广告,从不同网站的点击率的历史中学习,可以提供有价值的信息,说明在哪里投放广告是最有利可图的。

  其他重要的应用程序包括自然语言处理和计算机视觉,在这两个应用程序中,人们都在试图模拟人类的能力。在自然语言处理中,一个基本的问题是拼写校正。在文本中,人们可能有沙漠或甜点。人类通常可以从附近的单词来确定哪一个,骆驼暗示前者,吃后者。人们可以尝试通过编程或学习来自动完成这个拼写校正的任务。简单的机器学习方法可以在对包含目标词的正确句子上进行训练时,准确地预测正确的选择,而后者近年来取得了胜利,产生了更准确的系统。在计算机视觉领域,一个关键的任务是自动识别图像中存在着什么类别的物体。在这里,目前选择的方法再次涉及到机器学习算法。

  机器学习的普遍成功在很大程度上取决于最近发现的一些学习算法的有效性。一项显著的创新是提升,这是一种提高几乎任何基本学习算法性能的通用技术。它的发现源于对PAC学习模型的鲁棒性的研究。PAC学习的定义是要求假设以任意小的误差进行预测。在同样的精神下,人们也可以定义弱学习的概念,而它有一个较弱的要求,即假设的预测效果比随机猜测更好。这对赌徒来说是一种有用的学习形式,对赌徒来说,预测概率就足够了。从这个意义上说,我们可以定义一类概念是弱可学习的意义,并且再次坚持认为,每个分布都是成功的,因为,正如前面所述,专门用于狭窄分布范围的学习算法并不是太有用。

  有些令人惊讶的是,它可以表明,任何这样的可以弱学习的类,也可以为强标准意义上的每个分布学习。事实上,人们可以自动地将弱学习算法转换为强学习算法。其想法是多次使用弱学习方法来得到一系列的假设,每个假设都重新集中在前面发现的困难和错误分类的例子上。弱学习算法适用于任何分布的事实允许人们在每个阶段修改分布,以实现这种重复的重聚焦。然而,注意,这是不明显的如何做到,因为当我们提出一个新的例子分类,我们没有立即知道之前的假设是对还是错的,更不用说他们是否会发现困难。然而,正如罗伯特·夏皮尔在他1990年的博士论文中所展示的那样,这是可以做到的。此外,在随后的合作中,他和约阿夫·弗罗昂德找到了一种非常简单和有效的方法来实现这一目标,称为阿达布斯特。他们的方法被广泛使用,各种标准学习方法扮演了弱学习者的角色。增强已被发现是一种实用和通用的方法来提高各种基本学习方法的预测准确性,通常即使没有证据证明所使用的方法是真正的弱学习者。

  除了一般的方法,如增强,各种更特殊的机器学习算法也得到了广泛的使用。正如我们之前提到的,PAC学习是对学习时需要实现什么的规范,而不是关于如何最好地实现它的意识形态。一个重要的实证发现是,具有可分析行为的简单算法通常表现得非常好。

  我们所描述的感知器算法已经是一个非常有效的算法。正如我们所观察到的,对线性函数的限制可以通过使用非线性项作为特征来消除,但只能通过在计算和需要的例子数量中产生相应的更高的成本。对于感知器和一些相关的方法,一种具有更大的特征集能力的有效方法被称为内核的方法。相对于简单的方法,内核可以大大节省计算成本,但不能节省所需的示例数量。广泛使用的支持向量机方法遵循这一想法,但它选择了一个能最大化边际的分隔器(我们在3.7节中讨论),而不是感知器算法选择的分隔器。

  对于某些问题,甚至更简单的方法也可以非常有效。一个例子是最近邻方法,其中标记的数据项被简单地存储,并且不会生成假设。当要分类的新项目到达时,将其与存储的项目进行比较;根据某个标准识别最近的一个,其标签被预测为新项目的标签。最近语言翻译软件取得的成功可以归因于这种技术的力量。通过检查两种不同语言中对应句子对的巨大数据集,可以提取出关于一种语言中的特定新句子应该如何用另一种语言翻译的有价值的信息。

  与实际学习算法的选择问题正交的是选择基本特征或变量的使用。好的选择可以产生更准确的预测。例如,对于计算机视觉应用程序,从单个像素的亮度或颜色开始作为特征总是可能的,但通常不能给出最好的结果。相反,从一些依赖于一组相邻像素的编程特性开始,而不仅仅是一个像素,通常会得到更好的结果。例如,一个区域的平均亮度可能比单个像素的亮度更有信息。人们也知道生物系统使用这些更高层次的特征,这些特征可能是通过进化获得的,个体很难从头开始学习。在计算机中,替代程序特征集的有效性可以通过实验尝试来比较。就学习算法本身而言,有一小部分方法对所遇到的许多种数据通常是有效的。从其中许多产品中获得的性能通常可以通过提高来进一步提高。

  机器学习在几乎所有来源的数据方面都取得了惊人的成功。一个说明性的例子是来自大脑的数据。尽管人们对信息在大脑中如何被表示或处理知之甚少,但机器学习算法可以被训练,根据大脑记录的数据来预测人类在想什么。例如,当一个人看到一段文字时,关于这个词是否指工具、动物或建筑物的信息可以从这个人在大脑中血流的功能性核磁共振图像中恢复。这种恢复是通过以应用于图像为例的标准学习算法和单词类别作为标签来实现的。这些图像构成了一个没有理论的舞台,因为我们对知识如何在大脑中表现的方式知之甚少。然而,这些图像显然充满了可以学习到的规律。这是一个很好的说明,即使在最复杂和无理论的数据中也可以找到可学习的规律。

  近几十年来,机器学习不仅大大受益于更好的算法的发现,而且还受益于更快的计算机和更丰富的数据。事实上,空前的规模数据的可用性是我们文明的一个重大新发展。数据挖掘的潜在回报是巨大的,目前很大程度上尚未开发。机器学习技术在如此广泛的任务上的成功是学习算法在人类信息处理相关领域的有效性的有力证据。它为我们在这里所声称的更广泛的现象的算法的中心性提供了间接的支持,例如对常识推理。

  人们能很容易地判断机器学习在哪些应用中成功,哪些不成功吗?我想说的是,一个最低要求是,系统需要表现良好的分布(PAC学习定义中的D)应该是可识别的。这并不意味着人们需要能够显式地描述它。恰恰相反,它仅仅意味着人们可以明确地识别它。例如,人们应该能够构建一个典型例子的数据库,这样如果一个系统在该集合上工作良好,那么它也应该在“决定成功的领域”工作良好。如果你想要一个系统来玩危险的游戏!例如,用模糊的哲学术语来定义一般知识任务是不够的。相反,你需要从之前的实际游戏中确定一个典型问题的分布。如果你想建立一个能够给学生论文打分的计算机系统,你需要指定一个分布方式,比如根据语言、主题和论文写作的时代。你必须做出一些选择。如果不能创建一个典型实例的数据集,那么训练计算机在任务上表现出色的前景就很渺茫了。如果可以生成这样的典型实例的数据库,那么前景就会好得多,但不能保证。失败的发生可能是因为所需的规律天生很难学习或超出当前的能力。失败同样可能发生,因为数据集中的信息可能不够。例如,在论文评分的案例中,我们可能会因为难以获得所有学生知道但没有写下来的常识而感到阻碍。