• 精选
  • 会员

认知的极限

2024年12月26日  来源:为什么需要生物学思维 作者:塞缪尔·阿贝斯曼 提供人:It8933......

哲学是一门泛科学,无论是政治还是伦理,抑或是科技,都属于哲学研究的范畴。在有关科技的哲学研究中,人们对“软件的哲学含义”这个命题越来越感兴趣:我们应该怎样理解软件这种算法作品?为此,美国堪萨斯大学的哲学家约翰·西蒙斯(John Symons)和杰克·霍纳(Jack Horner)研究了这样一个问题:为何我们对软件这种技术系统的构建,几乎立即就会产生无法理解之感。[21]

这种情况之所以会出现,最直接的原因在于:软件中存在大量的分叉点。所谓分叉点指的是:如果条件A为真,那么就做这一件事情;如果条件B为真,那么就做那一件事情。对程序员来说,这叫作if—then语句。例如,有的计算机程序可能会规定,如果某个数是奇数,那么就加上10;如果是偶数,则加上5。

正如西蒙斯和霍纳所指出的那样,一旦某个计算机程序包含了多个分叉点,那么该程序运行路径的数量会倍增。据保守计算,一个只有1 000行代码的程序(即使是对于一个非常简单的程序来说,1 000行也是一个很少的数量;实际上绝大多数程序的代码行数都不会小于这个数字),当分叉点以正常频率出现时,也会有1030个潜在路径可供遍历。1030是一个天文数字,超过了1亿亿亿,因此要检查所有可能的路径,理解每个路径的含义,并确定其准确性,不仅是不可行的,也是不可能的。可见,这个系统的确是很难被理解的,即使从宇宙诞生之初便开始研究,也无法掌握它的所有细节。换句话说,绝大多数计算机程序都是永远不可能被任何人完全理解的。这个结论适用于笔记本电脑中的应用程序、厨房设备中的计算机代码,以及用来调度全球飞机的航空软件……

当然,在某种程度上,计算机程序也具有一定的可理解性,而且不需要我们手动遍历所有潜在路径。这正是抽象的主要特点之一(请参见本书第1章的讨论)。在抽象的基础上,对软件进行各种严格的测试和纠错,并遵循软件“卫生准则”,比如,禁止使用GOTO语句或某种类型的变量,就可以有效缓解理解无力的状况。但是我们仍然无法确定,我们是否真的了解所有的影响和结果。无论是使用某个科学模型的科学家,还是操作大型机器的技术人员,或是驾驶最先进汽车的驾驶员,都不得不适应这种“不完全理解”的状态。这是生活在纠缠世界中必须付出的代价。

通过大数据分析,我们可以发现庞大和互联所带来的影响。大数据分析就是用特定算法对海量数据进行处理,以增强预测能力,但有时会以牺牲可理解性为代价。[22]例如,谷歌公司已经开始借助算法来提高效率了,[23]其中就包括通过将诸如冷凝器数量、水泵数量以及室外风速等各种数据信息输入特定的计算机模型,来提高其数据中心的能效。在谷歌公司的博客上有这样一段话:“在像数据中心这样的动态环境中,人类很难观察到所有变量……的相互作用,而计算机则特别擅长发掘隐藏在数据中的潜在故事。为此,数据中心的工程师们将日常运营过程中收集到的信息输入了模型,让模型来帮助他们理解作为凡人可能无法注意到的复杂交互。”[24]

要搞清楚这种大规模技术模型的运算细节是非常困难的。而且,正如《新科学家》杂志(New Scientist)首席技术编辑道格拉斯·希文(Douglas Heaven)所说,即使我们能够做到这一点,也不一定有意义。[25]这种软件系统所给出的选项或答案,并不是按照人类的思维方式得出的,而且常常有违于某些稳定的一般规则或思想。这些决策所基于的路径并非简单的逻辑推理,而是一系列异常复杂的运算。我们置入大量的信息和数据,让庞大的软件系统“生产”出一些东西来。然后,可以得到了一个答案,它可能确实有用,但同时我们也失去了对解答过程的洞察力。从法律体系到硬件设施,在一个又一个的领域中,我们始终在通过与计算机“合作”来驾驭复杂无比的技术。然而,在这个过程中,我们又对自己所依赖的这些系统的运行方式感到困惑不已。

不仅如此,这个过程还在一直加速。在进化计算领域,软件已经可以自行“进化”出问题的解决方案了,但我们对最终方案的形式几乎一无所知。那么,当我们需要一个公式来拟合数据的时候,公式又从何而来呢?我们需要借鉴生物学中的进化思想。先在计算机程序中创建一个由潜在的解决方案组成的“种群”,然后让它们自行进化,也就是让它们重新组合、变异和复制,直到最适合的解决方案脱颖而出。进化算法可以很好地实现这一过程,即使你无法理解它给出的最终解决方案,也没什么关系。

这方面的研究多年以前就已出现,其中一项研究是利用进化算法,设计特定类型的计算机电路。[26]具体来说,先选定特定任务所需的电路类型,然后尝试在硬件中进化出一个解决方案,也就是让一组备选电路混合在一起,形成一个达尔文式的“进化浓汤”。经过多重进化之后,计算机程序就会发现一个最完美的电路设计。这种电路设计有一个奇异的特征:有一部分设计是与主电路断开的;而这对整个电路的功能来说至关重要。这个由进化而来电路设计利用了一些奇怪的物理知识和电磁现象,而这些知识和现象是从未有人想到过和利用过的。

此外,人们还利用一个进化来的公式解决了另一个难题。这个难题一度被认定为是不可能完成的任务。凯文·凯利(Kevin Kelly)在其著作《失控》(Out of Control)中是这样描述这个公式的:“它不仅丑陋,而且杂乱,甚至不可理喻。即使是对数学家或计算机程序员来说,这个进化而来的公式也是不折不扣的‘荆棘路上的柏油娃娃’。”[27]最终,研究者们还是参透了进化生成的代码,但是发现它对问题的解决方式“绝非人类所为”。这种进化生成了新颖的技术系统,但是我们很难理解这种系统,因为我们决然想象不出同样的东西。这种系统与我们擅长构建的那些系统有着本质区别。

在物流领域也出现了一些强大的算法。[28]因为进化生成的运货线路看上去不合逻辑,所以驾驶员们对这些违背直觉的线路很不满意,但最终又不得不臣服于它们的效率。事实早就证明,在国际象棋比赛中,计算机比人类强大得多:计算机能够“想到”人类棋手不可能想到的走法,并取得最终胜利。那些极具计算机特色的走法被称为“计算机走法”,人类棋手几乎从来不会使用。它们看上去“丑陋”,但效果却很好。正如经济学家泰勒·考恩(Tyler Cowen)在其《平均时代的终结》(Average Is Over)一书中所提到的那样,这种走法乍看上去似乎是错的,但其实非常有效。[29]一位参与IBM公司深蓝(Deep Blue)计算机设计的工程师也曾说过,“深蓝”在与加里·卡斯帕罗夫(Garry Kasparov)进行国际象棋比赛时曾用了一着超级怪异的走法,以致“评论员们有的赞不绝口,有的大加抨击”。[30]但是人们后来发现,“深蓝”这一着既怪异又极其出色的走法,其实是程序中的一个缺陷所致。无论如何,这样的人机对弈揭示了一个事实:在最高级别的对弈中,对人类来说,国际象棋还是太复杂了,因为交互的部分太多,即使是像卡斯帕罗夫这样的国际象棋特级大师也无法完全理解。许多时候,我们甚至无从分辨哪个决定是错的,哪个决定是对的。

那么,法律系统的情况又如何呢?在法律系统中,我们也看到了同样的问题,而且这些问题正愈演愈烈。在上一章中,我们曾经引用过马克·弗勒德和奥利弗·古迪纳夫的观点。除那之外,他们还指出,“但凡对法律进行解释,那么就算解释得再明确、再精准,人们对法律文件的理解过程也会变得缓慢而曲折,[31]因为我们需要不断地核查、重新定义、交叉引用、处理例外……,如此一来也就嵌入了复杂性。但是,律师的智慧——作为传统的契约解释的计算机制,不但非常昂贵,而且会受到认知水平的限制。”因此,当我们发现如下现象时不应感到惊讶:假设我们将同一份家庭收入数据分别提交给45名税务人员,他们会反馈45种不同的纳税方案。[32]

除了系统组成部分及其交互的复杂性超出了我们的处理能力,并会导致我们无所适从之外,摆在我们面前的还有另一个不利因素,那就是我们可以保存在头脑中的知识总量也是有限的。这不仅涉及原始数据,还涉及专业技术知识。技术系统所涉及的知识面变得越来越广泛,而且还跨越了不同的领域,要知道,即使是专家也不可能了解所有这些知识。

为了了解认知的局限性,我们需要先了解一下人类追求专业化的历程。然后我们就会明白,当今这个“不可理解”的新时代,其实由来已久。实际上,人类社会长期以来一直保持着这种进程,只不过现在才抵达终点。

如涉及版权,请著作权人与本网站联系,删除或支付费用事宜。

0000