查看原文
其他

杰弗里·宾德:《语言和算法的兴起》(2022)

陈荣钢译 陈荣钢 2023-08-02

语言和算法的兴起

Language and the Rise of the Algorithm


作者:杰弗里·宾德(Jeffrey M. Binder,宾州州立大学人文与信息中心)

译者:陈荣钢


来源:同名著作(芝加哥大学出版社,2022)导论


妥协

2020年5月,当世界各地都在关注新冠大流行和美国境内的种族抗争时,一项新兴技术在小圈子里引起了兴奋和恐惧。由OpenAI公司开发的计算机程序GPT-3生成了一些迄今为止最好的人类书写模仿作品。根据开发者的说法,GPT-3生成的虚假新闻能够欺骗近一半的人类读者,还可以写出华莱士·史蒂文斯(Wallace Stevens)风格的诗。

该程序基于一个统计模型,它只做一件事——给定一组单词,试图预测下面的单词是什么。除了维基百科(Wikipedia)和大量书籍内容外,该模型还使用了从互联网上抓取的超过570G的压缩文本进行训练。该系统的开发者将它描述为一个“不知道任务”(task-agnostic)的学习者,也就是说,一个机器学习模型可以执行广泛的认知任务,而无需为任何特定的任务进行微调。这种人工智能(AI)的新方法渴望改变计算机编程的实践,人们不用设计算方法来解决给定的问题,而是用英语告诉机器它目标,它就会计算出(人们希望的)正确答案。

从人文主义的角度来看,GPT-3的吸引人之处是它将知识(knowledge)定位于语言(language)之中。GPT-3输入和输出的都是文本,它的训练仅限于文本。它甚至没有任何经验(experience),哪怕是最不严谨的经验概念。然而,它表现出来的能力并不仅限于重新撰写不同风格的段落。它确实是一个多任务的学习者,它结合了写作辅助、可编程计算和搜索引擎的功能。

从怀疑论者的角度来看,这台机器就像一只鹦鹉,说着它无法理解的话。但是,语言模型可以构成通用方法的基础,这一观点也可能暗含某种解构主义的见解——学习语言不能与学习思考(think)区分开来。如果我们相信研究人员的话(我们当然不能不加批判地这样做),那么自然语言(natural language)就是创造难以捉摸的“通用人工智能”(AGI,或译作“强人工智能”)所必需的基本要素。

GPT-3等大型语言模型的兴起,动摇了人们长期以来理解的计算(computation)与语言(language)的关系。计算机通常被描述为符号操作机器(symbol-manipulating machines);它们的工作原理是通过不依赖于符号含义的机械规则重新排列电子表示的1和0。

GPT-3重新点燃了一场长期存在的哲学辩论——这样一台机器是否真的可以被称为“能够理解一种语言”。在这种情况下,计算机界面的设计逐渐向更加强调沟通与理解的方向发展。这一变革的核心在于,计算机科学家和软件工程师开始认识到,人类语言和计算机程序之间存在的差异不仅仅是表面现象。相反,它们反映了两者背后的基本思维方式和逻辑。因此,为了使计算机系统更加符合人类的需求和使用习惯,软件设计师们开始尝试将人类语言的特点和计算机科学的原理相结合,从而创建出既符合人类交际规范又具有高度计算能力的界面。这种变革为人工智能的发展奠定了基础,使得GPT-3这样的语言模型得以诞生。

众所周知,面对计算机科学中使用的“算法”(algorithm)一词,举例说明要比定义容易得多。尽管这个词最近与机器学习(machine learning)联系在一起,但教科书通常很简单地将算法解释为解决问题的精确定义过程。这些过程通常采取一系列步骤的形式,如下面用于找到一本书中最长句子的算法:

将数字0写在纸上

对于书中的每个句子,重复以下操作:

统计句子中的单词数

如果结果大于纸上的数字:

则用结果替换纸上的数字

尽管在许多不同的场合都会出现类似的指令(烹饪菜谱就是一个典型的例子),但将一种程序称为“算法”会触发一系列更具体的学科实践。编程语言为我们提供了一种用极高精度描述程序的方法,以满足机器的要求。(要将上述程序变成一种真正的算法,我们需要澄清什么是“单词”和“句子”,而这并不是一件容易的事情。)

计算复杂性理论(computational complexity theory)为我们提供了衡量和提高这些程序效率的方法。更广泛地说,算法思维鼓励抽象思考。算法的技术理论促进了通用解决方案的发展,这些解决方案可用于不同的目的和环境。程序被视作数学实体(mathematical entities),它们独立于用来描述它们的语言和具体应用场景的复杂性。

这本书讲述了这种抽象形式如何诞生。我关注算法出现前的一条线索——在数值计算、代数、微积分、逻辑以及最终的计算机科学中使用的“符号”。诸如Python和R这样的标准编程语言从代数和逻辑的符号表示法(以及其他来源)中汲取灵感,以精确地定义操作。

然而,这些符号表示法(如同编程语言)一直以来都将计算与另一种较难归结为机械规则相结合,也就是“通信”(communication,以下依据语境也译作“沟通”、“交流”等)。一个符号公式,比如F(s) = kx既提供了如何计算某事的指示(在这个例子中,计算拉伸或压缩弹簧一定长度所需的力),也提供了一种表达世界的命题方法。

我的论点是,算法的现代概念是计算机科学中使用的术语,依赖于一种将“计算”从19世纪“纯数学”中首次形成的复杂通信中分离出来的特殊方法。尽管“机器学习系统”经常与算法理论中精确定义的“程序”共用同一名称(这令人困惑),但我想说,机器学习代表了这一技术概念的突破,它使几百年来的认识论界限受到了威胁。

算法的历史可长可短。从广义上讲,算法思维至少可以追溯到刚有文字记录的年代。在泥板上,古巴比伦人写下了基于规则的数字计算程序,计算机科学家唐纳德·E·克努特(Donald E. Knuth)从中感知到了计算机科学的雏形。算法这个词(早期有多种拼法,如algorismalgorithmusalgramaugrym)不那么古老,但还是挺古老的,它来自12世纪阿拉伯数学家花拉子米(Muḥammad ibn Mūsā al-Khwārizmī),他在9世纪描述了基于印度-阿拉伯数字进行计算的技术。

这些技术(包括人们在学校里还在学习的、熟悉的加减乘除程序)构成了最初的“算法”。早在16世纪,算法这个词就包含了一系列其他技术,通常涉及符号代数(symbolic algebra)。在寻找今天总体化计算野心的先驱者时,历史通常会特别关注德国的博学者莱布尼茨(Gottfried Wilhelm Leibniz)。从17世纪60年代开始,莱布尼茨试图创造他所谓的“演算系统”(calculus ratiocinator),它是一个符号化的“计算”系统,旨在解决“几乎任何问题”。科学作家马丁·戴维斯(Martin Davis)将现代计算机描述为“莱布尼茨梦想”的实现,将数学符号操作扩展为一种通用方法,可以应用于任何事物。

包括迈克尔·马霍尼(Michael Mahoney)和洛林·达斯顿(Lorraine Daston)在内的历史学家更有针对性地表明,这种全盘叙事忽视了几个世纪以来计算实践的变化方式。马克·普雷斯特利(Mark Priestley)有力地辩称,计算机编程与其他领域(如符号逻辑)没有先天关系,而是经由计算机科学家做出的有意识选择让它们产生联系。马修·L·琼斯(Matthew L. Jones)和玛丽亚·罗莎·安托尼亚扎(Maria Rosa Antognazza)将莱布尼茨置于历史语境中,他们认为,莱布尼茨的工作不完全符合现代算法的概念。

从这些更历史决定论的角度来看,算法这个概念非常新颖。尽管“算法”这个词源远流长,但可以说,直到20世纪60年代,当计算机科学成为一门学科时,“算法”才有了现代含义。《理性几乎丧失理智》(How Reason Almost Lost Its Mind)一书的六位作者认为,算法直到“冷战”时期才成为理性的模型,当时智囊团的研究人员试图用严格基于规则的决策取代人类的判断。这种算法最近才成为社会关注的焦点,是源于机器学习技术的发展与根深蒂固的不平等和歧视结构的融合。

对算法这一概念的历史化应该成为一个警示,防止我们不加批判地将过去的符号方法与现代算法等同起来。我们所知道的算法是一个复杂的混合体,其前身包括一系列实践,如天文和统计计算、官僚程序、市场经济以及政府数据收集工作(如美国人口普查)。作为现代算法的背景,符号方法之所以重要,不是因为它们本身的现实意义,而是因为它们在技术话语中所起的作用。

在20世纪60年代和70年代,计算机科学将算法视为抽象过程,即使它们以各种方式被实现、解释、应用和诠释。这种思维方式离不开“符号”与“语言”关系的一系列长期辩论。是否应该使用相同的符号来计算结果并将结果展示给其他人?它们的意义在多大程度上可以被随意选择,意义的确立在多大程度上需要社会认同?如果一个符号是用文字来定义的,这是否意味着它继承了自然语言的不精确性?

这些问题现在被视为计算之外的问题,涉及人们赋予算法的重要性,而不是算法本身。然而,这个界限并非一直存在,这一点从算法在不同时期发生的变化中就可以看出。印度的计算技术总是涉及到指令,要么通过直接的命令式语句,要么通过实例来处理符号。

如果总和大于9,就在左边的数字上加个1。正如人们早在计算机时代之前就认识到的那样,这种类型的程序有可能由机器来执行。然而,最初的“算法”还涉及另一种不那么明显的机械规则——9意味着“九个”。也就是说,这种实践不仅包括如何操作符号的规则,还包括如何解释符号的规则。虽然数学家早就认识到这些语义规则不同于计算过程,但它们同样是“算法”的一部分。

符号代数通过引入字母来指示未指定的值(如ax+b),这使这些问题变得复杂。弗朗索瓦·韦达(François Viète)在16世纪90年代引入的这种字母用法为现代算法奠定了基础,它使程序能够以抽象形式描述,而无需指定输入。

这些字母与“+“和“-”之类的运算符联系在一起,它们应当具有固定的含义。起初,确定这些意义可能不是主要问题,但随着符号方法扩展到无穷小微积分等充满理论挑战的领域,事情就变得棘手了。当莱布尼茨试图把符号方法的乌托邦方案引入政治学时,情况变得更加糟糕。例如,假设我们引入一个符号来表示“权益”,我们如何确定使用此符号的每个人都同意什么是“公平”?对概念清晰度的重视使得人们很难忽视“如何使符号具有某种意义”的问题,而对这个问题的不同答案会极大影响“符号可以做什么”这件事。

将意义从算法中剔除并没有真正解决这些问题,而是剥夺了它们的认识论意义。这个过程的早期阶段可以在19世纪观察到,当时的代数学家——比如乔治·布尔(George Boole)在他们的科学赋予形式规则(formal rules)一种全新的基础地位。

20世纪,随着编程语言的发展,这个界限变得更加明确。早期编程语言(如1958年首次推出的ALGOL)既是一种控制计算机的方法,也是发布算法的标准媒介。作为一种沟通手段,编程语言通常不会与人们说的语言脱离。代码通常使用单词,既包括内置关键词如if和for,也包括用户自定义的函数和变量名,以便更容易理解其工作原理。

这些语言包含的普遍解释是,它们只是有助于理解的便利工具,而不会影响算法本身,因为算法根据形式语义来定义。这种将“硬”算法逻辑与“软”沟通分开的做法(这种划分在计算机科学的话语中无处不在)使得程序员在设计计算系统时可以不用担心如何达成意义的一致性(如果这种一致性真的存在的话)。

将符号方法与语言的关系历史化表明,这种思维方式并不是符号方法所固有的东西——过去是这样,将来也可能是这样。基于语言的人工智能系统(如GPT-3)混合了计算逻辑和共同产生的语言数据,将计算和沟通之间的区别推向了极限,因此它们创造了一个机会来重新思考“计算过程与语言产生关系”的根本假设。

这本书的核心观点是,现代算法的概念取决于一种特殊的主客体划分,将严格的学科标准与复杂的文化、语言和教学因素相分离,这些因素使系统易于理解人类。在计算机编程学科中,这些学科标准提供了一种思考计算过程的方式,创建和判断它们,把这些过程作为数学抽象的客观存在,而不是具体的计算机系统。这种主客体划分不仅深深植根于算法的教科书定义中,而且还植根于现代编程语言的设计中,现代编程语言通常使算法逻辑尽可能独立于沟通问题,这种抽象性促进了算法在计算机系统和应用程序领域之间的通信。这种思维方式直到19世纪才根深蒂固,重新审视产生它的条件,可以帮助我们更好地理解GPT-3等基于语言的机器学习系统有何含义。算法的理念是阻挡语言社会复杂性的堤坝,它即将决堤,而这本书就是洪水。

从公式到源代码

在探讨语言问题与数学的关系时,本书延续了科学史学术研究的悠久传统。20世纪90年代,彼得·迪尔(Peter Dear)和罗伯特·马克利(Robert Markley)等学者关注语言在17世纪实验科学兴起中的作用。更近期的研究探讨了过去语言学科对数学和计算的影响。语言学与早期计算机史的交叉领域也有大量研究,包括编程语言语法理论的重要性以及机器翻译研究项目的出现。凯文·兰伯特(Kevin Lambert)和特拉维斯·D·威廉姆斯(Travis D. Williams)等学者讨论了数学家与语文学(philology)的相互关系,语文学长期以来关注数学符号的历史,也关注能在数学证明中看到的修辞技巧。

尽管有一些例外,但数学符号历史主要关注认识论问题,如数学证明的变化标准、诸如“a的b次方”之类的符号所开启的新思维模式,以及数学结构与现实之间的关系(或者没有关系)。本书讨论了这些问题,但更强调符号中相对被忽视的沟通层面。正如单词的形式所示,沟通需要人与人之间的共同基础,而这个共同基础在单词和符号之间是否以相同的方式运作并非不证自明。

几个世纪以来,人们认识到单词的使用在某种程度上受到惯例的约束。正如17世纪哲学家伯纳德·拉米(Bernard Lamy)所言:“我们可以把马叫做狗,把狗叫做马,但是第一个词已经固定在‘马’上,而后者固定在‘狗’上,我们不能交换它们,也不能把一个当成另一个,否则会使人类的对话陷入混乱。”要想用英语有效沟通,至少在广义上,一个人必须遵循其他人的用法。另一方面,代数符号的含义似乎可以随个人意志而变化——人们可以写下“让a=5”,那么a就具有这个意义。对许多观察者来说,这种由个人定义的符号似乎具有悖论性。历史上的思想家们以各种方式解决了这个明显的悖论,反映了语言、知识和思想形成的不断变化的教条。

这些问题使代数符号在现代科学起源中的作用变得复杂。长期以来,人们普遍认为,17世纪的科学革命关乎自然科学(physical sciences)的“数学化”(mathematization)。最近人们逐渐认识到,数学本身在这一时期也发生了变化。2016年编辑的文集《自然的语言:重新评估17世纪自然哲学的数学化》(The Language of Nature: Reassessing the Mathematization of Natural Philosophy in the Seventeenth Century)对某门科学被数学化意味着什么提出了更细致的看法。

本研究考察人们从近代早期到今天理解数学符号的方式转变,借此为这种细致看法做出贡献。虽然代数符号在17世纪激发起极大的热情,但我想说,这种热情并不总是与“数学”的概念联系在一起。早期,这种热情更多与符号的视觉特性有关,它提出了一种与英语和拉丁语等口头语言根本不同的交流方式。因此,要理解符号方法在科学史上的地位,不仅需要对数学范畴进行历史化,还需要对语言范畴进行历史化。我们尤其必须思考书面语言和口头语言之间关系的改变,以及应该如何建立沟通的共同基础。

尝试为这段历史寻找一个绝对的起点是徒劳的。至少在文字诞生的时候,类似算法的实践就已经存在了,它们在不同的文化中独立发展。除了古代和中世纪数学的一些背景知识外,我这本书的叙事从16世纪开始,那时,现代代数符号体系开始出现。我在第一章中认为,从16世纪中叶到17世纪中叶,这种符号体系彻底改变了代数的实践——以前解方程的过程主要通过文字阐述,而现在可以用简洁的公式表示。

在普遍怀疑语言的某种氛围中,这些符号被视为一种更优越的替代品,它可以直接呈现给我们的眼睛,而不需要文字的介入。我认为,对符号的信心基于一种信念——某些普遍的观念被神圣地刻在所有人的心灵上,从而可以独立于语言。

莱布尼茨的工作既是对这种早期现代符号迷恋的高潮,也是一个拐点。在第二章中,我讨论了符号在他的数学研究和试图创建的“演算系统”中的作用。莱布尼茨是早期的创造者之一(虽然不是第一个),他将算法这个词扩展到了除了印度计算技术之外的其他领域。他使用了拉丁语和法语的同义词来指代微积分中的求导过程。

然而,莱布尼茨的发明并不完全具有现代含义,关注这种语义的细微差别揭示了算法思维历史上一个经常被忽视的方面。莱布尼茨将他的“算法”构建为符号代数,而不是通常的算术,它不是一个精确定义的程序,决定了每一步正确的进行方式,而是一组用于转换表达式的方程。这种代数意义上的算法具有广泛和持久的影响,使得算法这个概念与新的符号记法的演变密切相关。

莱布尼茨在广泛的背景下尝试这些符号表示法,从表示积分的∫dx表示法到二进制数,再到试图为政治学和法学制定符号方法。然而,语言不断变化的观念正在削弱这个计划的基础。汉娜·道森(Hannah Dawson)认为,语言学思想的关键人物是莱布尼茨的思想对手——约翰·洛克(John Locke)。

莱布尼茨与洛克之间的争论通常被解释为认识论之争,涉及非经验性知识形式的合理性。我认为,这场辩论也对符号方法产生了影响。莱布尼茨认为,概念在诞生之初就已经存在于心灵中,因此维持符号含义的稳定不会是一个大问题。洛克对这一假设表示怀疑,从而质疑符号是否真的与单词有很大不同。在洛克的影响下,数学家更加关注概念定义。现在的人们认为,清晰度并非源于符号本身,而是源于数学概念在心灵中的形成方式。

尽管洛克关于语言的观点的兴起为莱布尼茨关于符号的更极端主张敲响了丧钟,但它既没有破坏符号方法的发展,也没有减弱将代数变成一种普遍语言的愿望。本书第三章关注18世纪90年代的孔多塞(Nicolas de Condorcet),他在一定程度上是莱布尼茨的继承者,但是受到的关注较少。在“法国大革命”后恐怖时期的顶峰,孔多塞设计了一套为各种主题提供代数符号的系统。与莱布尼茨一样,孔多塞试图通过符号来解决人们在政治和文化上的分歧。然而,孔多塞的方法大相径庭。不像莱布尼茨,孔多塞并不认为符号表示的观念先天具有普遍性,相反,他希望通过教育计划使这些观念变得普遍。这种方法使他的体系变得明确带有政治色彩,依赖于“社会应该如何发展”的具体设想。

尽管孔多塞的计划可能直接影响不大,但它代表了某种符号的政治争论,这在计算史的研究中应该占有更重要的地位。18世纪数学的标准叙事强调国家传统之间的区分——欧洲大陆的数学家接受了莱布尼茨的符号和方法,英国人则跟随艾萨克·牛顿(Isaac Newton),他拒绝它欧陆数学家。

在第三章中,我认为18世纪的数学不仅受到了国家分歧的影响,还受到了意识形态分歧的影响。索菲亚·罗森菲尔德(Sophia Rosenfeld)认为,语言在“法国大革命”期间成为一个引起分裂的话题,因为人们将革命的分裂归咎于对自由、平等和博爱(liberty, equality, fraternity)等词汇的不同意义。

当时,艾蒂安·博诺·德·孔狄亚克(Étienne Bonnot de Condillac)是语言思想的一个核心人物,他把代数看作一种“形式完善的语言”,这引发了“符号是否真的具有明确定义”的激烈争论,比如关于负数的存在问题。在这个时刻,符号方法如何运作取决于一个语言政治的问题,也就是说,符号的意义应该由民众共同决定还是由学者来决定。

这场冲突并没有真正得到解决,而是被放弃了。在19世纪初,代数学家们将注意力从概念定义转向了形式规则,这为数学严谨性提供了新的标准。在第四章中,我关注乔治·布尔的研究,这位爱尔兰数学家提出了最终被称为“布尔逻辑”(Boolean algebra)的代数系统。

布尔的研究很少被认为是莱布尼茨和孔多塞所代表的通用语言传统的一部分,而通常被定位在代数和逻辑的交叉点。在1847年的一本书中,他首次介绍了这个系统。布尔将符号逻辑描述为“通向哲学语言的一步”。

我认为,布尔的项目得益于另一个重大的语言思想转变。尽管布尔对符号的痴迷程度与他的前辈们一样,但他并不像他们那样对文字抱有敌意——相反,他尊重甚至敬畏人们从祖先那里继承的语言。这种态度使得18世纪发生冲突的两个派别达成了一种停战状态。符号不再试图取代语言,而是与之共同发挥作用,既从机械规则中获取严谨性,又从文字中获取意义。

对语言的古老敌意很快在戈特洛布·弗雷格(Gottlob Frege)、恩斯特·舍勒德(Ernst Schröder)和鲁道夫·卡尔纳普(Rudolf Carnap)的研究中重新出现,他们再次设想用符号取代文字。但即使是他们的研究也没有消除布尔时代形成的认识论分歧。

在第五章中,我关注早期编程语言ALGOL,它的名字意为“算法语言”(algorithmic language)——这预示着从20世纪60年左右开始,人们将“算法”这个词当作精确定义计算过程的一般术语。ALGOL的创造者称它是一种“通用语言”,既能被人类阅读,也能被机器执行。但与布尔的逻辑一样,ALGOL的通用性也很狭隘。ALGOL并没有将普通语言彻底替换成实际人类思维,而是使用单词(通常是英语)来帮助人们理解程序。ALGOL的“通用性”只是程序的算法“核心”,这与普通语言的功能有着明显的区别——比如沟通和教育,简言之,也就是那些后来被称为“人的因素”的计算方面。

ALGOL的例子表明,我们现在熟知的算法依赖一种特定的划分学科界限的方式。当计算机科学家开始赋予算法这个词更深的理论含义时,他们试图找出计算系统的关键部分,这些部分可以在不涉及社会背景的混乱运作中进行数学分析。这种算法问题和社会问题之间的划分在编程语言的技术设计和围绕它们的话语中根深蒂固。

但是,这并非不可避免。在19世纪末之前,“算法”通常不排除沟通问题。在布尔时代,计算过程通常包括符号的规则——不仅是如何处理符号,还包括符号的含义。如何确定符号意义是哲学争论的问题,围绕语言的不同观点导致了对通用计算的不同设想。

这本书强调,早期的思维方式与现代计算有很大不同。在研究历史时,我们要避免用一条线性的进步叙事来描述历史发展,并隐含支持胜利者的观点。在研究数学符号的历史时,我们很容易陷入这种叙事方式,赞扬那些使用后来成为标准的符号的人,批评不使用这些符号的人。这本书不是为了赞美符号的好处,而是为了理解符号的起源和发展,并且说明符号方法并不是一个固定的范畴。我们需要了解符号方法在几个世纪里的发展变化,同时现代算法的概念也是特定历史背景和认识论的产物。

21世纪初出现了另一种变化的迹象。在21世纪的第二个十年,算法这个词的意义开始不再仅仅指像ALGOL那样精确定义的程序,而是指像GPT-3这样的机器学习系统。虽然机器学习的概念自计算机时代初期就存在了,但是我在本书结尾中提到,这种算法意义的转变与20世纪的惯用概念产生了分歧。

像GPT-3这样的文本生成器承诺了一种新的编程范式,程序员不再需要设计计算过程,而是直接用英语给电脑下达指令。即使对于那些完全接受这种想法的人(或许是少数人)也很难否认,GPT-3的广泛应用将使语言的缺陷重新变得重要,语言可能并不足够清晰或稳定,不能成为技术知识的充分媒介。随着机器学习的广泛应用,“硬”逻辑和“软”沟通问题之间的界限变得不明显了,而算法已经成为一个有争议的领域。

这些新的发展在某些方面标志着回归到18世纪的情况,当时,布尔和他同时代德人还没有在符号和语言之间建立障碍。18世纪的数学家并不认为词语的含义对符号方法没有影响。相反,他们热烈地争论符号是否必须对应于词语的传统定义,或者是否可以重新定义。

他们也没有把计算系统和政治隔离开来。一些人认为符号是挑战传统思维方式的一种方式,这一思想与“法国大革命”时期的理性化改革联系在一起。另一些人则持相反观点,他们珍视词语的宝贵遗产,认为词语也是国家文化的一部分。本书的目的是关注这些早期的话语,以更好地了解计算和语言交叉的潜力和问题。

17世纪,欧洲人通常将计算描述为一种技艺或手艺,意味着一套系统化的技能。人们可以通过实际演示、表述或书写来展示正确的计算方法,从而使人们能够以一种可控的方式发展和练习这项技能。18世纪,对技艺的推崇逐渐被对自然理性的崇拜所取代,这一指导原则重视人类思维的天生能力。这种思维方式鼓励人们淡化明确的规则,转而强调概念性的解释,这些解释应使正确的计算方法直观明显。到了布尔的时代,对启蒙思想的反应使人们从自然理性转向了完全相反的文化价值观。在这一价值观下,机械性的需求与有机性保持平衡,因此,抽象的数学系统和源于社会发展的人类思维形成了“一体两面”。

虽然文化观念继续影响计算,但现代算法的指导思想更多的是技术。技术是一个非常古老的词,但它曾经的含义与现在的意义非常不同。现代意义上的技术始于19世纪末,更多与科学知识的实际应用有关。

将计算视为技术,这激励人们精确地定义问题,以便将可受到严格工程方法约束的系统分离出来。这一观点激发了早期计算机科学家将算法理论化的决心,让算法成为可独立于算法使用环境的抽象分析过程。直到21世纪初,这种分化策略的全部影响才变得明显,一些几乎摒弃了所有人类经验思想框架的技术成为驱动世界运转的强大力量。

符号方法的历史在很大程度上与如今围绕算法的政治争议相去甚远。这本书主要关注的是一个具体的时代,在那个时代,普遍计算的概念更像是遥不可及的幻想,而不是社会现实。

但是,从这种幻想产生的许多问题在计算机时代依然伴随着我们。几个世纪以来,每当这些方法触及新领域时,“符号方法是否能够或者应该在政治上保持中立”的问题一次次出现。然而,辩论的焦点各不相同,关注过去的时刻有助于揭示当前讨论的基本假设。我从现代早期开始谈起,那时人们普遍对符号方法充满兴趣,但这种兴趣的原因与引发21世纪人工智能热潮的原因截然不同。

【延伸阅读】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存