奎克的藏经阁 · MinerU 解析内容

人工智能时代:破解人机共存密码(套装共10册)

3314 个 PDF 物理页 · 本页显示文件第 3071–3080 页

PDF 物理页索引 3070

文件中的第 3071 页 · 印刷页码:未识别

你的朋友本也玩得很好,但他喝得有点多。他的镖射完了,他大声说,平均下来是他射中了靶心(也许他本该是一位统计学家)。这是低偏差、高方差的例子,如图3–1d所示。本的女朋友艾希莉射得很稳,但射的时候过于偏向右上角。她的方差低,但偏差高(见图3–1a)。科迪,从外地来,从来没有玩过飞镖,射的镖都位于中心上方,偏离中心,他的偏差和方差都高(见图3–1b)。

PDF 物理页索引 3071

文件中的第 3072 页 · 印刷页码:未识别

你可以估算一种学习算法的偏差和方差,方法就是在掌握训练集的随机变量之后,对算法的预测进行对比。如果算法一直出错,那么问题就出在偏差上,而你需要一个更为灵活的学习算法(或者只和原来的不一样即可)。如果出现的错误无模式可循,问题就出在方差上,而你要么尝试一种不那么灵活的学习算法,要么获取更多的数据。大多数学习算法都有一个“把手”,通过旋转“把手”,你可以调节这些算法的灵活度,例如,显著性检验的界限值,或者对于模型规模的惩罚方式。扭动“把手”是你尝试的第一个方法。

归纳是逆向的演绎

更深层的问题是,多数学习算法开始时掌握的东西很少,即使转再多“把手”,也没法让这些算法到达终点。没有成年人大脑中所储存知识的指导,这些算法很容易误入歧途。虽然多数学习算法会误入歧途,但只是假设你明白真理的形式(例如,那是一小组规则),还不足以达到令人震惊的程度。严格的经验主义者会说,开始时知之甚少,这是所有新生儿都有的特点,因为这个特点深深存在于其大脑结构中,而孩子确实会比成人更容易犯过拟合的错误,但我们想学得比孩子快(18年是很长的一段时间,而且还没把大学教育时间计算在内)。主算法应该能以大量的知识作为启动(无论这些知识由人类来提供,还是之前已经掌握),然后在对数据做出新概括时,用到这些知识。这就是科学家做的工作,这相当于从零开始做。“分而治之”原则的归纳算法做不到这一点,但还有别的掌握规则的方法能做到。

PDF 物理页索引 3072

文件中的第 3073 页 · 印刷页码:未识别

问题的关键在于认识到,归纳仅仅是逆向演绎,就和减法是加法的逆运算,或者积分是微分的逆运算一样。这个观点由威廉姆·斯坦利·杰文斯于19世纪末首次提出。史蒂夫·马格尔顿和雷·邦坦(一个英国—澳大利亚研究组)在此基础上于1988年设计出第一个实用算法。在数学这个学科中,通过已知条件进行运算,得出其逆向结果的方法已经有一段传奇的历史。把这种方法运用到加法当中就有了整数,因为如果没有负数,加法就不可逆了(3-4=-1)。同样,将其用到乘法中就有了有理数,而将其运用到平方运算中就有了复数。让我们来看看能否将这种方法运用到演绎中。演绎推理的一个典型例子就是:

苏格拉底是人类。

所有人类都会死。

所以……

第一个句子是关于苏格拉底的事实,第二个是关于人类的一般规则。接下来的推理是怎样的?苏格拉底当然也会死,这是将一般规则用到苏格拉底身上得出的。相反,我们在归纳推理中会以最初事实和衍生事实作为开始,然后找一个规则,让我们由前者推出后者:

苏格拉底是人类。

……

所以苏格拉底也会死。

PDF 物理页索引 3073

文件中的第 3074 页 · 印刷页码:未识别

有这样一个规则:如果苏格拉底是人类,那么他就会死。这句话完成了推理,但并不是很有用,因为这是专门针对苏格拉底的规则。但现在我们应用牛顿定律,然后将该定律推广到所有实体当中:如果某实体是人类,那么它就会死。或者更简洁些:所有人类都会死。当然,仅通过苏格拉底就归纳出该规则过于草率,但对于其他人类,我们知道相似的事实:

柏拉图是人类,他会死。

亚里士多德是人类,他会死。

以此类推……

对于每个事实,我们构建这样的规则,让我们由第一个事实推出第二个事实,然后通过牛顿定律将其推广。当同一条通用规则一次又一次被归纳出来时,我们有信心说那条规则说的是真的。

到目前为止,我们还没有做任何“分而治之”算法无法做到的事。可是,如果我们不知道苏格拉底、柏拉图、亚里士多德是人类,只知道他们是哲学家,那会怎样?我们仍会得出结论,说他们也会死,因为之前我们就归纳过或者别人告诉过我们,所有人都会死。这也是一种有效推广(至少在我们解决人工智能问题,而机器人开始从事哲学研究之前是),而且这也在我们的推理中“填补了漏洞”:

苏格拉底是哲学家。

所有哲学家都是人。

所有人都会死。

所以苏格拉底会死。

PDF 物理页索引 3074

文件中的第 3075 页 · 印刷页码:未识别

我们也可以单纯从其他规则中归纳另一些规则。如果我们知道所有哲学家都是人,而且会死,我们就可以归纳出所有人都会死(我们不会归纳出所有会死的都是人类,因为我们知道其他会死的动物,例如猫和狗。另一方面,科学家、艺术家等也是人类,也会死,因此这条规则得到加强)。通常,我们以越多的规则和事实作为开头,也就有越多的机会运用“逆向演绎”归纳新的规则。我们归纳的规则越多,我们能归纳的规则也就越多。这是知识创造的良性循环,只受过拟合风险和计算成本的限制。可是在这里,我们也有初始知识的协助:如果我们有很多小的而不是大的漏洞要修补,归纳的步骤就不会有那么大的风险,所以过拟合的可能性也会降低(例如,给定相同数量的例子,“所有哲学家都是人类”这个归纳,就比“所有人都会死”这个归纳风险要小)。

逆运算往往比较困难,因为逆运算的结果不止一个。例如,一个整数有两个平方根:一个正数,一个负数 $[ 2 ^ { 2 } = ~ ( ~ - ~ 2 ~ ) ~ ^ { 2 } = 4 ]$ 。最为人所知的是,对一个函数的导数积分,只会将函数恢复为一个常数。函数的导数告诉我们该函数在每个点上下浮动的幅度。把所有幅度值加起来会重新得到函数,除非我们不知道它从哪里开始变化。我们可以在不改变导数的情况下,上下“滑动”积分过的函数。为了简便,我们可以假设附加常量为0,来“取缔”函数。逆向演绎存在类似的问题,而牛顿定律就是一个解决方法。例如,我们由“所有希腊的哲学家都是人类”和“所有希腊哲学家都会死”可以归纳出“所有人类都会死”,或只能归纳出“所有希腊人都会死”。可是为什么仅满足于最保守的归纳?其实我们可以认为所有人都会死,直到遇到例外(据雷·库兹韦尔说,这个意外很快就会出现)。

同时,逆向演绎的另外一个重要的应用,就是预测新研制的药物是否有不良的副作用。动物测试及临床试验的失败,成为研制新药物需要花费多年、数十亿美元的主要原因。通过归纳已知有毒分子的结构,我们可以得出规律,迅速清除明显的有毒化合物,大大提高剩余化合物的临床试验成功率。

PDF 物理页索引 3075

文件中的第 3076 页 · 印刷页码:未识别

掌握治愈癌症的方法

更广泛地说,逆向演绎是在生物学中发现新知识的重要方法,这也是治愈癌症要迈出的第一步。根据中心法则的观点,在活细胞中进行的任何活动都最终由细胞的基因控制,通过发起蛋白质的合成来完成。一个细胞就像一台微型计算机,而DNA就是计算机运行的程序:改变DNA,皮肤细胞就会变成神经元细胞,或者小鼠细胞会变成人类细胞。在计算机的程序中,所有的故障都是由程序员引起的。但在细胞中,故障可自行产生,比如当辐射或者细胞复制误差将某基因变成另外一个基因时,当基因偶然被复制两次时……很多时候,变异会导致细胞悄无声息地死去,但有时候细胞开始生长,然后不可控制地分裂,这样癌细胞就产生了。

治愈癌症意味着在不破坏完好细胞的情况下,阻止受损细胞的繁殖。这就需要知道完好细胞和受损细胞的区别在哪里,特别是它们染色体组的区别在哪里,因为其他所有的一切都依此进行。幸运的是,基因测序变得越来越普遍、越来越实惠。利用基因测序,我们可以预测哪种药对哪种癌基因起作用。这和传统的化学疗法不一样,化学疗法对所有细胞的影响都一样。掌握哪种药物对哪种变异有效,这需要关于患者的数据库、他们的癌基因、服用过的药物以及药效。最简单的规则对基因与药物之间一对一的对应关系进行编码,例如,如果出现BCR–ABL基因,那么服用格列卫这种药物(BCR–ABL引发一种白血病,而格列卫在10个患者中能治愈9个患者)。一旦癌基因排序和治疗结果核对达到标准管理,更多这样的规则会被发现。

PDF 物理页索引 3076

文件中的第 3077 页 · 印刷页码:未识别

然而,这仅仅是一个开始。大多数癌症都会涉及各种混合的变异,或者只有靠某些药物才能治愈,而这些药物尚未被研发出来。下一步就是以更为复杂的条件来掌握规则,这涉及癌基因组、患者的基因组、病史、药物的已知副作用等。但最终我们需要的,就是完整细胞运转的模型,这让我们在计算机上对特殊病人变异的影响、不同药物组合的效果进行模仿,无论是真实存在的,还是猜想出来的,都进行模仿。我们构建此类模型的主要信息,主要源于DNA测序仪、基因表达微阵列以及生物学文献。将这些结合起来,人们就会看到逆向演绎的作用。

亚当(我们在第一章中提到过的机器人科学家)就是一个例子。亚当的目标是弄明白酵母粉如何起作用。机器人以酵母遗传学、新陈代谢的基本知识,以及一批酵母细胞的基因表达数据作为开端,运用逆向演绎来假设哪种基因会通过哪种蛋白质来表达,然后设计微阵列实验来对其进行检测,接着修正假设,最后重复以上步骤。是否每个基因都会表达出来,这取决于其他基因,以及所处的环境条件,由此产生的网络交互可表达为一个规则集,例如:

如果温度高,那么基因A就会表达出来。

如果基因A表达出来,而基因B没表达出来,则基因C表达出来。

如果基因C表达出来,那么基因D不会表达出来。

如果我们知道的是第一条和第三条规则,不知道第二条,但我们有微阵列数据,数据显示在高温条件下,基因B和基因D无法表达,那么我们就可以通过逆向演绎来归纳出第二条规则。一旦我们有了这条规则,而且也许利用微阵列实验证实了这条规则,那么我们就能用它作为进一步归纳推理的基础。同理,我们也可以将化学反应的顺序拼凑起来,因为蛋白质就是按照这些顺序发挥作用的。

PDF 物理页索引 3077

文件中的第 3078 页 · 印刷页码:未识别

即便如此,仅仅知道哪些基因调节哪些基因,以及蛋白质如何组织化学反应中的细胞网络还不够。我们还需要知道,每种分子产生的量有多少。DNA微阵列和其他实验能够提供这种数量方面的信息,但逆向演绎,以其“非有即无”的逻辑特点,并不是很擅长处理这方面的事情。因此我们要用到联结学派的方法,这会在下一章谈到。

20问游戏

逆向演绎的另外一个局限性就在于,它涉及很密集的计算,因此很难扩展到海量数据集中。因为这些原因,符号学家选择的算法是决策树归纳。决策树可以当作此类问题的答案:如果有多个概念的规则对应一个实例,那怎么办?那么我们怎么知道实例对应哪个概念呢?如果看到一个部分封闭的物体,它有一个平面、四条腿,那么我们怎么知道它是一张桌子,还是一把椅子呢?有一个方法,就是对规则进行排序,例如以准确率递减的顺序来排列,然后选择符合描述的第一条规则。另一个方法,就是让规则自己选择。决策树通常会保证,每个实例会准确对应一条规则。也就是说,在一次及以上的属性测试中,如果每对规则存在区别,这样的规则集将被组织成一棵决策树。例如,看看以下这些规则:

如果你支持削减税收,反对堕胎,那么你属于共和党。

如果你反对削减税收,那么你属于民主党。

如果你支持削减税收,提倡堕胎合法,反对枪械管制,那么你属于独立人士。

如果你支持削减税收,提倡堕胎合法,支持枪械管制,那么你属于民主党。

PDF 物理页索引 3078

文件中的第 3079 页 · 印刷页码:未识别

这些可以组成一些决策树,如图3–2所示。

PDF 物理页索引 3079

文件中的第 3080 页 · 印刷页码:未识别