用户登录

李梦霞:计算概念的演变

发布时间:2013-10-14    作者:李梦霞     来源:《哲学动态》2013年4期    

李梦霞    华东师范大学心理与认知科学学院

    计算是认知科学的基本概念之一。在人们的认识和实践活动中,计算通常是指一个系统在规则支配下的态的迁移过程,故是一个由态、规则(或规律)和过程所构成的集合体。对于一个系统来说,态表征在某一时刻完全描述它的所有信息,包括输入态、内态和输出态;规则是实现态迁移的映射,实际上是决定信息流动的因果关系网络的体现,而过程则是态的系列。由此可见,在更深的层次上,计算就是信息加工或流动的过程。[1]施密斯(B. C. Smith)认为,计算概念至少存在7种不尽相同的解释,主要有形式符号操作、图灵机意义上的能行可计算和信息加工过程。[2]随之而来的问题是:信息又是什么?与计算概念相类似,对于信息也存在着各种不相同的解释。人工智能专家和哲学家斯洛曼(A. Sloman)认为,信息和能量一样并不能定义,但可以通过分析其在理论和实践活动中所充当的角色来加以说明。例如,信息可以存贮、传递、获取和量化,可由旧信息产生新信息,存在不同类型的信息等,从中就能体会到它的内涵。不过,这种借助使用和所起作用来规定信息的含义的方法似乎并不能解决问题,因为其中已经包含了计算的概念(对信息的加工)。然而,这给我们提供了一个启示:也许不应当考虑计算与信息这两个基本概念之间由哪个定义哪个,而是应当从分析它们之间的辩证关系和各自对实在所做允诺的角度来理解它们的含义。这样,就可以把计算理解为信息的加工,而信息的识别和表示又不能与加工信息的过程(即计算)相分离。也就是说,计算和信息组成了一个不可分割的概念对,每一概念的含义包含了另一概念的含义。考虑到计算与信息加工两个概念及它们两者之间关系的复杂性,本文先尝试对计算概念进行梳理。
    一 数字计算
    计算的概念沿着两条重要的线索发展。第一条线索是这个概念包含多少个计算的处理;即,根据计算概念内涵的丰富程度、名称和作为计算包含的加工数量的不同;第二个线索要解决的是,计算要求的载体是否运行意义或语义属性。
    皮奇尼尼(G. Piccinini)等人认为按照第一条线索,数字计算可包含图灵计算功能的计算(computation of Turing-computable functions,又译为:图灵机意义上的能行可计算),图灵计算功能的计算又可包含算法计算(algorithmic computation),算法计算又可包含经典计算(classical mputation)(见图1)。[3]也就是说每一层的计算概念都比它所属的计算概念有更多的界定限制。为方便理解,先从含义更广的数字计算概念入手介绍。
    “数字计算”(digital computation)是经典数学计算理论中界定的概念,“数字计算主义”是指认知即数字计算的论点。严格的数字计算研究开始于20世纪30年代阿兰·图灵和其他逻辑学家的研究。现在它已是一个典型的数学分支。在图灵等学者对数字计算概念界定之后,1943年沃伦·麦卡洛克(Warren McCulloch)和沃尔特·皮茨(Walter Pitts)使用数字计算来描述大脑的活动。麦卡洛克和皮茨发表了《神经活动内在概念的逻辑演算》一文,该文体现了认知科学研究的两个重要思想:逻辑能够应用于理解大脑活动和精神现象;大脑的物理生物组成或神经元活动能体现逻辑规则。即,他们推断出:神经加工即数字计算,并用他们的“大脑即数字计算”理论来解释认知活动。[4]麦卡洛克和皮茨的理论是第一个使用图灵的数字计算概念的认知理论。由于麦卡洛克和皮茨的理论在随后的计算理论中有很大的影响,但需要强调的是数字计算是启发现代认知计算理论的最重要的概念。因此数字计算概念的澄清工作尤为重要。
    数字计算概念可以被定义为抽象的概念,也可以定义为具体的概念。简单地说,抽象数字计算是操作(manipulation)离散元素,即,来自于限定的字母表中的字母串,不同于字符串(character string)。在此,着重介绍的是具体计算,或自然法则计算(physical computation)。
    简单地讲,具体数字计算是根据一般规则定义的数字的系列加工。让我们简单思考一下数字计算的主要成分。具体数字计算的基本载体(atomic vehicles)是数字。数字是宏观状态(系统的成分)的简单组件,并且,宏观系统的类型是确定、明确地区别于其他宏观系统的类型。每一个(宏观)数字类型均对应于许多可能的宏观状态。数字系统可以用符合它们的(宏观)数字类型一致的同一种方式处理所有宏观系统。为确保数字是基于他们的类型操作的,物理系统必须在有限的数字类型上进行操作。比如,计算机语言只包括2种数字类型,0和1。数字不需要代表任何意义,但是它们可以代表各种意义;数字符号代表数字,然而其他的符号(如,“|”,“”)不代表任何特殊含义。数字可以顺序连接成序列串。字符串是数字计算的载体。数字计算包含按照规则组成的数字串加工。此处的规则是从字符串输入,加上可能的内部状态,到字符串输出的简单映射(map)。规则的例子可能包括加法、乘法、等式、排序等的数字计算。当我们界定具体计算和它的载体,即他们操作的数字/数位(digits)时,我们不需要考虑他们的所有物理属性/自然属性。我们仅考虑它们的与界定计算的规则有关的属性,一个物理系统可以用不同的抽象水平描述。既然具体计算和它们的载体可以被独立与执行它们的物理媒介来界定,我们可以认为它们是“介质独立的”(medium independent)。也就是说,就媒介独立而言,具体物理系统的计算描述是足够抽象的。
    B2X702.jpg
    图1 数字计算的类型和经典计算的关系
    换句话说,载体是媒介独立的,是为了防止界定仅对载体数量差异敏感的规则(如,输入—输出映射)而对载体的其他物理性能不敏感。即,规则是与可以被不同的物理媒介分别操作的自由度状态变量的功能。这样,一个给定的计算可以被多种物理媒介实施(如机械的、机电的、电子的、磁力的),假如媒介拥有足够数量的变量规模(或自由度),这个计算就可以被恰当地使用和操作。数字最典型的特点是它们在正常操作条件下,通过加工机制可以被确定地识别。字符串是数字的顺序集合,例如,这样的数字系统能根据数字处于数字集合的位置来区分不同的数字。反过来,界定数字计算的规则是依据字符串和系统的内部状态界定的,这是系统可以彼此区别的最简单的状态。物理介质的物理属性不再与他们是否执行数字运算有关。这样,数字计算可以被任何有正确自由度的物理介质执行。
    简而言之,物理系统只有在按照规则定义字符串并根据数字类型和它们在字符串中的位置(可能还有系统的内部状态),执行字符串输入时才是数字计算系统。
    此处的数字计算界定是完全常规的。它不应该与其他三个通常被严格界定的概念混淆。这三个计算是:经典计算[5]、算法计算和图灵有计算功能的计算。经典计算经常作为数字计算的同义词使用,此处,强调的是经典计算的更精确的含义。
    经典计算是有两个附加特点的数字计算。第一,它操纵一类特殊的数字载体:类似语言字符串(sentence-like strings of digits)。第二,它是算法的,即它遵循一个算法。例如,一个有效地、按部就班地操作字符串并在有限的步骤里产生结果的程序。因此可以说经典计算就是一个数字的、算法的计算。它的算法对符号的组合语法敏感。[6]经典计算是算法的,但是算法计算,即遵循算法的数字计算含义更广泛。因为它不需要操作类语言载体。同理,任意算法计算是图灵计算(它可以被图灵机器执行)。但是图灵计算功能的计算不需要遵循算法。例如,许多神经网络计算图灵可计算的功能(它们的输入和输出是字符串,输入—输出映射是图灵计算的),但是这样的神经网络不需要有一个为计算它们的功能而遵循一个算法步骤的功能的组织水平。最后,图灵计算功能的计算是数字计算,因为图灵可计算的功能是由可数领域功能定义的。该领域的元素是可数的,参数和功能值也可能被字符串表征。有些作者推测不能进行图灵计算的某些功能也可以被某些物理系统计算。[7]但是许多这样的计算仍属于数字计算。当然,很有可能只有图灵可计算的功能是可以被物理系统计算的。是否真是如此是一个经验问题。此外,图灵不可计算功能的计算与认知研究无关。数字计算包括遵循普通算法的处理,如被标准(模拟)数字计算机执行的计算和各种类型的神经网络计算。既然数字计算是激发认知的计算理论的概念,它也是当前目标的最相关的概念。
    二 泛计算
    即使数字计算概念的含义比较广泛,但仍需要一个含义更广的计算概念。皮奇尼尼等人使用“泛计算”(generic computation),它涵盖了所有认知科学中有关的“计算”。泛计算包含数字计算、模拟计算和神经计算。[8]
    皮奇尼尼等人使用“泛计算”来界定根据规则对某些载体属性敏感,特别是对不同属性敏感的载体的加工。这个定义考虑到更大的载体范围(如,连续变量和离散数字/符号),扩大了数字计算的定义。皮奇尼尼等人使用“泛计算”来指代一般意义上的“认知即计算”的论点。既然泛计算的界定没有涉及特殊的媒介,所以它是媒介独立的,它可以用于所有媒介。也就是说,界定泛计算的载体的不同成分的差异不依赖于介质的特殊物理属性,而仅依赖于相关自由度的存在。
    在麦卡洛克和皮茨提出大脑执行数字运算后,其他学者反驳说神经加工过程可能与模拟计算更相似。他们为模拟计算理论提供证据:神经元不是以全或无的方式,而是以数量不等的方式释放神经递质。[9]模拟计算经常与数字计算相对比,但模拟计算是一个模糊的并且不稳定的概念。最清晰的模拟计算概念是波尔-埃(Pour-El)提出的模拟计算概念。[10]简单地讲,抽象模拟计算是为解决微分方程的某些系统而操作连续变量的系统。连续变量是可以随时间连续变化,并且在某些区间中赋任何值的变量。
    模拟系统可以被物理地执行,并且执行的是与字符串不同类别的载体的连续变量。数字计算系统可以明确地区分不同的数字和它们的类型,一个具体的模拟计算系统不能处理同样的事情,即不能(物理地执行)连续变量的准确值。这是因为连续变量的值只能在误差范围内被测量。因为这一原因,严格意义上来说模拟计算是与数字计算的加工类型不同的。大脑即模拟计算机的论断混淆了两个解释。“模拟计算”的字面解释赐予波尔-埃的概念以精确意思[10]。从字面意义来看,大脑是模拟计算机的理论不会非常盛行的。主要原因在于虽然脉冲系列是时间的连续功能,它们也是全或无信号的序列。模拟计算的不严谨的解释是指计算系统的更大的分类。例如,丘奇兰德(Churchland)和塞杰诺斯基(Sejnowski)使用“类比”一词以便包含连续变量对计算作为模拟是足够的:“输入对于神经而言是模拟(0和1间的连续变量)”。在这样的用法下,即使计算规则也可解释为模拟。有时,伴随着“模拟计算”指的是某些其他未下定义的计算系统,模拟概念是不明确的。[11]对“模拟计算”不加限制的解释——如丘奇兰德和塞杰诺斯基使用的模拟计算概念,不具有普遍性。但是它因为边界不清晰而且易与波尔-埃的更精确的概念相混淆[10]。
    对于神经计算,在近几十年来,对大脑和计算机的类比在神经科学领域被应用。许多神经科学家开始了使用“计算”指代神经冲动(neuronal spike trains),也就是说计算是由神经元实时产生的序列。由神经系统产生的神经冲动经常被叫作“神经计算”。神经计算是否属于数字计算、模拟计算或其他计算,这是一个有争议的问题。皮奇尼尼等人把数字计算、模拟计算和神经计算均归为泛计算(见图2)。
    B2X703.jpg
    图2 泛计算类型和经典计算的关系
    数字是明确的、可区别的载体,而其他载体不是如此。例如,具体的模拟计算不能明确地区分它们操作的连续变量的任何两个部分。既然变量可以代表任何真值,任何系统的灵敏度都有一个下限,也可能连续变量的两个部分的差异太小而不能被系统检测。于是出现的结果是模拟计算的载体不是字符串。然而,模拟计算仅对操作变量的内部之间的差异敏感,差异的程度以系统辨别为特征。任何媒介操作变量的更深层的物理属性与计算无关。就像数字计算一样,因此模拟计算执行的是媒介独立的介质。
    最后,当前的证据显示,神经加工的载体是神经电位/动作电位,神经加工的相关相位是媒介独立的动作电位——主要是动作电位率。也就是说,功能的相关电位方面可能被神经组织或被其他的媒介,如硅电路执行。这样,冲动好像是媒介独立载体的另一实例,在这一实例中,它们可以成为泛计算的载体。假定大脑产生神经冲动,并且冲动是媒介独立的介质,根据定义,大脑是在一般意义上执行了计算。
    总之,泛计算包括数字计算、模拟计算和神经计算(神经计算可能与数字计算或模拟计算一致,也可能不一致)和其他计算。
    三 语义与非语义计算
    以上根据计算概念内涵的丰富程度、名称和作为计算包含的加工数量的不同,介绍了计算概念的不同分类。现在,介绍计算概念的又一个维度,即计算要求的载体是否运行意义或语义属性。数字经常被表征,因为人们认为计算要求表征。一个类似的语义观点可以被泛计算代表。由计算的理论和科学实践潜在的意义界定的计算本身而言,不要求表征和其他任何计算的语义概念前提是计算的非语义概念。有意义的词汇,如“黄绿色”(avocado),即是字符串又是表征,同时计算也可以用它们来定义。无意义序列,如“#r%@”,它们是字符串,不能代表任何含义,但也可以用来定义计算。虽然计算没有要求表征,但是它肯定允许表征。实际上,通常计算通过表征得以实现。例如,通常被普通计算机操作的状态即是表征。
    接下来介绍计算的语义和非语义概念(semantic vs. nonsemantic computation)。简而言之,计算的语义概念把计算定义为对表征的操作。相反,计算的非语义概念将计算定义为不要求载体被表征操作的计算。以上介绍了计算的不同分类(见图3),并在每个分类内部区别了计算的语义概念和计算的非语义概念。计算的语义概念假设计算的载体是表征,计算的非语义概念认为计算的载体不是表征。
    B2X704.jpg
    图3 计算类型和经典计算的关系
    四 计算、经典计算和新联结主义
    厘清计算概念有助于理解长期争论不休的计算主义、经典主义、联结主义和计算神经科学之间的关系。计算主义认为认知就是计算。这蕴含了两层不同的含义:(1)认知是数字计算;(2)认知是一般意义上的计算。假如“计算”意味着一般意义上的计算,例如,媒介独立的载体按照规则加工,计算则成为认知是媒介独立载体按照规则操作的论断。这是一个重要的断言。争辩泛计算要求这样的问题,即,认知能力在某些认知系统的物理属性依赖一个必要的方式,而不是要求区分不同的计算介质载体。例如,有的人可能认为神经系统的放电率(spike rates)必须依赖于电压,而不是其他的物理属性来产生动作电位。其他人则认为没有这些特殊的物理属性不可能产生某一种认知能力。然而,许多认知科学家主张意识可还原为计算和信息加工。[12]与主流认知科学家一致,假设在一定程度上意识可以还原为一般意义上的计算和信息加工,认知可以独立于意识被研究。如果该假设正确的话,考虑到认知加工可能被神经冲动执行,并且神经冲动可能是媒介独立的,我们可以认为认知在一般意义上是计算。假如“计算”意味着数字计算,即,字符串依据规则的加工,则计算主要认为认知是数字操作。正如我们上面看到的,这是麦卡洛奇和皮茨的观点。重要的是,这也是经典计算主义和许多认知的联结主义主张的。这个观点最受计算主义的反对和批评。虽然数字计算包含一个丰富的理论体系。考虑到解释的视角,它是一个强大的理论。它精确的解释范围依赖于认知系统假定的数字计算系统的精确性。假如认知系统是数字计算系统,它们的计算功能的大小应该取决于它们的机械属性的精确性。
    即使是经典主义和联结主义之间的争论也与计算概念有关。到20世纪70年代,麦卡洛奇和皮茨基本被忘记了。认知科学的主要范式是经典(或符号)人工智能,其目标是编写计算机程序来模仿智力行为,而不用特别关心大脑怎么工作。它也假设数字计算致力于经典主义。也就是说,认知是语言或类似句子、结构的操作。基于这种观点,认知由使用类似自然语言但是由思维语言编写而成的逻辑语法执行句子的计算组成。考虑到数字计算主义,经典主义也假设,将认知解释为一个解释大脑的自发行为,似乎解决了大脑怎样工作,但是没有告诉我们或很少能告诉我们认知怎样工作,因为神经的描述和计算的描述是不同水平的。20世纪80年代期间,联结主义作为认知心理学一个有影响的取向再度出现。大部分联结主义者否认认知基于思维语言,他们主张认知理论应该至少由大脑工作方式“启动”。作为经典主义和联结主义争论的结果仍是混乱的。混乱的争论中存在不同的作者使用不同的计算概念的现象,即,有对计算概念不同精确程度的使用,也有对计算概念不同的内涵使用。但是,即使排除计算概念使用中的差异因素,仍有不能厘清的问题。数字计算主义和认知神经网络理论经常被描述得彼此不同。这是因为人们认为数字计算主义包含经典计算(数字计算的载体是类似语言结构的观点)并且独立于神经科学,两个命题被许多杰出的联结主义学者和计算神经科学家拒绝了。但是仍有很多联结主义学者也使用字符串定义的计算执行的神经网络建模和解释认知,因此或许他们也应该算作是数字计算主义者。更糟糕的是,其他的联结主义者和计算神经科学家排斥数字计算主义者,他们主张神经网络可以解释行为,而不是执行数字计算。实际上,数字计算主义的真正起源对来自于神经科学的自主论断表示怀疑。麦卡洛奇和皮茨最初介绍数字计算主义是基于认知生理学的证据。而且,计算主义的某些形式或者说现在是许多神经科学家的工作假设,并且数字计算的概念并没有促使我们假设它的介质是类似语言结构的内容。
    为了澄清这个争论,需要澄清以下两个独立的区别:一个是数字计算(“认知是数字计算”)与它的对立观点(认知不是数字计算/认知是数字计算之外的其他事物)之间的区别;另一个是经典主义(认知是超越语言结构的数字计算)与联结主义和神经计算取向(认知是计算,是否是数字计算取决于神经网络)之间的区别。数字计算主义两种解释——经典数字计算主义(认知是超越语言结构的数字计算)与联结主义和神经计算的计算主义(认知是神经网络的数字计算)——对立于数字计算主义(认知是一种神经网络加工而不是数字计算)。这或许足以用来调节当前争论的大部分观点。但是,仍不能正确处理经典主义和联结主义及神经计算论的关系。争论中更深层的问题源于模糊的术语“联结主义”。联结主义最初的含义指行为是由生物学上神经元之间的刺激—反应转换的“联结”来解释的。最初的联结主义与行为主义者的联想主义(behaviorist associationism)有关,按照联结主义最初的观点,是用刺激和反应之间的联结来解释行为的。联想主义者的联结主义为行为主义者的联想主义增加了生物机制去解释联想:转换神经元之间联结的机制。但是当前的联结主义和计算机的神经科学比联想主义(使用)的限制少。当前的联结主义和计算神经科学是联结主义最普遍的形式,它们简单地把认知(在某些水平)当作是神经网络的活动。大脑是认知的器官,执行认知功能的细胞是(或大部分是)神经元,神经元通过将它们自己组织为神经网络来执行认知工作。现代联结主义在这个意义上来说也是老生常谈。联结主义及神经计算方法和联想主义之间的关系比许多预想要复杂。我们应该区分强的和弱的联想主义。强的联想主义坚持联想是认知理论中的唯一的合理解释构想。弱的联想主义坚持联想同其他的如神经系统的先天结构一起是合理的解释结构。
    的确,有些联结主义自称是强的联想主义。但是它是不切正题的,因为联结主义本身是与弱的联想主义或甚至与联想主义的对立面完全一致。有的联结主义模型根本不是以联想为基础的——麦卡洛奇和皮茨的工作就是典型的例子。弱的联想主义与包括经典主义在内的许多认知理论一致。一个比较鲜明的例子就是图灵的早期建议,即训练联合的神经网络从而获得普遍计算机器的总体结构。在图灵的假设中,联合可以解释一个网络怎么获得一般意义上的计算(或近似)能力,然而一般意义上的计算可以解释很多其他认知现象。虽然当今许多联结主义者和计算神经科学家强调联想的解释作用,他们中的许多人也同弱的联想主义一样,把联想和其他解释结构进行了整合。有待确定的是用哪种方法组织的神经网络,真正地解释了认知和它在联想及其他解释结构中应当充当的角色。
    总之,在涉及神经计算的问题上,每个人都是(或者说应该是)一个联结主义者或计算神经科学家,不必因此委身于强或弱的联想主义者。有的人是经典主义者,他们相信为了解释认知,神经网络必须实际上是语言结构的操作。有的人是非经典(但是仍是数字计算主义者)联结主义者,他们认为认知是非经典神经网络数字计算。最后,有的人是反数字计算主义者的联结主义者,他们认为认知是神经网络的加工(如,他们操作了错误的介质)。为了搞清从长远来看哪些观点是正确的,唯一有效的方式是在神经组织的所有水平上研究神经系统并找出他们是怎么产生行为的(见图4)。
    B2X705.jpg
    图4 泛计算的某些典型形式及其关系


【参考文献】
    [1]郦全民:《计算与实在——当代计算主义思潮剖析》,《哲学研究》2006年第3期。
    [2]B. C. Smith, "The Foundation of Computation", in M. Scheutz ed., Computationalism: New Directions, Cambridge: MIT Press, 2002, p. 77.
    [3][8]G. P. A. Scarantino, "Information Processing Computation and Cognition", Biol. Phys., 2011,(37), pp. 1-38.
    [4]孟伟:《交互心灵的建构——现象学与认知科学研究》,中国社会科学出版社,2009,第45页。
    [5]J. A. Fodor, Z. W. Pylyshyn, "Connectionism and Cognitive Architecture", Cognition, 1998,(28), pp. 3-71.
    [6]G. A. Miller, E. H. Galanter, K. H. Pribram, Plans and the Structure of Behavior, Holt, New York, 1960, p. 65.
    [7]B. J. Copeland, "Narrow Versus Wide Mechanism: Including a Re-examination of Turing`s Views on the Mind-machine Issue", Philos. Xcvi, 2000, pp. 5-32.
    [9]L. A. Rubel, "The Brain as an Analog Computer", Theor. Neurobiol, 1985(4), pp. 73-81.
    [10]M. B. Pour-El, "Abstract Computability and Its Relation to the General Purpose Analog Computer,(some connections between logic, differential equations and analog computers)", Trans. Am. Math. Soc. 1974(199), pp. 1-28.
    [11]P. S. Churchland, T. J. Sejnowski, The Computational Brain, MIT Press, Cambridge, 1992, p. 125.
    [12]N. Block, "Troubles with Functionalism", C. W. Savage ed. Perception and Cognition: Issues in the Foundations of Psychology, 1978,(6), pp. 261-325


人大哲学院