---
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: 3250
range_count: 10
html_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5?start=3250&limit=10"
markdown_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=3250&limit=10"
previous_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=3240&limit=10"
next_url: "https://workshop.closeclaw.top/api/ai/read/396e1bee-219e-4bee-9884-3214c17ff8f5.md?start=3260&limit=10"
---

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

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

## PDF_PHYSICAL_PAGE_INDEX=3250 | PRINTED_PAGE=NOT_DETECTED

你可以从alchemy.cs.washington.edu这个网站下载我刚才描述的学习算法。用“炼金术”来为它命名是为了提醒我们，虽然它取得了成功，但机器学习仍然处于科学的炼金术阶段。如果把它下载下来，你会看到它包含的东西要比我描述过的基础算法多得多，但是它也缺少几个我之前说的通用学习算法该有的东西，比如交叉。虽然如此，为了简单，让我们利用“炼金术”来指代我们的备用通用学习算法。

炼金术解决了休谟的原始问题，方法就是除了数据，要拥有其他的输入东西：你的原始知识，依据一组逻辑公式，有还是没有权值。公式可能不一致、不完整甚至完全错误，学习以及概率推理行为会关照那件事。关键点在于炼金术不必从零开始学习。实际上，我们甚至可以用炼金术来让公式保持不变，然后只对权值进行学习。在这种情况下，给予炼金术恰当的公式可以将其变成玻尔兹曼机、贝叶斯网络、实例学习算法以及许多别的模型。这解释了为什么虽然存在“天下没有免费的午餐”的定理，但可以有通用学习算法。更确切地说，炼金术就像一台归纳图灵机，我们可以对图灵机进行编程，使其行动起来像非常有力量的或者受到极大限制的学习算法，这取决于我们。炼金术为机器学习提供统一物，就像互联网为计算机网络、关联模型为数据库，或者图形用户界面为日常应用提供统一物那样。

当然，虽然你使用的炼金术没有原始工具（而且你可以），这并不会让它不包含知识。形式语言、评分函数、优化器会暗自对关于世界的猜想进行编码。因此可以自然地问我们是否有比炼金术更通用的学习算法。当进化从第一个细胞开始它的长途之旅，一直到当今所有的生命形式时，进化会做出什么假设？我认为有一个简单的假设，所有其他的假设都会遵循这个假设：学习算法是世界的组成部分。这就意味着，学习算法作为一种实体系统，和它的环境一样会遵循相同的规律，无论这个规律是什么，我们都已经暗暗“知道”它，并做好准备去发现它。在接下来的部分中，我们会看到这个规律具体意味着什么，以及如何在炼金术中体现它。就目前而言，我们注意到，它可能是我们能回答的休谟问题中最好的答案：一方面，假设学习算法是世界的组成部分是一种猜想——原则上是这么说，因此它满足休谟的宣言，认为学习仅适用于先验知识；另一方面，这是一个多么基础而且难以反驳的猜想，也许这就是我们对于世界所需要的所有东西。

## PDF_PHYSICAL_PAGE_INDEX=3251 | PRINTED_PAGE=NOT_DETECTED

在另一个极端，知识工程师——机器学习最坚定的批评者——有好的理由来喜欢炼金术。不用基本模型结构或者几次大概的猜想，炼金术可以导入一个大型、细致的装配知识基地（如果它可用）。因为概率规则与确定性规则相比，互动的方式更为丰富，所以手工编码的知识在马尔科夫逻辑中会更深入。马尔科夫逻辑中的知识基地不一定要首尾一致，它们可以变得很大并容纳许多不同的主要因素而不会崩溃——这是一个目前为止让知识工程师迷惑的目标。

虽然如此，很多时候炼金术会解决机器学习中每个学派钻研了很久的问题。让我们反过来看看它们是什么。

符号学家结合运算中不同碎片的知识，这和数学家结合公理来证明定理是一个道理。这和神经网络和其他有固定结构的模型迥然不同。炼金术利用逻辑来完成这件事，正如符号学派所做的那样，却是一个迂回曲折的过程。为了证明逻辑中的定理，你需要发现产生该定理的公理应用的唯一顺序。因为炼金术从可能性的角度谈到其实它要做得更多：找到公式的多重序列，引出定理或者它的否定面，然后对它们进行权衡，以计算出定理真实的概率。这样它能推理的不仅与数学共性有关，还可以推理在一则新闻报道中的“总统”指的是不是“巴拉克·奥巴马”，或者一封邮件该在哪个文件夹之下。符号学派的主算法——逆向演绎，假定新的逻辑规则，用于作为数据与预期结论之间的步骤。炼金术通过爬山法来介绍新的规则，以原始规则作为开始，与原始规则和数据相结合，构建使结果概率更大的规则。

关联学派模型的灵感来源于大脑，S形曲线的网络与神经元相对应，它们之间的加权关联对应的是突触。利用炼金术，如果两个变量在某个公式中一起出现，那么它们就被联结在一起，考虑到近邻，一个变量的概率就是一条S形曲线（我不会解释为什么，这是我们在前面部分看到的主算法的直接结果）。联结学派的主算法是反向传播，他们利用它来弄清楚哪个神经元负责哪些误差，并根据它们的权值来进行调整。反向传播是梯度下降的一种形式，炼金术用它来优化马尔科夫逻辑网络权值。

## PDF_PHYSICAL_PAGE_INDEX=3252 | PRINTED_PAGE=NOT_DETECTED

进化学派利用遗传算法来模仿自然选择。遗传算法包含假设的“人口”，在每一代中，适应能力最强的会进行交叉和变异，以生产下一代。炼金术以加权公式的形式来维持假设的“人口”，在每一步中以不同的方法对它们进行改变，然后把那些最能提高数据（或者一些其他的评分函数）后验概率的变量留下。如果人口是一个单一假设，这就简化为爬山法了。当前炼金术的开源实施并不包含交叉，但这就是一个简单的加法。进化学派的主算法是遗传编程，应用交叉和突变于计算机程序上，以子集树的形式表示出来。子集树可以用一组逻辑规则来表示，Prolog编程语言就是这么做的。在Prolog中，每个规则与一个子集对应，而它前面的规则是它称呼的子集。因此我们可以将带有交叉的炼金术当作利用Prolog相似编程语言的遗传编程，这样会有一个额外的优势——规则可以是概率性的。

贝叶斯学派相信模拟不确定性是学习的关键，并利用形式表示方法如贝叶斯网络和马尔科夫网络来工作。正如我们已经看到的那样，马尔科夫网络是MLN的特殊类型。贝叶斯网络利用MLN主算法也可以轻易表示出来，一个特征对应一个变量及其起源的每个可能状态，而相应条件概率的算法则作为它的权值（然后归一化常数Z就便利地简化为1，意味着我们可以忽略它）。贝叶斯的主算法是贝叶斯定理，执行的方法是利用概率推理算法，比如置信传播和MCMC。正如你已经注意到的那样，贝叶斯定理是主算法的特例，包含P=P（A∣B），Z=P（B），而特征和权值对应P（A）和P（B∣A）。炼金术系统包含置信传播和MCMC用于推理，推广至处理加权逻辑公式。将概率推理用于对逻辑提供的证明路线上，炼金术为支持或者反对结局来权衡证据，并输出结局的可能概率。这与符号学派利用的“单纯功能”逻辑相反，该逻辑不是全有就是全无，因此当给定矛盾证据时，该逻辑就会崩溃。

## PDF_PHYSICAL_PAGE_INDEX=3253 | PRINTED_PAGE=NOT_DETECTED

类推学派的学习方法是假设有已知相似属性的实体，也会有相似的未知属性：拥有相似症状的病人也会有相似的诊断，过去喜欢买某类书的读者可能未来还会买同样的书，等等。MLN可以代表具有像“拥有相同品位的读者会买相同的书”公式的实体之间的相似性。爱丽丝和鲍勃买到的相同的书越多，他们越可能有相同的品位；（将相同的公式应用于相反方向中）如果鲍勃买一本书，爱丽丝也买这本书的概率就比较大。他们的相似性由他们有相同品位的概率来表示。为了使这一方法真正起作用，对于相同规则的不同实例，我们可以有不同的权值：如果爱丽丝和鲍勃都买了某本罕见的书，这包含的信息量也许会比他们购买畅销书的信息量大，因此应该有更高的权值。在这种情况下，相似度由我们计算的属性是离散的（买或者不买），但我们也可以在连续属性之间表示相似度，就像两座城市之间的距离一样，方法就是让MLN把这些相似性当作特点。如果评估函数是一个边际风格评分函数，而不是后验概率，结果就是支持向量机的概括版，也就是类推学派的主算法。我们的主学习算法面临的更大挑战是复制结构地图，这是类比更强大的类型，可以从这个域（比如太阳系）推断到另外一个域（原子）。我们可以通过学习公式来做到这一点，这些公式不会指代源域中的任何特定关系。例如，“抽烟的人的朋友也抽烟”讲的是友谊和抽烟，但“相关的实体有相似的属性”适用于任何关系和属性。我们可以通过概括“朋友的朋友也抽烟，专家的同事也是专家”来掌握它，还有在社交网络中其他这样的模式，然后将其应用到诸如网页之类的地方，包含像“有趣的网页会链接到有趣的网页”这样的实例，或者应用于分子生物学中，包含像“与蛋白质调控互动的蛋白质也会调控基因”这样的实例。我的小组的研究人员和其他人已经完成所有这些事，接着还会做更多。

炼金术也可以启动我们在第八章提到的5种无监督学习。显然，它会进行关系学习，实际上，这就是它很多已应用的地方。炼金术利用逻辑来代表实体之间的关系，以及用马尔科夫网络来使它们自己变得不确定。我们可以将炼金术变成强化学习算法，方法就是利用奖励环绕它，并利用它来掌握每种状态的值，这和传统强化学习算法利用的方法一样，比如神经网络。我们可以在炼金术内部进行组块，方法就是添加一种新的运算，这种运算会将一串串的规则变成单个规则（例如，“如果A那么B，如果B那么C，如果A那么C”）。一个带有单个未观察到变量（且该变量与所有可观察变量相联结）的MLN会进行聚类（未观察到变量是这样一个变量：我们从未在数据中见过它的值，是“隐藏的”，可以这么说，只能通过推断得出）。包含一个以上未观察到变量的MLN，通过由可观察变量（数量更多）推断那些变量（数量更少）的值的方法，来进行离散降维。炼金术也可以利用连续未观察到变量来处理MLN，这些变量会在诸如主要成分分析、等距映射的过程中用到。因此，原则上说，炼金术可以做所有我们让机器人罗比做的事，或者至少所有我们在本书中讨论过的事。的确，我们已经利用炼金术来让机器人掌握其所在环境的地图，通过它的传感器弄明白哪里是墙、哪里是门，以及它们的角度和距离等，这是制造称职家用机器人的第一步。

## PDF_PHYSICAL_PAGE_INDEX=3254 | PRINTED_PAGE=NOT_DETECTED

最终，我们可以将炼金术变成一种元学习算法，比如通过将个体分类器编码成MLN来进行堆叠，添加公式或者学习公式以将它们结合起来。这就是DAPRA在其个性化学习助手（PAL）项目中所做的。PAL是DARPA历史上最大型的人工智能工程，也是Siri的祖先。PAL的目标是构建自动化秘书。它利用马尔科夫逻辑来作为其支配一切的表示方法，将来自不同模块的输出融合到该做什么的最终决定中。这也允许PAL的模块通过追求统一意见来彼此互相学习。

目前炼金术最大的应用在于从网络中学习语义网络（或者谷歌所谓的知识图谱）。一个语义网络就是一组概念（就像行星与恒星）以及这些概念中的关系（行星环绕恒星）。炼金术会通过从网页中提取的事实（例如，地球绕着太阳转）来掌握100万个以上这样的模式。它会独自发现诸如行星之类的概念。我们之前使用过的版本，比我在此已经描述过的基本版要先进，但基本思想是一样的。各式各样的研究已经利用炼金术或者他们自己的MLN执行工具来解决自然语言处理、计算机视觉、动作识别、社会网络分析、分子生物学及其他许多领域中的问题。

## PDF_PHYSICAL_PAGE_INDEX=3255 | PRINTED_PAGE=NOT_DETECTED

尽管成功了，炼金术还是有一些明显的不足之处：它还没有真正扩展到大数据，而一些在机器学习领域没有博士学位的人会发现它很难使用。因为这些问题，它还没有准备就绪，让我们看看能对它们做些什么。

行星尺度机器学习

在计算机科学中，如果一个问题没能得到有效解决，它就没有真的得到解决。如果你不能在可用时间和记忆内完成一件事，那么知道这件事怎么做并没有多大用处，因为在你处理MLN时，这些时间和记忆会消耗得很快。通常我们利用数百万的变量和数十亿的特征来对MLN进行学习，但这并不像表面看起来的那么大规模，因为变量的数量会随着MLN中实体的数量迅速增长——如果你有一个包含1000人的社交网络，你就已经拥有100万对可能的朋友，以及10亿个“朋友的朋友是朋友”公式的实例。

炼金术中的推理是逻辑与概率推理的结合。前者通过证明定理来完成，后者则通过置信传播、MCMC以及我们在第六章中见过的其他方法来完成。我们将两者结合至概率定理证明中，统一推理算法可以计算任意逻辑公式的概率，是当前炼金术系统的关键部分。但在计算法方面，它需要的很多。如果你的大脑利用概率定理证明，那么一只老虎会在你没来得及想明白如何逃离时就把你吃掉，这就是马尔科夫逻辑一般性的高昂代价。你的大脑在真实世界中已经进化，必须对额外的猜想进行编码，这样有利于它进行有效推理。在过去几年中，我们已经开始弄清楚它们可能是什么，并将其编码入炼金术。

## PDF_PHYSICAL_PAGE_INDEX=3256 | PRINTED_PAGE=NOT_DETECTED

这个世界并不是由随意杂乱的相互关系组成的，它有等级结构：星系、行星、大陆、国家、城市、社区、你的家、你、你的头、你的鼻子、其顶部的细胞、它里面的细胞器、分子、原子、亚原子粒子。那么模拟世界的方法会用到MLN，也有等级结构。这是一个猜想的例子，学习算法和环境都相似。MLN不需要知道，基于假定，世界由哪些部分组成。炼金术要做的，就是假设世界有若干个组成部分，然后将这些部分找出来。这很像一个刚做好的书架，假设有若干书，但还不知道哪些书会放在书架上。等级结构有助于使推理更易于处理，因为世界的子部分更多的是会与同部分的子部分互动，比如，邻居彼此之间的交流会多于与其他国家人民的交流，由同一个细胞产生的分子也会更多地与那个细胞的其他分子进行反应。

另外一个使学习和推理变得更容易的属性，就是存在于世界的实体不会以任意形式出现。它们会分成不同的类别和子类别，来自同一等级的成员之间的相似性会大于来自不同等级成员之间的相似性。有生命的或者无生命的，动物或者植物，鸟类或者哺乳类，人类或者非人类，如果我们知道与当前问题相关的所有特质，就可以将所有这些特质以及可以节省很多时间的实体合在一起。像以前那样，MLN不用知道基于假定的世界上的类别是什么，它可以通过分级聚类来从数据中掌握这些类别。

世界包含各个部分，而每个部分又属于不同类别，将这些部分和类别结合起来，这样使炼金术中的推理变得易于处理所需要的东西就已经基本齐全。我们可以掌握世界的MLN，方法就是将其分解成若干部分和子部分（这样多数互动关系就存在于同一部分的子部分之间），然后将各个部分集合成类别和子类别。如果世界是一个乐高玩具，那么我们将其分解为一块块“砖”，记住哪块和哪块相连，然后通过形状和颜色来将“砖块”集合起来。如果这个世界是维基百科，我们可以将它谈论的实体抽取出来，将它们集合成类别，然后学习类别之间如何相互关联。如果某人问我们：“阿诺德·施瓦辛格是动作明星吗？”我们可以回答：“是的，因为他是明星，而且他在动作片里。”渐渐地，我们能够学习越来越大规模的MLN，直到去做我的一位谷歌朋友称作“世界范围的机器学习”的事：同时模拟世界上的每个人，数据会不断流入，答案则不断流出。

## PDF_PHYSICAL_PAGE_INDEX=3257 | PRINTED_PAGE=NOT_DETECTED

当然，如此规模的学习需要的不仅是直接执行我们见过的算法。例如，除这一点之外，单个处理器还不足够，我们得在许多服务器上分配学习。工业和学术界的研究人员已经深入调查，例如，如何并行使用多台计算机来进行梯度下降，其中一个选择就是在处理器之间划分数据，另外一个就是划分模型的参数。在每个步骤之后，我们将结果整合起来，然后重新分配工作。不管怎样，在不让交流成本压倒你，或者不让结果的质量受困扰的情况下完成这件事，做到这一点绝非易事。另外一个问题就是，如果你有无数数据串要输入，那么你在实现某些决定之前，不能等着看数据。一个解决办法就是利用采样原理：如果你想预测谁会赢得下一届总统选举，就不必问每个选民会投给谁，几千个人的样本已经足够（如果你愿意接受一点不确定）。诀窍就是把这个推广到拥有几百万个参数的复杂模型中。但我们只能通过这样的方法做到一点，即在每一步中尽量从数据流中举例子，因为我们要十分肯定自己做了正确的决定，并且所有决定的不确定性保持在允许范围内。利用这种方法，我们就可以在有限的时间内从无限数据中学到东西，就像我在一篇提议这种方法的论文中提及的那样。

大数据流系统是塞西尔·德米尔机器学习的产品，拥有数千个服务器，而不是数千个附加设备。在最大型的项目中，只要把所有数据汇集起来、验证数据、清除数据、将数据处理成学习算法能消化的形式，这样做，建造金字塔就简单得像在公园散步一样。

欧洲的“未来信息和通信技术”项目旨在建造整个世界（真正含义即是字面意思）的模型。社会、政府、文化、技术、农业、疾病、全球经济等不能落下一样。这当然还不成熟，但它却预示着未来要发生的事。同时，像这样的项目可以帮助我们找到可扩展性的极限在哪里，以及如何克服这些极限。

## PDF_PHYSICAL_PAGE_INDEX=3258 | PRINTED_PAGE=NOT_DETECTED

计算复杂性是一件事，人类复杂性是另外一件事。如果计算机就像白痴专家，那么学习算法有时会遇到少年天才乱发脾气的情况，这也是那些能征服他们的人类会收获颇丰的原因之一。如果你知道以专业的手法调整控制旋钮，直到到达恰当的位置，那么魔法就会随之而来，以一连串超越学习算法年份见解的形式出现。

而且，和德尔斐神谕并无两样的是，解释学习算法的宣言本身需要大量的技能。虽然如此，如果转错手柄，学习算法可能会涌出一系列胡言乱语，或者在反抗中保持沉默。不幸的是，就这一点而言，炼金术并不比多数算法好。把你知道的用逻辑的形式写下来、输入数据、按下按钮才是好玩的部分。当炼金术返回准确而有效的MLN时，你会去酒吧庆祝；当它不返回时——很多时候会出现的状况——战争就开始了。问题存在于知识、学习、推理中吗？一方面，因为学习和概率推理，简单的MLN可以做复杂程序能做的事。另一方面，当它不起作用时，调试起来就困难很多。解决办法就是让它更加交互，有能力进行反省，并解释它的推理。这就会让我们向终极算法更加靠近一步。

医生马上来看你

治愈癌症的方法是一种能够输入癌症基因组，并输出杀死癌细胞药物的程序。我们现在可以想象，这样的程序（就叫它“CanceRx”）会长什么样。尽管外表上看起来简单，CanceRx是编出的程序中规模最大也是最复杂的程序，的确太大了，所以它只能在机器学习的辅助下建立。它的基础是一个关于活细胞如何运转的详细模型，人体内的每种细胞都会有一个子类别，还有关于细胞如何互动、支配一切的模型。该模型以MLN或者与其相似的形式，将分子生物学的知识与来自DNA测序仪、微阵列，以及其他许多来源的大量数据结合起来。有些数据通过手动进行编程，但大部分是从生物医学文献中提取出来的。模型会不断进化，并将新实验的结果、数据来源、患者病历合并起来。最后，它就掌握每种类型人体细胞中的每条路线、调节机制、化学反应，这就是人体分子生物学的总和。

## PDF_PHYSICAL_PAGE_INDEX=3259 | PRINTED_PAGE=NOT_DETECTED

CanceRx会将其大部分时间用于搜索包含备选药物的模型。考虑到新药，该模型会预测药物对癌细胞和正常细胞的效果。当爱丽丝被诊断为癌症时，CanceRx会利用她的正常细胞和肿瘤来将它的模型实例化，并尝试所有可能的药物，直到它找到一种能杀死癌细胞而又不伤害健康细胞的药物。如果它找不到有效药物或者有效药物组合，那么它就会着手研发一种会治愈癌症的药，也许会利用爬山法或者交叉法来让它从现有的药物中发展起来。它会在研究中的每一步中，在模型上尝试备选药物。如果药物抑制了癌症，但仍然有一些有害的副作用，CanceRx会尝试调整它以摆脱副作用。在癌症变异前，模型就能预测可能的变异，CanceRx就会开出那些能在中途扼杀癌变异细胞的药物。在人性与癌症这场象棋游戏中，CanceRx将是将军。

请注意机器学习不会独自把CanceRx给我们。这不像我们有一个巨大的分子生物学数据库整装待发，将这个数据库输入终极算法，弹出来的是活细胞的完美模型。在多次交互作用下，CanceRx可能是无数生物学家、肿瘤医生、数据科学家进行世界范围内合作的最终结果。然而，最重要的是，CanceRx会在医生和医院的协助下，从几百万个癌症病人中整合数据。没有数据，我们就无法治愈癌症；有了它，就能治愈癌症。为整个不断壮大的数据库做贡献，这不仅是每个病人的利益，还是它的伦理责任。在CanceRx的世界中，离散的临床实验是过去的事情。CanceRx提出的新治疗方法也正在继续被推出，如果这些治疗方法起作用，则会用到更广范围的病人身上。在经过改善的良性循环中，成功和失败的经历都会为CanceRx的学习提供宝贵的数据。如果你以某种方式看待它，机器学习可能只是CanceRx工程的一小部分，仅次于数据收集和人类贡献。但如果以别的方式看待它，机器学习就是整个企业的关键。没有它，我们只能掌握癌症生物学的零碎知识，散落在数千个数据库和数百万篇科学文章中，每个医生只会注意一小部分。将所有这些知识集中成一个连贯整体，这超出了不受协助的人类的能力，无论人类多么聪明，只有机器学习才能做到这件事。因为每种癌症都不一样，它让机器学习找到通用模式。而且因为单个组织会产生几十亿个数据点，这就需要机器学习来弄明白能为每个新病人做点什么。

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