一个维特根斯坦主义者眼中的框架问题

更新时间:2019-08-10 来源:逻辑学论文 点击:

【www.rjdtv.com--逻辑学论文】

   摘要:框架问题的核心命意乃是:在对智能体的行动进行表征之时,如何能够在有效地表征出行动的效果之时,避免对于其非效果的表征?对于符号主义路数的人工智能研究来说,框架问题的确非常棘手,因为它的存在使得对于行动的知识刻画必须引入大量的框架公理,并由此使得系统的计算负荷剧增。从历史上看,人工智能界赖以解决这个问题的基本路径主要有两条。第一条是诉诸于“关于惯性的常识律”或缺省逻辑,即在行动表征中预设:没有被表征式牵涉到的“世界其余部分”都将保持惯性。
  另一条路径则采纳了海耶斯的“素朴物理学”表征方案,即试图把日常物理学知识全部用谓词逻辑公理化,让系统自动推算出哪些动作会导致哪些结果。本文将论证,这两条道路其实都走不通。在此基础上,本文将从维特根斯坦的《论确定性》中寻找灵感,建立一个关于信念网动力学模型—在这个模型中,某些知识节点的激发只会导致某些与之毗邻的节点的激发,因此,对于特定问题求解路径的表征,就能够避免对于一个更大范围内的知识网络的牵涉。框架问题也有望借助于这个模型得到解决。最后,我将利用,’j卜公理推演系统”(NARS )为这个模型提供一种尽量逼真的工程学模拟。
  关键词:框架问题:关于惯性的常识律;素朴物理学;缺省逻辑;维特根斯坦:非公理推演系统
   对于人工智能(AI)的知识表征工作来说,如何对智能体(agent)的动态“行动”(action)加以刻画,乃是一个大问题。在Al中,一个“行动”就是指系统对环境所要施加的一个动作,而对于它的实施,显然是为了带来系统所希望发生的某种环境变化。不难想见,对于任何一个智能体来说,它都需要预见到维特根斯坦哲学视野中的人工智能问题”的资助。致谢:感谢美国天普大学(Temple University)计算机和信息科学系王培副教授在本文撰写过程中对于笔者的大量指导。
  逻辑学研究的行动会带来怎样的“效果”( effect),否则,它就不可能有计划地通过改变环境来达到自身的目的。于是,Al科学家就必须在设计智能系统时,设法表征出这种变化,以确定动作本身的效果。从逻辑角度看,一个行动式,就可以被表达为一个条件式的前件,而其效果,则可以被表达为该条件式的后件。因此,从表面上看来,对于“行动一效果”关系的刻画,传统的命题逻辑系统就己足用。但更为仔细的考虑将向我们揭示:事情本身绝没有这么简单。
  很显然,一个行动的效果,无疑就对应着世界中将会被该行动改变的那部分,而不会牵涉到世界中不会被改变的那部分。比如说,我打开电脑的“重启”键固然会导致电脑重启(这当然是在一定的环境条件下),但一般而言,却不会导致人民币对欧元汇率的变化(在这里请读者暂且不要考虑什么“蝴蝶效应”)。在常识看来,“按‘重启’键不会引起人民币对欧元汇率的变化”是一句不必说出的废话,换言之,谁要是在日常生活中将其说出,肯定会引发听众的嘲笑。但是对于以符号Al进路为基本技术依托的程序员来说,他们却似乎不得不表征出这些“废话”。下面就是一个更富技术色彩的示例。
  假设程序员要设计一个机械手的程序,使得其能够抓举环境中的积木。而“抓起”,就是程序员需要刻画的那个关键动作。在“流演算”语言(详后)的帮助下,程序员可以这样刻画:如果(在环境。中)机械手处在对象x之上,并且手本身是空闲的,而对象x又是一块积木(在环境s中),且对象x处在另一对象y之上(在环境s中)—那么,对于这个环境,实施动作“抓起”就会导致:手抓住了x,并且手在y之上(由此产生的新环境就是GRASP[s]) e其形式刻画如下:之所以要引入“环境"这个变量,乃是为了在我们的知识表征工作中引入“历时性”的因素。也就是说,由于环境一直在时间中经历变化〔无论是环境自己产生的变化,还是主体所导致的变化」,我们就必须为被刻画的每一个命题做出环境标记,否则我们就难免会犯下“刻舟求剑”的错误。进而言之,在对于动作的刻画中,除非一个命题被这样的环境标记所标记,否则它就谈不上真假。这样的一个真值因环境而异的命题,在技术上就叫“流”[fluent],而对诸“流,,的演算,就叫“流演算"[fluent calculus]。这个想法徐英瑾一个维特根斯坦主义者眼中的框架问题最早是由麦卡锡提出的。)这种刻画到底有什么问题呢?其问题是,相关的效果式(手抓起积木)之所以能够从行动式(手去抓积木)中引出,还必须预设其它的一些前提。明言这些前提虽然对人类行动者来说是不必要的,但是对于必须严格按照明确规则行事的AI系统来说,却无法避免。这些前提包括:
  1.如果手在原来的语境中抓起的东西是积木,那么在抓起它之后,它肯定还是积木。
  2.如果手在原来的语境中抓起了积木,那么抓起它这个动作,不会改变积木的颜色。
  3.如果手在原来的语境中抓起了积木,那么抓起它这个动作,不会改变积木的形状。
  4.如果手在原来的语境中抓起了积木,那么抓起它这个动作,不会改变积木的大小。
  5.如果手在原来的语境中抓起了积木,那么抓起它这个动作,不会改变原来垫在积木下的物体的颜色。
  这些预设的基本形式特征是:它们告诉了我们,当一个行动在世界中发生之后,世界中哪些事情不会发生变化。换言之,这些预设为我们勾勒了一个行动得以在其中发生的那个不变的框架(frame)。这些预设本身,则叫作“框架公理”(frame axioms)。但麻烦的是,由于这个框架所牵涉到的信息量过于庞大,对于它的表征往往会导致系统的运算负担过大,并无法完成实时任务。于是,这就导出了所谓的“框架问题”(the Frame Problem)框架问题:表征一个行动所导致的效果之时,如何避免去表征环境中不会因这个行动而发生的诸事件呢?
  在详细讨论Al学界对于“框架问题”的种种解决尝试之前,我们先来澄清对于这个问题的几种可能的误解。
  误解一:“框架问题”等价于“相关性问题”“相关性问题”(relevance problem)是指:如何使得系统在处理一个问题的时候,有能力确定哪些信息和问题求解相关,哪些不相关?很显然,“框架问题”实际上就是“相关性问题”的一个子集,因为在前一个问题境遇中,我们所不试图表征出的那些世界中不变的状况,其实就是和当下的问题求解无关的信息。然而,世界上有不少“相关性问题”未必就是“框架问题”。请试想这样一个情况:
  逻辑学研究玛丽莲·梦露被人谋杀了,而侦探则负责找到真凶。有鉴于侦探所面临的信息乃是海量的,他就必须确定:其中又有哪些和破案相关,哪些不相关。但按照计算机科学的行话来说,这个问题是“启发式搜索”(heuristic search)所讨论的题目,而不是“知识表征”的题目。前一类问题的实质是:在我们人类主体还不知道解决问题的着手点的情况下,如何让智能系统自动搜索出最有希望的求解线索?而后一类问题的实质是:在我们人类主体已经对问题求解的表征框架有缄默领悟的前提下,如何让智能系统能够和人类分享这些领悟?或说得再简洁一些,前一类问题,关心的是如何从芜杂的信息中规整出新的知识路径,而后一类问题,处理的是如何公正对待我们已有的知识。很显然,“框架问题”只能出现于“知识表征问题”和“相关性问题”的交集处,因此它肯定无法涵盖“启发式搜索问题”和“相关性问题”的交集。
  误解二:“框架问题”等价于“资质问题”“资质问题”(qualification problem)指的是:如果我们要对一个行动加以定义的话,我们如何可能将使得其“有资格”发生的所有条件(其数量无疑是惊人的)加以表征?麦卡锡()曾经用一个很鲜明的例子来对该问题进行说明。
  比如,若要完成“坐小舟渡河”这个动作,我们就得确保下面这些前提条件能够被满足:
  1.小船的水密性足够好;2.小船有船桨,且船桨质量足够好;3.划桨手技能足够好,力气足够大;4.水流不是特别湍急;5.船只的载重未超过船只的设计上限;6.……很显然,即使在日常生活中,我们也很难明晰地罗列出能够使得相关行动得以发生的所有条件,逞论人工系统。但话反过来说,如果基于逻辑的传统AI系统无法罗列出这些前提条件的话,那么它也就无法了解,相关的动作到底是否会发生(因为形式逻辑本身无法告诉系统,哪些信息对于渡河来说具有关键意义—于是程序员只能够将所有前提信息都表征出来)。这就使得程序员就陷入了两难:在系统中不表征这些前提信息固然不成,但一一表征之,则肯定会导致系统运算负荷的急剧增加。
  说到这一步,“资质问题”和“框架问题”之间的“家族相似”关系似乎已经很明显了:二者都在一个广泛的意义上牵涉到了(知识表征维度中的)“相关性问题”,而且二者都是我们在明述化人类日常直觉领悟的过程中所涌现的问徐英瑾一个维特根斯坦主义者眼中的框架问题题。这种相似性似乎也暗示了我们:这两个问题或许有着同样的源起,并有着类似的解决方案。然而,二者之间的区别依然不容忽视:
  第一,“框架问题”关心的是如何简约地表征一个行动所产生的后果,而“资质问题”关心的是如何简约地表征使得一个行动产生的前提;第二,“框架问题”始终是一个知识表征问题,而“资质问题”则可以被转化为一个“启发式搜索问题”(在这一点上,它和“相似性问题”类似)。有意思的是,这种转化本身就是由“资质问题”的命名者麦卡锡给出的。他把该问题看成是一个预测问题,即:如果一个系统已经知道了“小船的水密性足够好”等信息,它是否能够从这列信息中得到一个结论,即“可坐舟渡河”(这个问题的变形形式即:多少信息能够使得系统足够得出“可坐舟渡河”这个结论)?麦卡锡将这种从前提到结论的跳跃看成是“非单调推理”的一个实例,并发明了一种叫“限界逻辑”(circumscription)的技术工具来完成这种推理。很显然,这种从“己知”到“未知”的跳跃并不是知识表征工作所要考虑的话题。
  误解三:“框架问题”只是一个纯粹的技术问题。
  关于框架问题的实质,专业的AI人士和哲学家往往有不同的看法。随着很多新的技术工具的出现,不少人认为他们已经能够解决“框架问题”。其基本技术思路是:我们可以预设:只有相关行动所直接针对的那个事物维度才会发生变化,而其余事项则都将保持不变。只要将这一点做成公理,系统就能够避免对于那些不相关事项的表征(详下节)。但哲学家则要悲观得多。在一些哲学家看来,这个解决方案实际上得预先把世界区分为各种维度,而这种区分本身其实就代表了一种形而上学立场。从这个角度看,框架问题的哲学向度是无法通过“奇技淫巧”而得到规避的。此外,“只有相关行动所直接针对的那个事物维度才会发生变化,而其余事项则都将保持不变”这一点本身的形而上学根据也值得怀疑,因为事物各维度之间的微妙联系,很难使得其中一者变化的时候它者可以完全不变。
  有意思的是,鉴于框架问题和更深刻的哲学问题的这些关联,其在哲学界的影响已经不亚于AI学界。丹尼特就曾指出,框架问题“是一个很深的认识论问题,以前的哲学家虽对其有所触及,但一直未认真对待。现在,它通过Al的新技术而被聚焦,而且还远远未被解决”。而哲学家兼认知科学家福多,则对框架问题更为重视。他认为,这个问题不仅给Al学界制造了麻烦,甚至也给认知科学家带来了困扰(尤其是那些假设“人类心智运作的实质就是句法计算”的认知科学家)。在被人问及“认知科学目前所面临的最严峻挑战为何”之时,他忧心忡忡地表示:
  逻辑学研究2011年“……首先是关于相关性的严峻挑战。这个问题可以从各个角度来谈,但总而言之,我们在处理问题求解时已经遭遇到了它。甚至在我们面对知觉、类比信息、非精确信息,以及乍看上去和我们所正在研究的那类信息迥异的信息时,我们也会遭遇到该问题。所有的这些问题,在人工智能领域内都被唤作为‘框架问题’。但我们不知道如何去解决它。而且,我们是否能够得到一个关于相关性的句法学理论,也不太明朗。”正是由于框架问题所造成的麻烦,福多自己的心智模型就认定人类心智构架的核心处理器“在信息上是不可被封装的”(informationally unencapsu-lated ),即不可被按部就班的句法形式系统所刻画。而那些本来就对传统符号AI进路抱有明显敌意的哲学家(如海德格尔派的哲学家德雷福斯),则更倾向于利用框架问题来为自己的如下立场做辩护:我们的日常活动所依赖的基本框架,根本就不需要明晰的表征。由此看来,“框架问题”这一表面上的技术问题,实际上己经牵涉到了对于整个符号AI进路的合法性的考量—因为在不少哲学家看来,该问题的项庄之剑,所指的并不是某个具体的行动刻画方案(如麦卡锡的“流演算”)的软肋,而是整个经典逻辑路数内的行动表征方式的“阿基里斯脚跟”。
  二、“关于惯性的常识法则”—解决框架问题的救命稻草?在本节中,我们将详细解释,为何对于既有符号逻辑系统的小修小补是难以真正解决框架问题的。从哲学角度看,AI学界比较有代表性的解决框架问题的种种努力,都已经引入了一条缄默的形而上学原则,此即“关于惯性的常识律”(common sense law of inertia。此律是麦卡锡命名的)。此律可被视为“牛顿惯性律”(若一物不受外力作用,将一直保持匀速直线运动或静止)的某种类比物,其内容是:
  关于惯性的常识律:事物的惯性乃是常态,而惯性之被打破,就需要给出额外的动作。举个例子说,杯子的位置(还有颜色、大小、尺寸,等等)的不变乃是常态,除非你改变其某一方面,否则什么都不会变。对于这条规则的更为形式的表达,一般采用“缺省逻辑”(default logic)的技术符号。这是由加拿大计算机科学家雷蒙德·莱特(发明的。根据这种逻辑的精神,若一个事件甲(如“抓起杯具”)发生了,而且我们已经知道事件甲会引起事件乙(如“杯具被抓起来”),那么,只要我们现在不知道有任何事徐英瑾一个维特根斯坦主义者眼中的框架问题情会阻碍事件甲引起事件乙,我们就能够得出结论:事件乙会发生。用式子表示即:
  前提:动作R(x,情境1):动作R(x,情境2)结论:动作R(x,情境2)从哲学角度看,这里也就预设了:世界是具有巨大惯性的,而一事件对另一事件的引发,原则上不会导致对于其他事件的引发。事物的其余部分将保持不变。换言之,在缺省逻辑的帮助下,我们能够将某行动对世界整体的“扰动”在表征系统中加以最小化。那么,引入“关于惯性的常识律”,对于解决框架问题有何帮助呢?在不少AI科学家看来,对于它的引入,可以使得我们可以不再需要明述出那些(原来需要被明述出来的)大量的“框架公理”,由此达成行动表征方式的紧致性(compactness)。比如在程序“STRIP" (中,程序员就充分利用了这条原理来避免引入框架公理。其具体思路是:我们可以把任何一个行动表征从历时角度分为三个阶段:第一个阶段为“初始阶段”(如“智能体‘我’在甲地且一个杯具也在甲地”),第二个阶段则是“删除阶段”(如删去“初始阶段”中的“‘我在甲地且那个杯具也在甲地”),第三个阶段则是“添加阶段”(如加上“‘我’
  在乙地且那个杯具也在乙地”)。由此,我们就可以轻松地定义任何一个行动(而在上面的例子中,我们已经定义了一个行动:“‘我’把杯具从甲地转移到乙地,’)。很显然,在这种定义过程中,我们根本就不需要提到任何一条框架公理(如“‘我’对于杯具的移动不会自动导致洗具的位移”,等等),因为我们已经预设了所谓的“关于惯性的常识律”。但这样做是否就万事大吉了呢?很明显,从哲学角度看,若要引入关于惯性的常识律,我们还得连带给出这两个与之相关的假设:
  第一:关于世界的模块区分假设;第二:关于模块之间的互不影响假设。现在就让我们来详细分析这两个假设。第一个假设说的是,我们先得把世界看成是一个个模块,若上面例子中的“我”、“杯具”、“洗具”,就都是这样的模块。有了这个区分,我们才能够表述出关于惯性的常识律:“世界中不被我影响的那些模块会保持惯性”。但这里的麻烦恰恰在于:如何对世界进行模块区分,本身就是一件很富有智力挑战性的任务,而不是什么已被解决的问题(读者不妨回忆一下我们在做力学练习题时是如何画受力分析图的。不同的模块区分方案,往往通向了不同的解题路径)。然而,对于一个需要自动处理信息的智能系统来说,它又从何能够得到这种关于世界的正确的模块区分假设呢?比如说,在上面的例子中,系统为何不把杯具的杯子把单独拿出来做一个模块?模块和模块之间逻辑学研究的边界在哪里?(我们不妨设想这样一个场景:杯子是用豆腐做的,杯子移动的平面则是沙地。当机器人移动杯子的把子的时候,杯子非但不会动,而且会被整个地毁掉!)。
  第二个假设说的是,在我们已经对世界作出了正确的模块区分的前提下,其中任何一个模块的变化不会导致其他模块的变化。看得出,该假设乃是整个“关于惯性的常识律”的核心命意。但和前一个假设一样,该假设也会导致一些哲学上的困难。比如,正如海耶斯()所指出的那样,若杯具是放在洗具上移动的话,那么由于二者之间的静摩擦力的作用,对于杯具的移动就很可能会导致洗具的移动。但由于我们事先己经把杯具和洗具分成两个模块,那么按照“关于惯性的常识律”,移动杯具是不会导致洗具的位移的。因此,此律就必定会被违反。
  反过来说,若我们为迁就此律而把杯具和洗具看成是一个统一的大模块(我们称之为“杯一洗具”)的话,我们则会在另一个向度上遭遇到新的问题。比如,若我们要刻画“抓起”这个动作,而动作的对象就是“杯一洗具”的话,那么我们就会发现,实际上这个动作是无法被完成的(因为智能体对该动作的执行只能够导致它抓起“杯一洗具”的“杯具”部分)。于是,我们只有反过来去假设“杯具”和“洗具”是两个彼此独立的模块—但这又会重新使得我们无法既能满足“关于惯性的常识律”,又能完美刻画“移动杯具”的动作。
  而在Al文献史上,关于引入“关于惯性的常识律”或缺省逻辑所导致的麻烦,最为精彩的揭露,乃是汉克斯和麦克德默特所指出的“耶鲁枪击问题”(Yaleshooting problem [7])。以下是对该问题的一个简单叙述。
  假设有一个叫张三的倒霉蛋,在耶鲁大学被枪击了。我们把这个可怖的过程分为四个时间段:第一时间段中,张三还活着,杀手未装弹。在第二个时间段中,杀手装了弹,但张三还活着。在第三个时间段中,杀手向张三发射了子弹。这时候,枪还有子弹,并且,因为子弹还在飞行中,所以张三还活着。在最后一个阶段中,张三终于被子弹杀死了,而凶手的枪膛里还有弹药。现在我们只考虑两个事件流(fluent):张三是否活?枪是否装弹?对于这两个问题的自然解答,可根据时间的流变而通过下表得到概括:
  时间点诸事件流真值分配情况0(杀手与被害人相遇)张三活?(了)枪装弹?(X)1(杀手装填弹药)张三活?(J)枪装弹?(J)2(开火)张三活?(了)枪装弹?(J)3(命中)张三活?(X)枪装弹?(J)但让一个以缺省逻辑为工作原则的智能系统画这张表格的话,却未必得到这个理想解。假设在“时间点1",系统被要求给出一个关于未来事件发生的预测,于是系统就有了四个选择:
  徐英瑾一个维特根斯坦主义者眼中的框架问题第一,假设张三将继续活,枪支则继续保持装弹姿态;第二,张三死,枪支则继续装弹;第三,张三活而枪支不装弹;第四,张三死,枪支不装弹。
  顺便说一句,系统还额外地知道一个通过缺省逻辑表达的条件式:装填子弹并且开火:张三死张三死系统肯定不会选择第四种预测,因为按照系统所遵从的惯性律的要求,该预测必须对世界的既有事件发生最小的扰动—而第四种选择对于“时间点1”的两个事件都加以否定了。系统也不会选择第一种预测,因为在该预测中,张三竟然能够在装弹枪支开火的情况下还活着,这就违背了缺省规则。于是系统就只能选择第二和第三种预测。第二种预测就是上面的表格(理想解)所反映的情况,而第三种预测的详情则如下:
  时间点诸事件流真值分配情况0(杀手与被害人相遇)张三活?(了)枪装弹?(x)1(杀手装填弹药)张三活?(了)枪装弹?(了)2(开火)张三活?(了)枪装弹?(x)3(命中)张三活?(了)枪装弹?(x)很显然,这种情况是常识难以接受的:在时间点1,枪明明装弹了,可为何在下一个时间点,枪的弹药怎么就没有了?但对于逻辑系统来说,这么“想”是很自然的。不是要对世界的扰动最小么?好吧,你们人类的做法是保存枪支装弹这一点不变,而让张三的生命被“扰动”—那么,为何咱们机器就不能够反其道而行之,保张三而舍“装弹”呢?这在逻辑上也说得通啊?
  —但这在常理上分明是说不通的。我们的朴素物理学知识告诉我们,一个人被子弹打中后会死,而一只枪被装载子弹后也不会自动卸弹。机器要理解这些,就必须拥有我们关于世界的朴素认识,但仅仅在“关于惯性的常识律”指导下运作的系统却显然缺乏这些知识。从这个例子出发,我们也不妨对“关于惯性的常识律”本身的哲学地位进行更为深入的思索。
  严格地说,对于人类主体来说,虽然我们的日常行动往往会缄默地预设“关于惯性的常识律”,但是这条带有浓郁否定性色彩的规则本身,往往是和我们对于世界的物理学结构的正面领悟交织在一起的。只有在我们的日常物理学知识(区别于科学的物理学知识)缺省的时候,我们才会利用此律来作为行动的指导。但是在前述的以缺省逻辑为指导的刻画方式中,这条本来只是用来亡羊补牢的原逻辑学研究则却被当成了包治百病的狗皮膏药,到处张贴,随时滥用,这自然会导致对于我们人类的一般形而上学知识的严重歪曲,由此导致大量的笑话。
  从这个角度上看,我们也可以更为深入地理解,为何哲学工作者往往会比AI专家更愿意强调“框架问题”的严重性。传统的符号AI专家往往都是受过严谨的形式逻辑训练,喜欢把所有的问题都看成是句法学层面上的技术问题。比如,从句法学角度看,程序“STRIP”的确己经规避了框架公理,因此在纯粹符号的世界中,框架问题的确已经消失了(笔者本人也曾听到过AI圈子里的这么一种观点:建立在“STRIP”基础上的“行动描述语言”,己经彻底解决了框架问题)。但哲学家不会这么想。哲学家更关心的乃是:第一,语义学问题,比如,我们如何为逻辑式子里的每一个指称记号找到确切的被表征对象(这个问题就牵涉到了前述的世界模块区分问题)?第二,知识论问题,比如,我们对于世界的素朴认识本身,是否能够通过纯粹的逻辑技术而得到全面的回避(这就牵涉到了“耶鲁枪击问题”所引出的麻烦)?在哲学家看来,上面对于“框架问题”所谓的解决方案,其实已经预设了我们已经解决了更难的语义学问题,并彻底绕开了知识论问题—但这样做,和掩耳盗铃又有什么区别呢?

本文来源:http://www.rjdtv.com/zhexuelunwen/836.html