检测电子邮件中的垃圾邮件就是个例子。每天都有新的垃圾邮件源出现。追踪每一种新出现的源头,并手动将检测方法加入电子邮件系统让人们望而止步。更有效的方法是使用机器学习算法来学习一些规则,将用户标记为垃圾邮件的电子邮件与没有标记的电子邮件区分开来。其他应用程序允许搜索引擎对万维网界面进行排名,从而决定显示在页面顶部的内容,以对应用户的搜索条件。当提供可供用户选择的页面时,用户点击的页面作为证据是无用的。
类似地,对于在线广告来说,从不同网络搜索记录中学习,可以提供在哪里投放广告最有利的有用信息。
其他的重要的应用程序包括自然语言的处理和计算机视觉,这两者都在尝试模拟人类的能力。在自然语言处理的过程中,一个基本的问题就是拼写的纠正处理。人们常常可以从付金额词语中判断出哪一个是荒漠,哪一个是餐后甜点。骆驼放在荒漠更好,而餐饭和后者更加匹配。人们可以尝试通过编程或者学习来完成自动化纠正拼写错误的任务。简单的机器学习方法在训练中包含目标单词的正确句子时,可以准确地预测出正确的选择,这项技术在近几年来取得了不小的成就,创造出了更多的准确的系统。在计算机视觉领域,一个关键的任务是自动识别图像中存在的内容的类别。至此,当前的选择方法涉及到机器学习算法。机器学习的普遍成功很大程度上取决于最近发现的一些学习算法的高效性。一项可以吸引人们注意的创新项目正在被推进,那是一种几乎提高所有基本学习算法性能的通用技术。他的发现源于对PAC学习模型的研究。PAC学习被定义为要求假设任意小的误差进行预测。根据同样的精神,我们也可以定义弱学习的概念,与此相反,对他的要求较弱,就是假设的预测只是比随机更好猜测。对于赌徒来说,这就是一种有用的学习形式,他们只要做到预测的结果概率高一点就足够了。我们可以从这个意义上定义概念上的弱学习是什么意思,同样,我们坚持认为学习对于每个部分都是成功的。因为正如前面提到的,学习专门针对小范围分布的算法不是很有用。
有些令人吃惊的是,可以证明,任何这样的学习类型,可以针对任何分布的弱学习,也可以针对所有强学习。实际上,人类可以自动的将弱学习算法转换为强学习算法。这个想法是通过搜集使用弱学习方法的次数信息,以获得一系列的假设,再将每一个假设重新集中在前面那些发现困难和错误的例子上。事实上弱学习算法适用于任何分布,允许人们在每个阶段修改分布,以实现重复聚焦。但是请注意,这没有明确的告诉我们如何做好,因为当我们面临一个新的分类时,我们没有直接的方法知道前面的假设是否正确,更何况他们不一定能发现这个问题。然而,正如罗伯特在他的1990年的博士论文里所指出的那样,这是可以做到的。此外,在他随后的合作中,他和Yova Schapire发现了一种非常简单有效的方法,他们将这种方法称之为Adaboost。他们的方法被广泛运用,各种标准的学习方法扮演了弱学习者的角色。辅助学习已经被发现是一种实用并且通用的方法来提高各种基础学习预测的准确性较高的方法,即使没有证据表明这种方法是真正的弱学习方法。
除了辅助学习等通用学习方法外,各种更特殊的机器学习算法也被广泛使用。正如我们之前提到的,PAC学习是在学习时发现需求,而不是学习如何最好的实现他的意识形态。一个重要的经验发现,具有可分析行为的简单算法通常表现的非常好。
我们所描述的感知器算法已经是一个非常有效的算法。正如我们所观察到的,对于线性函数的限制可以通过使用非线性项作为特征来消除,但是这只会在计算所需示例数量时产生较高的代价。对于感知机和一些相关算法来说,有一种有效的方法可以在没有代价的情况下获得更大的特征集,这叫做核函数法。相对于直接的方法,内核可以在很大程度上节省计算成本,但在数量上需要一个实例。广泛使用的支持的向量机方法遵循这一思想,但它选择了一个最大限度的边界(我们在3.7节讨论),而不是由感知器算法做选择。
对于某些问题,甚至更简单的方法也可能非常高效。最邻方法就是一个例子,在这种方法中,标记的数据项被简单地储存起来,并且不生成任何假设。当一个需要分类的新项目到达时,他将与已经储存的项目进行比较;根据某种标准确定最接近目标内容的一项,并且预测其标签,作为新项目的标签。最近语言翻译软件的成功可以归功于这项技术的力量。通过检查两种不同语言的中对应句子的大量数据库,可以提取出一种语言的新句子应该如何让翻译为另一种语言的有价值的信息。
正交问题的选择,实际学习算法是选择基本特征或者使用变量。好的选择可以产生更准确的预测。例如,对于计算机视觉的应用程序,以单个像素的亮度或者颜色作为特征总是可能的,但往往不能得到最好的结果。与此相反,从一些依赖于一组相邻像素(而不是单个)的编程功能开始,通常会得到更好的结果。例如,一个区域的平均亮度可能比单个像素的亮度提供的信息更多。生物系统也会使用过更高层次的特征,这些特征可能是通过进化获得的,个体很难从零开始学习。在计算机中,可通过试验来比较可选择程序特征集的高效性。就学习算法啊本身而言,有一小部分方法通常对遇到的各种数据都是有效的。辅助学习通常可以进一步提高其中许多算法的性能。
机器学习几乎在所有来源的数据方面都取得了惊人的成就。一个典型的例子就是来自大脑的数据。尽管人们对信息在人脑中时如何表达或者处理的了解的不多,但可以根据大脑记录的数据预测人们所想的内容,通过训练来实现机器学习算法。当一个人在浏览文字时,例如,搜索这个词是指工具,动物还是建筑的信息时,可以从人的大脑血流的功能性磁共振图像中恢复。这种恢复是通过标准学习算法实现的,这些算法应用于图像中以作为实例,并且将单词的类别作为标签。这些图像构成了一个没有理论的舞台,因为我们对知识在大脑中是如何表现的知之甚少。然而,这些图像显然有大量可以学习的规律。这很好的说明了这样一个事实:即使是在最复杂和无理论的数据中也可能发现可以学习的规律。
近几十年来,机器学习不仅受益于更好的算法的发现,也受益于更快速的计算机和更丰富的数据。事实上,能够以前所未有的规模获得数据,是我们文明的一项重大新发展。在目前可能实现的规模上,数据挖掘的潜在回报是巨大的,而且目前很大程度上没有开发。机器学习技术在如此广泛的任务上的成功是学习算法在与人类信息处理相关领域的有效性的有力证据。它为算法的中心性提供了间接的支持,,我们将之称之为更广泛的现象,比如说常识推理。
我们能简单推测出那些应用程序中机器学习会成功,哪些不会成功?我想说的是,一个低要求是系统需要在其运行上进行良好的分布(PAC学习模型定义中的D)应该是可以识别的。这并不意味着人们需要能够明确的描述它。恰恰相反,它仅仅意味着人们可以毫不含糊的识别它。例如,一个人应该能够构建一个典型例子的数据库,这样如果一个系统在该集合上运行良好,那么它也应该在决定成功的“领域中”运行良好。如果你想要一个系统来玩Jeopardy!例如,用模糊的哲学术语定义一般知识任务是不够的。与此相反,你需要确定一些典型问题的分布,这些问题可能来源于之前的游戏。如果你想建立一个可以很好的为学生论文评分的计算机系统,你需要指定一个分布,比如根据语言 主题和论文写作的时间。你必须做出一些选择。如果不能创建典型实例的数据集,那么训练计算机完成这项任务十五前景就很渺茫。如果能够生成这样一个典型的实例数据库,那么前景就会好很多,但并不能完全保证。失败可能会发生,因为所需的规则本质上是很难学习的或者说是超出了当前的范围。由于数据集中的信息不足以应付手上的任务,同样可能会发生失败。例如,在作文评分的情况下,我们可能会获得所有学生知道但没有写下来的常识知识的困难障碍。
9.3人工智能-困难在哪里?
许多人都在寻求能够接近人类处理尝试能力的机器算法中遇到很多困难。如果人类能够达到这种能力,当然完全复制也不可能。然而,困难似乎是巨大的。我相信困难的根源是隐含在我们这里已经讨论过的关于先天/后天的争论中:进化和学习两个过程的相似之处。个体的认知系统是数亿百年的可进化目标追求的结果,接着是出生后数年的可学习目标追求的结果。Turing谈到了如何像教育婴儿一样教育计算机。只要我们能制造出与婴儿功能相似的电脑,这听起来似乎是合理的。不幸的是,婴儿的状态是进化算法的结果,就我们目前的理解能力而言,是没有理论依据的。没有理由相信婴儿的状态是容易描述的。进化十五算法可能是理论上的,但从我们的角度来看,他们的结果仍然是不合理的。
如果我们有一个很好的理论,关于哪些原始特征是由出生时的人类神经系统计算出来的,那么我们就可以用计算机编程来计算这些原始特征,然后也许可以像人类教育婴儿一样教育计算机。然而,如果出生的时刻不是任何这类教育课程可行的起点,那么是否有好的起点就不清楚了。在最坏的情况下,我们别无选择,只能从数十亿年前生命的起源开始,模拟所有的进化过程。这将是不幸的,因为伴随进化而来的条件和特定的投入可能太困难了,以至于我们无法在这方面取得成功。
我们可以期待一个中间的解决方法,在这个解决方案中,对人类功能的部分理解,或者在开发的早期阶段,就足够了。这坑是我们最大的希望。例如,在那个阶段,我们至少需要对人类视觉系统的功能有一个基本的了解。有很多证据表明,即使是这个系统是非常微妙的,出生后还需要学习很多东西。但是,即使视觉系统能够接受这种中间处理,其他领域可能会更加困难。在认知层面,婴儿对生活的准备比人们曾经认为的要充分的多。作为间接证据,以人工智能研究人员在形式化我们所需要了解日常生活中所有常识知识方面遇到的困难为例。为了理解一部小说,需要知道小说中没有叙述的很多事实;很多都是如此明显,以至于没有在印刷中声明。这不仅仅是复杂的成人小说的特点;有人说,儿童故事几乎和成人写的小说一样需要许多常识知识。不幸的是,对于Turing的梦想来说,婴儿奇迹般地出生了,而且准备好了接受更好的信息。
问题来了,人类是如何获得他们出生后所学到的任何东西的,没有明确的说明。当然,有一系列的可能的模式,包括视觉、嗅觉、味觉和触觉,都可以绕过语言。我们之前讨论过这样一个问题,即这些知识需要被视为已习得的知识,一边它的所有不确定性都能得到充分解决。具体说明这种知识的任何形式,无论是以其原始的方式,还是以文字描述,都是困难的,而且超出了我们目前的能力水平。知识越明显,似乎就难以确定人类是如何获得它的。
Turing在讨论计算机的能力时提出了这个问题,计算机是“一个没有身体的‘大脑’”。他观察到,玩游戏(比如国际象棋)、翻译语言、密码学和数字学等领域非常适合这种大脑,因为这些任务需要“很少与外部世界接触”;他认为,密码学可能是“最有价值的”。这是非常有先见之明的。我们的电脑在交流时自动加密,至少在其他三种活动中也利用了电脑。Turing将这四个领域与第五个领域--语言学习进行了对比:“在上述领域中,语言学习最令人印象深刻,这个领域似乎过于依赖于感觉器官和运动,因此不可行。”它用这几句话概括了常识获取问题的一个基本特征。
不谈出生后的学习过程,我们能对婴儿出生时的性格特征问题说些什么呢?为了了解婴儿的神经回路,我们可以通过行为实验,观察婴儿在许多不同外部刺激下的反应。然后,我们希望从这些复杂的计算机系统对各种输入的行为中归纳出它们的行为。然而,前面回顾的学习理论的负面结果显示,这一途径有其自身的困难。除非电路来自一个足够简单的类别,否则执行他的归纳法可能在本质上是不可行的。
最后一种最极端的方法是使用一些未知的技术,一个细胞一个细胞或者一个分子一个分子的复制婴儿的电路,完全的复制他们所有的功能。正如我们在3.6节中看到的,从电路的描述推断电路的功能可能是比较困难的。因此,即使有一天这种方法变得可行,也不一定对我们的理解有帮助。
作为一个科学问题,人工智能挑战一直看起来很诱人,因为有人认为它只是试图模拟自然界中已经存在的系统。我认为,之所以困难,是因为现存的系统是数十亿年来从经验中学习的结果,而所有这些经验明显的痕迹已经消失了。只要没有发现根本不同的方法来创造相同的最终结果,这就是一个严重的障碍。
9.4人工智能中的人工
这就很自然的引出了一些问题:人工智能和人工有什么区别?人工智能不是人工的,因为实现的物质基础是像计算机这样的人工制品,而不是生物的。这不可能是一个如此基本的特征--计算与它发生的基底无关。此外,人工智能不是人工的,因为它的计算过程不同于自然。这也不可能是根本的,因为人工模拟自然没有障碍。如果有根本的区别,那一定是从环境中学习知识的方式上。正如我所说,在自然界中,知识从世界中提取的唯一方式是通过某种学习过程,在这个过程中,数十亿年的进化已经发生,并且充当了主要的角色。因此,重新建造自然进化的自然环境的困难可能是模仿自然智能的最大的障碍。我们可能能够理解并且模拟所有涉及算法的过程,但是依然不能在技术上模拟这些过程的结果,因为这些算法所学习的环境是不可复制的。
因此人工智能目前正在研究的各种技术可能被视为试图通过其他方式复制自然知识获取过程的结果。在某些领域,这些技术将比他们在自然中的相似的事务更加有效。例如,在玩国际象棋和其他游戏时,计算机对游戏数据库进行大规模搜索,可能的搜索路径比人类多了数百万倍。这是一种人为的技术,在国际象棋中比它的自然的不同的对手更加有效。
在9.6节中,我将给出一些我的关于我们如何在人工智能中进行处理的想法。但是首先,我将考虑一些核心问题的不同观点,以及他们对我们的看法。