cheapter7 如何用不精确的概念来推理呢?真正的天才在于评估不确定、危险和相互冲突的信息的能力。温斯顿教堂 推理和学习之间的紧张关系有很长的历史,至少可以追溯到亚里士多德,正如前面提到的,他在他的后验分析中对比了“三段论和归纳”。然而,在他的论文中,亚里士多德几乎完全处理了三段论,这可能引发了西方文明的高度重视。最近,逻辑推理已经从最高声誉的基础上走了下来。正如人们经常指出的那样,人类不懂逻辑。但这并不是唯一的问题。计算机非常擅长逻辑,但我们通常不相信它们会评估不确定、危险和相互冲突的信息——即使我们这样做了,在这方面取得成功的计算机系统通常也不是基于逻辑推理,而是基于从大量数据中学习。\本章采用了亚里士多德的格言,即信仰来自两个基本来源:三段论和归纳法,或推理和学习。尽管近年来这个逻辑遭受了打击,但我的目标是描述这两个消息来源如何统一成一个一致的整体。这样做,学习就是首要地位,但推理仍然是至关重要的。在前几章中,我区分了有理论的主题(有解释理论和无理论的主题),我认为关于无理论的信仰具有PAC学习的语义,因为它们首先是通过学习归纳获得的。(一旦一个人学会了这样的信念,它就会转移到另一个人,但即使这样,语义仍然是学习的。)我现在将讨论如何用这种没有理论的信息来推理的问题。这是有一定意义的,因为人类经常对没有理论的主题进行推理。
这种推理是有意义的,是理论内容的理论已经被数学逻辑学家长期确立。继19世纪乔治·布尔和戈特洛布·弗雷格的工作之后,在理解数学上严格的推理观点所能采取的形式方面取得了很大的进展。我们现在可以问一些关于数学本身内部推理机制的本质和力量的问题。真理和可证明的概念已经被定义和区分,问题是在给定的逻辑系统中,是否一切真实都是可证明的,所有可证明的都是正确的。从这项工作中发展出来的数学逻辑已经被证明适用于正式的主题,特别是数学本身,并且对这些主题有重要意义要说。到20世纪初,对这一领域的关注已经转移到了知识分子领域的中心舞台。所有的数学问题都能翻译成一种统一的正式语言吗?从一组真理是不言而喻的共同公理中,能有一组错误的公理吗?一些著名的人物,包括哲学家伯特兰·罗素和数学家大卫·希尔伯特,都相信这样一个程序是可以实现的。令普遍惊讶的是,1930年,24岁的库尔特·戈德尔表现出了相反。\特别是,他证明了在任何足够丰富的逻辑系统中,都有无法证明的真实陈述。这种发展,虽然看起来是消极的,但却产生了深远的智力影响。这也许是第一个结果,让人瞥见了通过推理可以实现的一些最终限制,即使是在一个完全理论化的舞台上。也许最重要的是,它在几年内导致了图灵和其他人对计算及其局限性的研究。这些在数学逻辑上的发现,无论它们本身多么有意义,但并没有直接解决关于无理论的推理问题。从20世纪50年代开始,人工智能领域的研究人员就开始攻击这种问题由约翰·麦卡锡开创的人工智能的逻辑方法,把无理论本质上当作理论。要为字典中找到单词的概念构造公理。这包括那些远远超出任何已知科学领域的日常概念,而这种公理化以前从未尝试过。然后应用了合理的推理规则,即在适当的正式系统中使用时,它们从未得出错误的结论。这种方法及其等价物成为新建立的人工智能领域的许多早期工作的概念基础。最近,在概率形式主义中也采用了类似的方法,其中推理规则是那些适用于概率论的规则。这些方法也将主题视为理论性的,使其大体上等同于逻辑方法。虽然逻辑和概率模型在应用于理论时都是数学原则的,但当它不清楚模型如何与潜在的现实相关时,它们没有提供原则的保证,这是主题没有理论的情况。然而,从学习的角度来看,正如我们将展示的,人们可以挽救推理结果的一些保证,即使是在这种不希望的情况下。通过学习可以实现的保证是在合格的PAC意义上实现的,虽然错误是不可避免的,但它们的水平可以通过投入与人们所寻求的保证的质量相称的努力来控制\我认为,重要的是要明确区分这两种方法——使用某种逻辑或概率模型的数学建模,而不是学习。在实践中,通过两者混合很容易模糊差异。例如,考虑一个旨在用于语音识别系统的模型,即人们如何发音“是”和“不是”。这样的模型通常是概率性的。问题是这个模型是否要完全被编程。如果是的话,那么这将把这种现象当作理论来对待,因为一个人正在试图有一个外部现实的模型或理论。然而,通常,在设计了这样一个模型之后,其数值参数会通过学习进行调整。如果所得到的模型是有用的,问题就出现了,即成功是由于学习还是由于最初的编程模型。作为另一个例子,我们可以从一个医学诊断模型开始,该模型首先包含了一些来自采访医生的关于各种身体状况和症状之间关系的信念。当对真实数据进行测试时,代表这些关系的参数可能会出现
无论起点是什么,一旦我们开始从数据中学习,我们就必须承认,我们正在寻求学习现象的好处。然后,根据第5章所述的准确和有效的学习标准来评估成功。如果要用学习的标准来衡量成功,那么不太清楚的就是为什么我们根本需要推理。可能有一系列任务,如识别危险的动物,走上台阶,或发出适当的问候,这就足够了。也许这些任务都可以被学习到。
7.2# 对于简单的生物来说,一套学习过的反应很可能就足够了。单一学习电路的应用,我称之为反射反应,近似于生活中特定情况的最佳行为。2(在这里,电路这个词的使用意义与我在第4章中介绍它的一般意义相同。)当然,即使对人类来说,这样的反射能力往往就足够了。在开车时,经验丰富的司机被认为可以通过唤起从以前类似的情况中学到的反射反应来应对。他们不需要经过一个明确的推理过程,即考虑替代行动可能产生的替代事件序列。然而,这些反射反应并不足以解释所有的智能行为。有一个地方有更多的东西,这个东西就是推理。如果与数学逻辑或概率推理不同,这种推理要与无理论知识兼容,它将需要能够以有原则的方式操纵不确定和不可靠的知识,从而对预测的准确性提供一些保证。
满足这些需求的最简单的推理形式是连续应用两个学习电路,每个电路都具有PAC学习的语义。锁在两个或多个电路可能是有效的情况下,相信单个电路可能已经被学习是不合理的。考虑以下示例。如果你被问及亚里士多德是否爬过一棵树,或者他是否有手机,你可能可以一些自信地回答这两个问题,尽管之前没有机会直接为这两个问题获得很多统计证据。在回答这些问题中的任何一个时,你调用的是一个单一的电路,该电路已经学会了识别一些单一概念的实例,如手机所有权或爬树。对这样的问题做出反射性反应需要你的大脑中有一个经过特殊训练的电路,以一个名字作为输入,输出那个人是拥有手机还是爬过树。
实际上是不可理解的。似乎更合理的是,你宁愿应用一系列电路序列,每个电路都封装了一个常识规则。通过这种方式,你会不断地在脑海中的图片中添加越来越多的信息。你首先把亚里士多德看作是一个生活在某个时代的特定的人。然后,您将依次应用一些常识规则来进行一些推论,以建立一个更完整的图景。关于孩子们喜欢爬树的想法和手机被发明的时代的想法将在这些规则中表达出来。其中一些规则可能表达事实,而许多规则没有理论上的内容,并将被归纳地学习。对这个例子的一个可能的批评是,人类没有学习任何关于爬树和手机所有权的规则,仅仅因为这个问题对爬树和手机所有权没有重要价值。如果立即做出这样的决定很重要,那么也许我们会学习对他们的反射反应。因此,推理仍然有可能只对几乎不重要的人为问题有用。如果动物主要通过执行反射任务来生存,那么也许人类的理性只对神秘之谜有用
然而,更基本的论点可以支持额外的推理能力。学习电路的链可以使应用单个学习电路无法实现的能力。例如,所需的单个电路可能是属于可学习的类之外的形式,但它可能相当于一对可以分别学习的电路。所以,继续使用亚里士多德,一旦我们认识到他是人类,可能会有一个简单的条件来决定他是否曾经爬过树。然而,如果不首先确定所涉个体的物种,一个关于什么可以爬树的一般标准可能太复杂了,不可能在可学习的类别中。与PAC学习本身一样,通过推理得出的结论有时将被允许是错误的,仅仅因为学习到的规则有时被允许是错误的。我们永远不能绝对确定我们的结论;亚里士多德可能已经在宇宙中激起了足够的好奇心,吸引了带着手机的外星游客。然而,即使在存在所有这些不确定性的情况下,原则推理也有一定的保证
7.3在半个 世纪的人工智能研究过程中,理解推理的努力遇到了几个挑战。我认为四种计算复杂度、脆性、语义和基础是与本文提出的方法最相关的方法。我解决所有这些挑战的方法是确保在推理系统中所表示的信息与这种表示本身之外所指的内容之间存在某种明确的关系。这种关系将与PAC学习相同,并将被称为PAC语义。\
第一个挑战是不可计算性和计算复杂度的障碍。在第5.1节中,我引用了图灵的引用,在推理等同于数学逻辑的背景下。在其他公式中也发现出现了类似的复杂性问题。事实上,图灵证明停止问题是不可计算的,可以看作是对所谓的形式主义末日的早期预警。如果一个框架太宽泛,不允许高效的计算,那么在一个正式的框架中表达我们所希望的东西往往是徒劳的。我不接受这种形式主义本身就注定要失败。挑战在于确定一种有效的形式——一种足够广泛到手头的任务,而不是广泛到计算上难以处理的形式。就像学习和进化一样,我们必须再次在锡拉和查里布迪斯之间航行。考虑到我们对计算复杂度问题的讨论程度,我将在这里不进行进一步的讨论。
7.4脆弱性的挑战 几十年来,人们付出了广泛的努力,向计算机灌输知识,使它们能够回答常识性的问题。主要来说,知识是由人类编程的,一个正式的逻辑系统被用来推理这些知识。3总的来说,这些努力到目前为止只取得了有限的成功,而且在程序员没有预见到的情况下,计算机经常会失败,它们给出的反应往往是不合理的,甚至是荒谬的。计算复杂度的障碍本身并不能解释这种失败。即使预期的、有数学原则的演绎过程在允许的时间内得出结论,计算机的结论也往往没有达到目的。
造成这种失败的原因必须是,推理系统所解释的编程语句不能捕捉到目标现实。虽然每个编程语句对程序员来说都是合理的,但以程序员没有计划的方式组合这些语句的结果可能是不合理的。 这种失败通常被称为脆性。无论逻辑推理系统还是概率推理系统被实现,在任何没有理论的系统中,脆弱性都是不可避免的。如果所表示的信息本身并不一致,并且与被建模的领域完全对应,那么就不能对推断的准确性提出索赔。虽然这些系统在理论内容上有原则,但它们没有为没有理论提供有用的保证
避免这种脆性和实现鲁棒性的唯一方法是让系统学习。谓词微算和贝叶斯概率都是建立充分的数学系统。然而,在这些系统中,面对有限的数据和有限的计算,控制错误的鲁棒性问题并没有得到解决。学习理论确实解决了这些问题,因此是这个企业更合适的基础。4事实上,其优势至少有两方面。首先,根据定义,PAC学习是对计算和数据的鲁棒性。它量化了学习规则的准确性保证如何随着数据和计算越来越多的增长而变得越来越强。如果没有这样的保证,就几乎不能说任何不太完美的系统。其次,一个学习系统具有根本的优势,即它可以检查其对世界的预测。如果它发现自己做出了错误的预测,它就可以适应自己,以便在未来更有可能更准确。有了这样的反馈,系统就可以从其知识上的几乎任何差距或不一致中恢复过来。
一个密切相关的问题是对噪音的弹性。即使人类提供的一些信息是假的,可能在传播过程中被噪音破坏。令人高兴的是,政治交流委员会的基本模型,它不讨论噪声,很容易扩展以适应它。此外,研究表明,学习算法对某些噪声具有一定的弹性。5例如,如果通过一定概率随机改变例子的标签来引入噪声,那么在没有噪声的情况下可学习的类(SQ可学习类)在其存在时保持PAC可学习的。 赋予机器常识知识的经验努力表明,所需的知识数量比预期的都要高得多。这是困难的进一步来源,但它纯粹的规模更有力地表明了在知识获取过程中需要有原则的自动化,从而进行学习
我并不是说我在这里提倡的基于学习的方法没有挑战。对学习和推理的研究表明,除非这些问题被非常仔细地表述出来,否则每个问题的计算复杂度可能会变得太大,难以处理。我将就这个问题提出解决建议,但请先讨论剩下的两个挑战。
7.5语义学的挑战我相信,如果没有系统中所代表的信息和它所引用的外部现实之间的明确对应关系,任何用大规模的常识进行推理的系统都不能有效地工作。要理解或构建这样的系统,我们需要对这种对应关系有有原则的看法。采用无原则的观点似乎是不合理的乐观,并希望纯粹偶然地满足这一最基本的要求。 如果一个人用英语表达的日常概念编写机器,那么就需要确保每个单词都以一致的方式使用。自然语言中的几乎任何一个单词都有一定的含义,有些单词有几个不同的含义。如果在编程规则中使用了端口、绿色或保守词等词,那么必须确保每个规则都在完全相同的意义上使用这些概念。如果要区分“端口”的几种含义,例如饮料和系泊场所,则变体必须命名(例如端口1、端口2),并一致使用。这样做的困难已经充分解释了脆性的一个重要方面。
PAC学习提供了一种解决这个问题的方法。在每个概念中,比如端口2,系统都会有一个假设或程序来识别它,比如说,“是的,这是端口2的一个例子,”或者“不,它不是”。这个程序将会根据已经被认可的特性来学习。其中一些特征可能是以前已经学过的。其他一些将被预先编程,或者像生物体一样,通过进化学习。后一类的例子是视网膜中的光探测器或计算机的相机输入设备中的像素。但是,无论这些特性是什么,整个系统中的最终产品都将是“端口2”概念的识别器。提供给系统的输入可以由这个识别器进行标记,以指示哪些是“端口2”的例子,哪些不是。
如果一个系统中的所有识别器在很大程度上都是一致的,即在大多数自然情况下,附加到输入上的标签并不与识别器所说的话相矛盾,那么我们可以认为该系统在PAC意义上是一致的。然而,如果在自然情况下经常遇到矛盾,那么系统就可以自己检测到这一点,并通过修改其识别器来寻求达到一个更一致的状态。学习的一个重要目标是在这个意义上达到PAC的一致性。对于这样的PAC一致系统,一个概念的意义只是该概念所标记的电路所识别的任何东西。因此,经过PAC一致性训练后,该系统中的概念端口2的含义只不过是以端口2为目标的电路计算的函数。这个电路可能涉及其他已学习的概念,但最终将依赖于接受外部感官输入的预编程特征。该电路计算的函数与外部现实之间的关系是PAC语义之一。
7.6我们终于遇到了第四个挑战,我称之为接地。它与语义和脆性都密切相关,简单地说,它涉及两个主要问题:声称要表示的知识的范围,以及时间、空间的限制,或PAC语义要准确的其他限制。即使是对于最简单的逻辑语句,也会出现这些问题。想想“所有的人类都是凡人”这一断言。逻辑学家可能会把它说为“对于所有t,如果t是人类,那么t是凡人”,并将其缩写为∀t人类(t)→凡人(t),其中倒a,∀运算符,表示“对于所有人”。即使有这个简单的例子,也有一些明显的困难。这个语句适用的t的范围到底是什么?如果它适用于宇宙中的任何地方,我们怎么能如此确定这个断言是正确的呢?它适用于小说中描述的人类吗?例如,如果我们希望从书面文字中了解这个世界,那么最后一个问题并不无关紧要,因为很多文字指的是虚构的个人。超人是虚构的事实很容易知道我们是否只想了解真实的人。
我们总是可以向语句添加一些先决条件,以更详细地指定正在断言的范围。例如,∀t非虚构的(t)→(人类(t)→凡人(t))。这将确保只有对非虚构的人类才能宣称人类死亡。然而,我们在这里有一个无限的回归。我们确定这是一个完整的定义吗?更重要的是,我们如何定义非虚构、人类和凡人这些术语?这些问题不是也有同样的问题吗?请注意,互补的存在量词∃,即“E”的镜像,表示“存在”,提出了所有相同的问题。如果我们认识到人类智能每天都能有效地应用于更没有普遍性和持久性的问题,就可以更欣赏这一挑战的严重性。我们与有不同个性和欲望的不同的人互动。我们需要预测他们的行为,而没有描述他们以及在什么情况下会做什么的公理。
我们需要一个原则性的基础来解决这个基础问题。PAC学习通过识别它学习和执行的特定分布D来解决这个问题。如果没有一些这样的基础概念,就不可能有一个学习理论。但是我们如何指定人类个体从中学习的典型情况的分布D呢?如何确保在经常发生的情况下,我们会做正确的事情,以及如何保护我们不做出没有我们经验不支持的草率决定?无论其机制是什么,我们都需要在人工系统中得到同样的保护。如果我们创建了一个系统来执行一个任务,但并没有我们期望它表现良好的目标分布,那么我们真的不知道我们正在试图完成什么。
为了以不同的方式强调这一点,我们在这里以一个悖论作为结论,它说明了讨论概率事件而没有定义它们所指的分布的谬误。考虑以下建议,并决定它是否会对你有利。你要去街上随便找一个人,提出比较你每个人身上的现金数额,并同意有更多钱的人给对方。你通过以下(错误的)论点说服自己,这将是有利可图的。你可以这样说:“我有足够多的钱。另一个要么有更多,说y,或者更少,说z。(在没有损益的情况下,忽略它们相等的情况。)这两种可能性发生的概率相同,概率为0.5。如果另一个有更多,那么我就赢了y,否则我就失去了我的x。因此,我的预期增益是0.5y−0.5x,它大于0,因为y大于x。”你重复这个会致富吗?因为对方可以和你一样争论,而且两个球员都不可能有一个预期的胜利,所以刚才给出的论点一定是错误的。但在上述论证中,哪一步是错误的一步呢?常识提供了一个线索。在实践中,你不会玩游戏,但如果你在玩游戏的路上,你可能会玩游戏。