---
schema_version: "library-reader-v1"
source_type: "original_book"
title: "人工智能时代：破解人机共存密码（套装共10册）"
author: null
edition: null
publisher: null
year: null
isbn: "9787521719512"
library_document_id: "396e1bee-219e-4bee-9884-3214c17ff8f5"
source_sha256: "e5d429a1fedfac2a13b0bd25057c39d818c33927767948a9bb41411f01413ced"
pdf_physical_page_count: 3314
pdf_physical_page_index_base: 0
range_start: 320
range_count: 10
html_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5?start=320&limit=10"
markdown_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=320&limit=10"
previous_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=310&limit=10"
next_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=330&limit=10"
---

# 人工智能时代：破解人机共存密码（套装共10册）

> 页码规则：PDF_PHYSICAL_PAGE_INDEX 是从 0 开始的权威文件物理页索引；PRINTED_PAGE 是页面中识别出的印刷页码，可能为空，二者不得混用。

## PDF_PHYSICAL_PAGE_INDEX=320 | PRINTED_PAGE=NOT_DETECTED

附录B 知识与逻辑

逻辑学是一种用确定的知识进行推理的研究。就主题而言，它是完全通用的，也就是说，逻辑学知识可以是关于任何事物的。因此，逻辑学是我们理解通用智能的不可或缺的一部分。

逻辑学的主要要求是形式语言中的句子有精确含义，这样就有一个明确的过程来判定一个句子在给定的情况下是真还是假。一旦有了这些，我们就可以编写合理的推理算法，根据已知的句子生成新的句子。这些新句子能保证是从系统已经知道的句子中派生出来的，这意味着在任何情况下，只要原来的句子为真，新句子就必然为真。这使得机器能够回答问题，证明数学定理，或者构建确保成功的计划。

高中代数提供了一个很好的例子（尽管它可能会唤起我们痛苦的记忆）。形式语言包括4x+1 = 2y-5之类的句子。当x=5且y=13时，这个句子为真；当x=5且y=6时，这个句子为假。从这个句子可以推导出另一个句子，比如y = 2x+3，当第一个句子为真时，第二个句子必然也为真。

在古代印度、中国和希腊独立发展起来的逻辑学核心思想是，精确含义和合理推理可以应用于任何句子，而不仅仅应用于数字。经典的例子从“苏格拉底是人”和“人皆有一死”开始，然后得出“苏格拉底是会死的”。<sup>[1]</sup>这种推导是严格且正式的，因为它不依赖于任何关于“苏格拉底是谁”或“人和死分别是什么意思”的进一步信息。逻辑推理严格且正式，这意味着我们可以编写算法来实现它。

## PDF_PHYSICAL_PAGE_INDEX=321 | PRINTED_PAGE=NOT_DETECTED

命题逻辑

有两种逻辑尤为重要，它们可以帮助我们理解人工智能的能力和前景：命题逻辑和一阶逻辑。这两者之间的差异对于理解人工智能的现状及其可能的发展至关重要。

让我们从命题逻辑开始，这是二者中相对简单的一个。句子仅由两种东西组成：一是代表命题真假的符号，二是逻辑连接词，如“且”“或”“非”“如果……那么……”。（稍后我们将看到一个示例。）这些逻辑连接词有时被称为布尔逻辑，以19世纪逻辑学家乔治·布尔（George Boole）的名字命名，他用新的数学思想重振了他的领域。逻辑连接词与计算机芯片中使用的逻辑门是一样的。

自20世纪60年代初以来，命题逻辑中实用的“推理算法”就已为人们所知。<sup>[2]</sup> <sup>[3]</sup>虽然在最坏的情况下，处理一般推理任务可能需要花费指数级的时间，<sup>[4]</sup>但现代命题推理算法处理的问题包含数百万个命题符号和数千万个句子。它们是构建有保障的后勤计划，在制造芯片之前验证芯片设计，在部署软件应用程序和安全协议之前检查其正确性的核心工具。令人感到惊奇的是，一旦人们将所有这些任务表述为推理任务，就可以使用单一算法（命题逻辑的推理算法）来解决所有任务。显然，这是迈向智能系统通用性目标的一步。

不幸的是，这不是很大的一步，因为命题逻辑的语言并不是很有表现力。让我们看看这在实践中会是什么样子，例如，我们用命题逻辑语言来表达围棋中合法走子的基本规则：“轮到谁走，谁就可以在任意空着的交叉点上落子。”<sup>[5]</sup>第一步是决定用什么命题符号来讨论围棋的走法和棋盘上的局面。重要的基本命题是特定颜色的棋子在特定时间是否处于特定位置。因此，我们需要诸如“白38，5，5”和“黑38，5，5”这样的符号。（请记住，与人类、死亡和苏格拉底一样，推理算法不需要知道符号的含义。）那么白棋第38手能够在（5，5）位落子的逻辑条件是：

## PDF_PHYSICAL_PAGE_INDEX=322 | PRINTED_PAGE=NOT_DETECTED

换言之：那里没有白子，也没有黑子。这似乎很简单。不幸的是，在命题逻辑中，棋局中的每个位置和每一步棋都必须单独写出。由于棋盘有361个交叉点，每盘棋大约要进行300步，这意味着该规则有超过10万个副本！关于吃子和重复局面的规则，由于它们涉及多个棋子和位置，因此情况更糟，我们很快就会写满数百万页。

显然，现实世界比围棋棋盘大得多，远远超过了361个位置和300步棋，而且除了棋子之外还有很多东西，因此，用命题语言来了解现实世界是完全没有希望的。

问题不仅在于规则手册将达到令人难以置信的规模，还在于学习系统从例子中获取规则，需要多到令人难以置信的经验。虽然人类只需要一两个例子就能了解走子、吃子等的基本思想，但是基于命题逻辑的智能系统必须看到针对每个位置和步数的走子、吃子的示例。这个系统无法像人类那样从几个例子中归纳出一般规则，因为它无法表达一般规则。这种限制不仅适用于基于命题逻辑的系统，也适用于任何具有类似表达能力的系统，其中包括贝叶斯网络（它最早是命题逻辑的概率学“表亲”）以及神经网络（它是人工智能“深度学习”方法的基础）。

一阶逻辑

那么，下一个问题是，我们能否设计出一种更具表现力的逻辑语言？我们希望可以通过以下方式将围棋规则告知基于知识的系统：

对于棋盘上的所有位置，以及所有棋步，规则如下……

（非白38，5，5）且（非黑38，5，5）

## PDF_PHYSICAL_PAGE_INDEX=323 | PRINTED_PAGE=NOT_DETECTED

一阶逻辑由德国数学家戈特洛布·弗雷格（Gottlob Frege）于1879年提出，它为人们提供了一种描述规则的方法。<sup>[6]</sup>命题逻辑和一阶逻辑的关键区别在于：命题逻辑假设世界是由真假命题组成的，而一阶逻辑假设世界是由可以通过各种方式相互关联的对象组成的。例如，这些对象可以包括彼此相邻的位置、连续的几步棋、特定局面下在某些位置上的棋子，以及特定局面下合法的走子等。一阶逻辑允许我们宣称世界上所有对象的某些属性都为真。因此，围棋规则可以写成：

对于所有棋步t、所有位置l、所有颜色c，如果第t步棋轮到颜色c移动，且下第t步棋时l没被占据，则颜色c的第t步棋在位置l处落子是合法的。

通过一些额外的说明和一些额外的句子来定义棋盘位置、两种颜色以及“没被占据”的意思，我们已经开始有了一个完整的围棋规则。这些规则用一阶逻辑描述与用英语描述几乎一样长。

20世纪70年代末，逻辑编程的发展为逻辑推理提供了简明而又高效的技术，这种技术体现在一种名为Prolog的编程语言中。计算机科学家研究如何在Prolog中以每秒数百万步的速度进行逻辑推理，从而使逻辑的许多应用变得实用。1982年，日本政府宣布对基于Prolog的人工智能进行巨额投资，该项目名为第五代项目（Five GenerationProject），<sup>[7]</sup>美国和英国也做出了类似的回应。<sup>[8]</sup> <sup>[9]</sup>

不幸的是，第五代项目和其他类似的项目在20世纪80年代末、90年代初失去了发展的动力，部分原因是逻辑无法处理不确定的信息。人们概括出了一个很快成为贬义的词：有效的老式人工智能，简称GOFAI。<sup>[10]</sup>越来越多的人认为逻辑与人工智能无关。事实上，如今深度学习领域的许多人工智能研究人员对逻辑一无所知。这种流行趋势可能会消退：如果你接受世界中存在以各种方式相互关联的对象，那么一阶逻辑将是与此相关的，因为它提供了对象和关系的数学基础。谷歌DeepMind的CEO德米斯·哈萨比斯（Demis Hassabis）也认同这一观点：<sup>[11]</sup>

## PDF_PHYSICAL_PAGE_INDEX=324 | PRINTED_PAGE=NOT_DETECTED

你可以把今天的深度学习想象成与我们大脑中的感觉皮层类似的东西：我们的视觉皮层或听觉皮层。但是，真正的智能当然远不只这些，你还必须将其重新组合成高级思维和符号推理，这些都是经典人工智能在20世纪80年代试图解决的许多事情。

……我们希望（这些系统）建立起符号水平的推理——数学、语言和逻辑。这是我们工作的重要部分。

因此，我们在人工智能研究的头30年中得到的最重要的教训之一是：在任何有用的意义上，一个可以了解事物的程序至少需要拥有与一阶逻辑能力相媲美的表达和推理能力。到目前为止，我们还不知道需要采取什么样的确切形式才能创造出这样的程序，它可能会被纳入概率推理系统、深度学习系统或一些尚待发明的混合设计中。

[1] 这个例子不太可能出自亚里士多德，但可能起源于生活在公元2世纪或3世纪的塞克斯都·恩披里柯（Sextus Empiricus）。

[2] 用于一阶逻辑定理证明的首个算法是通过将一阶语句简化为（大量）命题语句来实现 的 ： Martin Davis and Hilary Putnam, “A computing procedure forquantification theory,” Journal of the ACM 7 (1960): 201–15。

[3] 命 题 推 理 的 一 种 改 进 算 法 ： Martin Davis, George Logemann, and DonaldLoveland, “A machine program for theorem-proving,” Communications of theACM 5(1962): 394–97。

[4] 可满足性问题，即确定一组句子在某些情况下是否为真，是NP完全问题。推理问题，即确定句子是否从已知句子中得出，是NP完全问题的余问题，这类问题被认为比NP完全问题更难。

[5] 这条规则有两个例外：不允许重复（不允使棋局回到先前局面的着法），和不允许自杀（不允许把棋子下在立即被吃掉的位置，例如，不能在已经被包围的位置上落子）。

## PDF_PHYSICAL_PAGE_INDEX=325 | PRINTED_PAGE=NOT_DETECTED



## PDF_PHYSICAL_PAGE_INDEX=326 | PRINTED_PAGE=NOT_DETECTED

附录C不确定性和概率论

逻辑学为用确定的知识进行推理提供了通用基础，而概率论则需要用不确定的信息进行推理（确定的知识是其中的一种特例）。不确定性是现实世界中的智能体的正常认知状态。虽然概率论的基本思想是在17世纪发展起来的，但直到最近，以正式的方式用大概率模型来进行表达和推理才成为可能。

概率论基础

概率论和逻辑学都认为，可能世界（possible worlds）是存在的。人们通常从定义可能世界是什么开始，例如，如果我掷一枚普通的6面色子，就有6个世界（有时称为结果）：1、2、3、4、5、6。其中一个恰好是实际情况，但我的先验知识不知道哪一个是实际情况。概率论假设可以为每个世界添加一个概率，对于我的色子，我把1/6的概率添加到每个世界中。（这些概率碰巧相等，但不必一定如此，唯一的要求是这些概率相加之和必须等于1。）现在我可以问一个问题，比如，“我掷出偶数的概率有多大？”要找到答案，我只需将数字为偶数的3个世界的概率相加：1/6+1/6+1/6=1/2。

考虑新证据也很简单。假设先知告诉我掷出来的是一个质数（即2、3或5），这排除了世界1、4和6。我只需计算剩余的可能世界的概率，使它们的总和保持为1。现在，掷出2、3或5的概率各为1/3，并且我掷出偶数的概率现在只有1/3，因为2是剩下的唯一的偶数。这种随着新证据到来而更新概率的过程就是“贝叶斯更新”的一个例子。

## PDF_PHYSICAL_PAGE_INDEX=327 | PRINTED_PAGE=NOT_DETECTED

因此，概率论看起来易如反掌！只要是台电脑就能完成数字加法，那么有什么问题呢？当存在很多个世界时，问题就出现了。例如，如果我掷色子100次，就有6<sup>100</sup>种结果。通过把数字分别添加到每个结果上来开始概率推理过程是不可行的。处理这种复杂情况的线索之一来自一个事实：如果已知掷色子的结果是公平的，那么掷色子就是独立事件，也就是说，掷色子得到的任何一个结果都不会影响其他结果的概率。因此，独立性有助于构建复杂事件集的概率。

假设我正在和儿子乔治一起玩《大富翁》游戏。我的棋子落在了“只能访问”的方格上，乔治拥有黄色地皮，我现在的位置距离他的黄色地皮分别有16、17和19个方格。他现在是否应该在黄色地皮上买房子？如果我落在了那些方格里，我就得付给他昂贵的租金。或者他是否应该等到下一回合再买房子？这取决于我在当前回合落在黄色地皮上的概率。

《大富翁》游戏中掷色子的规则是：掷两枚色子，然后根据两枚色子的点数之和移动棋子；如果两枚色子点数一致，则玩家将再次掷色子并再次移动；如果第二轮两枚色子的点数仍然一致，则玩家将第三次掷色子并第三次移动（但如果第三轮两个色子的点数仍然一致，则玩家将会入狱）。例如，我可能掷出4–4，然后掷出5–4，总和为17；或者掷出2–2，然后掷出2–2，然后掷出6–2，总和16。和以前一样，我只需要把我落在黄色地皮上的所有可能世界的概率相加。不幸的是，此时有很多世界。我总共可以掷出多达6枚色子，因此可能世界的数量达到了数千个。此外，这些色子不再是独立的，因为除非第一次掷出的两枚色子的点数一致，否则第二次机会就不存在了。而如果我们固定了第一次时两枚色子的值，那么第二次两枚色子的值就还是独立的。我们是否有办法控制这些？

## PDF_PHYSICAL_PAGE_INDEX=328 | PRINTED_PAGE=NOT_DETECTED

贝叶斯网络

20世纪80年代初，朱迪亚·珀尔提出了一种叫作“贝叶斯网络”的正式语言，这使得在许多现实世界的情境中，人们都有可能以非常简洁的形式表示海量结果的概率。<sup>[1]</sup>

图18展示了《大富翁》游戏中掷色子的贝叶斯网络，表现了《大富翁》游戏中掷色子的规则，并使算法能够计算从其他一些地图格子（如只能访问的格子）开始，落在一组特定格子（如黄色地皮）上的概率。（为简单起见，网络忽略了获得机会卡或公共基金卡并转移到不同位置的可能性。） $\mathrm { D } _ { 1 }$ 和 $\mathrm { D 2 }$ 表示第一次掷出的两个色子的点数，并且它们是独立的（它们之间没有联系）。如果两个色子点数相同（Doubles<sub>12</sub>），则玩家掷第二次，因此 $\mathrm { D } _ { 3 }$ 和 $\mathrm { D } _ { 4 }$ 的值不是0，以此类推。在上述情况下，如果掷三次色子总点数是16、17或19，玩家就会落在黄色地皮上。唯一需要提供的概率是各个色子 $( \mathrm { D } _ { 1 }$ 、D<sub>2</sub>等）掷出1、2、3、4、5、6点的概率都是1/6，也就是说，总共只有36个数字，而不是数千个。解释网络的确切含义需要一些数学知识，<sup>[2]</sup>但基本思想是用箭头表示依赖关系——例如，Doubles<sub>12</sub>的值取决于 $\cdot \mathrm { D } _ { 1 }$ 和 $\mathrm { D 2 }$ 的值。类似的， $\mathrm { D } _ { 3 }$ 和 $\mathrm { { I D } _ { 4 } }$ （第二次掷两个色子）的值取决于Doubles<sub>12</sub>，因为如果Doubles<sub>12</sub>的值为假，那么 $\mathrm { D } _ { 3 }$ 和 $\mathsf { I D } _ { 4 }$ 的值为 $\mathsf { I } 0$ （即没有更多的机会掷色子）。

## PDF_PHYSICAL_PAGE_INDEX=329 | PRINTED_PAGE=NOT_DETECTED



下一段：[继续读取](https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=330&limit=10)
