科学网

 找回密码
  注册

tag 标签: 电脑人心

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

电脑人心 之 计算机能思维吗?(二)图灵的机器(5)丘奇-图灵论题
luocun 2010-9-30 08:27
上回我们看到,停机问题这个良定义的问题,不能由图灵机来解决。那么像停机问题这样的图灵机不可解或者说不可计算的问题,究竟是有很多呢,还是只是个别呢? 其实,有另外一种论证,可以说明绝大多数将自然数映射到自然数的函数是图灵机不可计算的。这个论证的思路是把一切可能的图灵机进行点数,把它们排个队。 首先,请注意图灵机的有限性。这个 我们在讨论通用性的时候 说过。除了带子之外,图灵机所有其他方面都是有限的。记号的种类是有限的,控制器的可能状态数是有限的,读写头的可能移动是有限的。这样一来,任何特定的图灵机,其指令表中包含的五元组的数目也就自然是有限的。这就意味着,我们可以把图灵机们按照它们各自的指令表来排队。比如,把指令表视为一个句子,每个五元组视为一个单词,同时将组成五元组的记号种类、控制器状态和读写头移动方向视为字母并规定其字母表顺序。这样,我们就可以像把英语句子按字母顺序排序那样来给图灵机排序了。由此我们可以说明所有可能图灵机的集合是可数(无穷)的。因此,可能图灵机的数目和自然数一样多。(更准确地说,图灵机集合的基数和自然数集合的基数相同。) 另一方面,将自然数映射自然数的函数个数是不可数(无穷)的,远远超过我们用来给图灵机点数的自然数集合的大小,而至少有[0 1]区间里的实数那么多个。(因为这种自然数到自然数映射的集合至少有自然数的幂集那么大。) 由此可见,从自然数到自然数的函数个数比可能的图灵机的个数要多很多。(在集合的基数序列里要整整高出一阶。)这就意味着必然存在着图灵机不可计算的函数;而且,事实上有无穷不可数那么多的函数是图灵机所不可计算的。跟不可计算函数的数目比起来,可能图灵机的数目相对而言小到可以忽略不计。所谓停机问题只是这些不可计算函数中的一个有趣的例子罢了。 需要注意的是这里所谓不可解,是相对于图灵机而言的,所以也叫图灵机不可计算或者图灵不可计算。这里的论证并没有说明其他的跟图灵机不同的机制也不能解决图灵机的停机问题,虽然这些别的机制也可能有自己的停机问题。 这里的讨论表明,存在这数学上良定义的函数,其映射是图灵机这种机制所不能实现的。正如哥德尔曾经指出的,如停机问题这样的不可计算函数的存在,表明了语义是超越纯粹的机制的,就是说哪怕在自然数算术这样一个很简单的领域里,数学语义上可以严格一贯地定义的映射也不能为纯粹机制加以有效执行。 在过去六七十年乃至今天,有不少人由此得出结论说,既然我们一方面能够理解和把握停机问题这类情况,尤其是哥德尔句子为真这样的事实,而机器却不能机械地解决停机问题或者推导出哥德尔句子,因此人的理解或者直觉能力不是机器能够实现的,完全的人工智能也就是不可能的。这个推断成不成立,咱们以后会专门详细讨论。 不过,图灵机并非唯一的计算模型。前面提到过丘奇对不可判定性的工作,他用的模型叫做演算,这个是后来Lisp程序设计语言的基础。此外,还有由克林尼(Stephen Kleene)在哥德尔工作基础上加以整理推广的递归函数(recursive functions)、波斯特(Emil Post)的波斯特产生式系统(Post production systems)等等。再后来,有戴维斯(Martin Davis)提出的S编程语言。这一模型对于程序员来讲会比较直观。它非常简单,只有三种指令,分别是加1、减1和条件转移: (1)x i = x i + 1 (2)x i = x i 1 (3)if x i = 0 goto LABEL 这个模型下的程序由上述三种类型的指令行构成。每行有仅属于自己的唯一标记(LABEL),可以用在转移(goto)语句里面来指明转移的目标。这个模型假定了存在很多下标变量x i 可用,它们起的作用是存储器,跟图灵机的带子相当。不过,这个可是随机存储器(RAM)!您要有兴趣的话,可以试着用S编程语言来写点小程序。(提示:您可以先考虑如何把一个下标变量拷贝到另一个下标变量,由此构造出赋值语句来。) 在1930年代的短短几年里面递归函数、演算、图灵机等等先后被提出,人们很快证明了他们之间的任何一对都是等价的。所谓等价,在这里的意思就是说一个模型能做的,另一个模型也都能做;反之亦然。 当然,要谈两个模型之间的等价性,就必须有一定的准则来界定各个模型要做的事情。比如说,你不能要求演算去做图灵机能做的移动读写头,因为演算里根本就没有读写头;此外,你也不能要求任何这些模型给你炒个小菜或者打个华尔兹的拍子啥的。在这里,等价性证明采用的准则很简单,就是看这些模型如何实现自然数到自然数的函数映射。所谓等价的意思就是说,对于任何一个自然数到自然数的函数映射,如果一个模型能够实现此映射,那么另一个模型也能实现该映射;反之亦然。因为我们前面看到,图灵机并不能实现全部这些映射,所以这个准则并不是空洞的,因为有可能存在某个映射是图灵机不能做的,演算可以做;或者说反过来。 值得注意的是,这里的等价关系是相当的行为主义的,它只关心输入和输出──如果有输出的话──两端的符合,其他任何方面都不管。模型里面具体如何运作,算法是什么,运作有多快,需要多少存储等等全都无所谓,经典计算和量子计算之间的区别也无所谓。 不管怎么样,既然这些特定的模型一个个地被证明为相互等价,人们就在想:嘿,咱们是不是抓住了一点什么具有一般性的东东呢?是不是说所有这些模型共同指向了直观上的计算或者可计算概念的本质呢?由此就有了著名的丘奇-图灵论题(Church-Turing thesis): 任何直观上可计算的函数都可以由某个图灵机来计算。 这个说法之所以叫做论题(thesis)而不是定理(theorem),是因为直观上可计算这个概念是没法形式化,所以也就不可能有形式化的证明。直观上可计算,其大体意思恐怕是说按照某种确定的过程来一步一步地、机械而有效地把输入变形到输出。与其他等价的模型相比,图灵机有个特点,就是它一方面把这个思想给形式化了,另一方面又保留了机器之为机器的直观性。由此,我们可以理解为什么哥德尔会认为,是图灵机这个模型的提出,真正把有效可计算性这个概念给抓住了。 丘奇-图灵论题提出至今有70多年的了。它也不是没有人反对,今天也还有人在尝试提出与图灵机不等价的,计算能力超越图灵机的模型。不过,迄今为止还没有任何被断言为超越图灵机的计算模型被普遍接受为合理的、符合直观可计算观念的模型。所以,今天的主流观点依然认为这一论题是对的,以图灵机为代表的这批计算模型确实抓住了直观上的可计算性。
个人分类: 电脑人心|12621 次阅读|1 个评论
电脑人心 之 计算机能思维吗?(二)图灵的机器(4)停机问题
luocun 2010-9-28 06:20
前面说到图灵机可以做一些很有用的事情,比如 咱们讨论过的奇偶校验 ,再比如计算圆周率。那么,图灵机究竟能做多少事情呢? 先来看看图灵机的所谓通用性(universality)。通用性是不是意味着图灵机可以做任何事情呢?不是。因为,正如 我们上次说过的 ,通用性并不是说一台通用图灵机(universal Turing machine)能够做所有的事情,而是说它跟任何其他图灵机指令表的编码结合起来,可以做那台图灵机本来做的事情。这就意味着,如果有某个任务,我们不可能构造出任何图灵机──就是说构造出适当的指令表──来完成,那么这个任务自然也就是通用图灵机也不能完成的了。 那么,究竟是不是人们能够想到的一切计算任务,都可以构造某台图灵机来完成呢?图灵1936年的文章证明了这是不行的。就是说,存在着严格定义的计算任务或者问题,它是任何图灵机都不能完成的。图灵当时讨论了一个问题,是后来被叫做停机问题(halting problem)的一个变形。下面俺非正式地介绍一下停机问题。 会编程序的朋友都知道,一个程序在运行时有可能进入所谓死循环,就是说程序反复不停地做一些事情,一遍又一遍,没完没了,让它停止执行的条件永远得不到满足。死循环是程序设计中常见的臭虫之一。那么,大家可能会想,能不能构造一个程序,叫做死循环检测器,这个程序,以任何程序P及其任何输入S为输入──就像通用图灵机那样──然后告诉你P在S下会不会运行到一个死循环,而永远停不下来。如果能够造出这样的死循环检测器,那么程序 调试 就会方便很多。图灵证明了停机问题不可解,也就排除了构造出这样的死循环检测器的可能性。 稍微形式化一点,所谓停机问题是说,是否存在一个图灵机,我们可以把它叫做H,它实现这么一种判定程序:给定任何图灵机M和任何输入m,H总是会就M在m输入下会不会停机给出肯定或者否定的正确答案。 请注意,所谓停机问题不是说,图灵机出问题了。不是像最近酒后驾车的问题很严重 那种问题,那种坏现象。 停机问题 就像能不能造出死循环检测器呢?那样, 是一项任务,一种期望 。所谓停机问题不可解,就是说不存在H那样的图灵机,就像不可能造出死循环检测器那样。 下面来看看如何用反证法来论证这种不可能性。 假定 H 存在 ,或者说可以构造出来,这就是说H的行为大致可以用如下的伪代码来表示: H(M, m) { 如果M在输入m下停机,那么 打印停机 否则 打印不停机 } 这里H(M, m)的意思就是说H接受M和m为输入。 那么,以H为基础,我们可以构造另一个图灵机,可以叫做E,它的行为如下 E(n) { 如果H(n, n)打印停机,那么 反复执行 打印不停机 直到1等于2 否则 打印停机 } 由于1永远也不会等于2,所以E的构造里面有个死循环,一旦进到那里,就再也出不来,不停地打印不停机。而进入那个死循环的条件呢,就是H(n,n)打印停机。根据H的定义,这也就是说编码为n的图灵机,在以自己的编码n为输入的情况下会停机。 既然,E也是一个图灵机,那么它就可以有它相应的编码。我们讨论在 通用图灵机 时说过的,任何一个图灵机都可以被编码,然后该编码可以被用作图灵机的输入。那么,E也就自然有它的编码,我们把这个编码叫做e。那么,当E以e为输入时,就是执行E(e)时,情况会怎样呢? 根据E的构造,E(e)只有两种可能。要么是情况(甲):进入死循环,不停地打印不停机,运行永远也不结束;要么 是情况 (乙):打印一次停机然后就结束。 假定是情况(甲)或者说死循环,那么根据E的构造,H(e,e)打印的是停机。前面提到过,按照H的定义,这也就是说编码为e的那个图灵机──就是E!──在输入为e时会停机,或者说E(e)会停机。这就跟这里假定的(甲)刚好矛盾了。 假定是情况(乙)或者说打印一次就停机,那么根据E的构造,H ( e,e)打印的是不停机。按照H的定义,这也就是说E在输入e下面 不停机, 亦即E(e)不停机,这就和这里假定的(乙)刚好矛盾了。 既然 E(e)出现 其仅有的两种可能行为中的任何一种都导致矛盾,那么我们最初关于H可以构造出来的假定 必然 是错的。这样我们就证明了不可能构造出一个H,给它任何其他图灵机M的编码和输入m,它都能告诉我们M在输入m下是否会停机。就是说,我们证明了停机问题不可解。 在说明了停机问题(的一种变形)不可解之后,图灵在论文中把判定问题规约为停机问题,从而作为图灵机理论的一个应用,证明了判定问题不可解,从而跟丘奇一样,否定性地回答了 希尔伯特和艾克曼的问题 :不存在一般性的判定过程,能够从形式化了的算术系统里的命题出发,就该命题是否为真或者是否可证给出确定的答案。
个人分类: 电脑人心|6642 次阅读|0 个评论
电脑人心 之 计算机能思维吗?(二)图灵的机器(3)"通用性"
luocun 2010-9-24 11:31
上次讲到图灵机的构造,就这么简单的一种安排[link],图灵认为它是体现了有效过程,并通过证明一系列的结果来论证这一点,其中最有名的两个结果无疑是通用性和可计算性(毋宁说是不可计算性)。前一个结果是正面的、肯定性的结果,是说咱们可以构造一个图灵机(就是说构造一个指令表了),叫做通用图灵机。 这个通用图灵机──我们可以把它叫做U──完全按照任何普通的图灵机那样运行,就像上次我们讲到的那样:每一步不过是根据当前状态和读写头下当前的符号,按照指令表里面的相应指令,决定新的状态、写出的记号和读写头移动的方向。可是,放到这个图灵机的带子上的输入,其组织比较特别,分为两部分,一部分是任何某个图灵机M(其实就是说M的指令表了)的编码,另一部分是给M的输入m。 U能做的事情呢,就是说如果本来M在输入为m的情况下,最后停机并在带子上留下输出m',那么U在以M的指令表编码和m联合组成的输入下,最后停机并在带子上留下输出m';反之,如果本来M在输入为m的情况下,不停机,那么U在相应的以M指令表编码和m的联合输入下,也不停机。就是说,在任何输入m下,U跟M的指令编码部分──这可以视为是U的程序──联合起来,都可以跟M本身在m输入下表现得一样。当然,这里的一样,或者说等价,只是从输入输出关系和停机与否而言,也就是说如果我们忽略中间过程里状态和纸带的在每一步上的具体变化的话。(换句话说,这其实是一种非常行为主义的等价。) 咱们来简单看看为什么构造这样一个U是可能的。基本的思路是让U来模拟M的每一步。 首先,任何一个图灵机M都可以用一个有限的记号串来编码。这是因为,除了带子之外,图灵机的任何其他方面都是有限的:(1)带子上记号的种类是有限的。比如,上面咱们一直就只考虑了0和1两种,即使加上空白的化,也才三种;而即使用上所有的UNICODE字符,包括全部汉字,也还是有限的。(2)可能的状态数是有限的。(3)读写头的可能移动是有限的:向左、向右或者不动。这样的话,由于构成指令表的任何五元组都是由状态、记号和读写头移动的可能情况组合而成的,指令表也就是必然是有限的。这就意味着,M的指令表可以用有限长度的编码来代表。 其次,输入是很简单的,我们可以不失一般性地假设U和M用的记号是相同的,这样的话,就可以直接把M的输入m放到U的带子上。 第三,M有自己的控制器,控制器不光包括了上面讨论了的指令表,还有M在当前的状态。请注意,这里我们不能根据M的不同,每次有个新的M时,都相应改变U的状态集合。那样的话,U就不再有通用性了。可是,我们可以用U自己的带子!具体而言,我们可以在U的带子上面开辟出特定的一块来专门记录M当前的状态。这里可以采取跟M的指令表编码时采取同样的状态编码。这样的话,每次M的状态改变时,U就可以把自己带子上的专用记录区加以相应更新。 最后,在任何特定时刻,M的读写头也在一个特定的位置,所以U也需要跟踪M的读写头的位置。这里可以采用插入一个特殊的记号的方式。比如把#放在U自己带子上对应于M的输入输出记号串的那部分里M的读写头当前所在空格的右边那一格。 有了这些编码M的指令表、输入与状态,以及跟踪M的控制器状态和读写头位置方面的准备,我们就可以考虑U如何去执行(编码后的)M的指令表。 根据U自己带子上对M的控制器状态和读写头位置的记录,可以很容易得到M(如果它自己在运行的话)的当前状态和当前输入记号。拿到了这些之后,就可以根据它们去找出U的带子上那条编码后的相应的M的指令。这里需要图灵机能够进行有限记号串的匹配操作。这个大家想想,应该不难。 找到指令后,就剩下三件事情了:(1)状态转换,这个其实只需要U把找到的指令里的新状态拷贝到的自己带子上记录M状态的那片专用记录区就可以;(2)写出记号,这个只要在带子上用#标出的,M的读写头当前位置处(就是#的右边),把格子里的旧记号用找到的M的指令里的新记号替换就可以;(3)模拟M读写头的移动,这个需要改变特殊记号#的位置,就是说让它和它左边或者右边的邻居格子里的记号交换就可以。 咱们这里只是粗粗勾勒了一下通用图灵机的构造,省略了很多细节,不过由此也应该可以看出构造通用图灵机是可能的。 至于说这个通用性结果的意义,主流的说法是它很了不起,表明了可以有一个图灵机可以做任何其他图灵机可以做的事情。这个结果,或者说这种理解,在历史上曾经刺激了McCulloch和Pitts的开创性的神经网络研究。 不过,俺觉得,这个所谓通用性,其实真正的意义在于引入了编程的概念,甚至基本框架。因为要说U可以做任何其他图灵机M可以做的事情,其实是不准确的,因为U总还是需要M的指令表的,就像前面提到的,做M所做的事情的,其实总是U和M的指令表编码的组合。所以,其实U的真正意义在于设立了一个编程框架,这样的话,就不用在物理地去构造M,而只要在U的带子上构造M的指令表编码就行了。所以,通用性这个名字很有欺骗性,其实质其实是可编程性。
个人分类: 电脑人心|5775 次阅读|0 个评论
电脑人心 之 计算机能思维吗?(二)图灵的机器(2)构造
luocun 2010-9-22 11:22
那么,图灵机是啥样子的呢?它其实非常简单。图灵的主要构思之一,是考虑人在进行数学或者逻辑演算的时候是如何工作的。把人按照既定规则做计算和推理的这个操作过程加以最简化而得来的。具体而言,图灵机有下列零部件。 首先是一根一维的 带子 ,可以把它想象成一根纸带。带子分成确定的格子,每个格子里面可以写上记号,比如0和1,也可以为空,就是说没有写记号或者记号给抹掉了。这根带子是图灵机输入和输出的来源,也是图灵机记录中间结果的存储器。所以,这个带子的角色就好像一个人做算术或者逻辑推理时用的草稿纸那样。通常的草稿纸是二维平面的,比如除法演算的规则就告诉我们除数写在被除数左边,商写在被除数上面的横线之上,余数写在被除数相应位的底下,如此等等。但是按照图灵的分析,这种二维的安排,并不是必需的,因为只要有办法把哪个数写在哪里给有章有序地归置好,一维的带子就应该够用了。同时,也不需要太多种类的记号,因为更复杂的记号总可以由简单的给组合出来。比如,0、1和空白,就可以在二进制下做任何运算了。 人做计算时用纸,自然是为了看清纸上的数字,把下一步的结果用比较原子性的操作(比如一位数的加减乘除)一个个算出来,写到纸上,如此一步一步反复直到得到结果。所以就需要和草稿纸交互作用的机制,这在人就是用眼睛看,用手写。同样,图灵机的带子也有相应的读和写的机制。读在这里的意思,就是把带子上特定空格的 记号 给区分出来:0就是0,1就是1,空白就是空白;写的意思,就是在带子的特定空格放上个0或者1,替换掉了那里原来的记号,或者把那个格子抹成空白。我们平时做算术,在任何一个时刻,要么读和要么写,总是只在一个位置发生,比如读出被除数的某一位,或者写上商数的新的一位。即使我们有可能同时注视或者写出多位数,但这也可以分解成单独注视或者写出某一位。同样,在图灵机里,读和写在任何时间,只在一个空格进行。这样,我们就可以说有个 读写头 ,它就好像磁带录音机的磁头那样,在任何特定的时间总是在带子的一个特定的格子上方。要改变位置的话,就需要沿着带子挪动读写头,每次或左或右挪动一格。同样,如果需要挪多格的话,总可以通过反复挪动来实现。 有一点要说明的,就是图灵机的带子是没有头的,读写头向左或者向右都可以无穷无尽的走下去。更准确地讲,这个意思不是说在任何时候带子的长度是无限的,而是说在任何时候假使读写头往以便走到了带子在当前长度下的最后一格,那么总可以在头上再接上一段带子,让机器继续运行下去。这就好像草稿纸用完了,总可以再添一张。 有了带子(草稿纸)跟读写头(眼睛和铅笔或者说磁头),还缺负责计算的组织运作的东东。完成这个事情的,就是所谓控制器。这个可以想象成一个小盒子。盒子有特定的有限数目的状态。在不同的盒子状态下,机器可以有不同的行为,所以这个盒子才叫做控制器。具体状态在盒子里面是如何实现的不重要,比如可以用指针的位置或者用算盘珠子的位置,重要的是状态和状态之间可以分得一清二楚不会混淆。 艺术化的图灵机 [原图取自: Wikimedia Commons ] 有了这些基本零部件,我们就可以讨论如何让图灵机干活了。在任何一步上,决定图灵机做什么事情的有两方面的情况:(1)控制器现在的状态(这可以对应于现在的任务做到哪一步了(比如在做加法的话,可以是刚写了和,现在该写进位了),(2)读写头下面是什么;图灵机可以做三方面的事情:(3)从当前状态转移进入下一状态,与此同时(4)在当前格子上写个什么记号(包括用空白抹掉当前记号),并(5)让读写头在带子上左移一格、右移一格或是原地不动。所以,图灵机每一步做的事,就是根据它的(1)当前状态qi跟(2)当前读出的记号sj,决定(3)下一状态qij,(4)写出的记号sij,和(5)读写头的移动方向dij。 这样,图灵机的任何一步都可以用一个五元组来描述:( q i ,s j , q ij , s ij , d ij )。这里的下标 i 表示控制器的当前状态 q i 是所有可能状态之一,下标 j 表示当前读到的记号sj是所有的可能记号之一。两个合在一起的 ij 就表示新的状态 q ij ,写出的记号 s ij ,移动的方向 d ij 是由 q i 和 s j 共同决定的,或者说这三者分别都是 q i 和 s j 的函数。给定特定的一组( q i ,s j , q ij , s ij , d ij ),就是给定了图灵机在 q i 和 s j 下的行为,所以可以这样的五元组叫做图灵机的指令。当 q i 和 s j 不同的时候,就是说处于不同状态,读取不同记号的时候, q ij , s ij , d ij 相应地也可以取不同的(或者相同的)值,这样我们就有一些不同的五元组。把这些五元组都合到一起,就得到了决定了机器行为的 指令表 。我们通常想象指令表是存储在控制器里的,读写头是连在控制器上的。这样,在任何时刻,控制器就可以根据它的当前状态和带子上当前格子里的记号,决定图灵机的行为。 这里,有必要强调说明一下图灵机 彻底的离散性 。具体说来,带子是离散的:一格就是一格;记号是离散的:一个就是一个;控制器的状态是离散的:此状态非彼状态。读操作的区分和写操作的改变是离散的:读写头下面的是0,读到的就是0,写出的是1,格子上面出现的就是1,读的是啥、写的是啥不会有任何模糊之处。读写头移动是离散的:一格就是一格。状态转换是离散的:从状态甲到状态乙,没有中间状态可言,不会有混淆,不会有交叠。时间是离散的:读写操作、读写头移动、状态转化都是原子性的,一步完成,一步就是一步,没有完成了一半这样的说法。 举个具体的例子:二进制串奇偶性的检查。这里所谓的奇偶性是指二进制串里面有奇数个还是偶数个1。二进制串奇偶性这个概念挺有用。比如你和朋友之间发送消息,事先约定所有的消息都是7位,比如0101010,1110110,1111110,如此等等。这三个串里面,前两个有奇数个1,是奇串,后一个有偶数个1,是偶串。假设你们进一步约定,在发送消息前,每个7位的消息串尾巴上再增加一位,叫做校验位。这个校验位根据消息串的奇偶性来设置:如果消息串是奇,校验位就是1,否则就是0。这样,上面三个消息串在增加了奇偶校验位之后,就分别是01010101,11101101,11111100。然后你的朋友再把这样的包含校验位的8位的串,比如11101101,发送给你。如果传输正常,那么不管你的朋友发的是那个消息,这个8位的串都应该是偶串。这样,当你每收到一个串的时候,就可以对它进行 奇偶性检验 。如果你收到了一个偶串,比如11101101,那可能就没有问题(当然也可能有,比如,本来传输的是00101101,结果半路上前两位给反转而变成了11101101)。但是,如果你收到的是个奇串,比如10101101,那你就知道这中间肯定出问题了,至少有一位的0和1(一定有奇数个0和1)给反转过来了。于是,你就可以要求你的朋友重新传一次。通过这种奇偶校验,就可以抓住传输中发生的错误。 这个很有用的奇偶性检验,可以用图灵机来实现。把一个二进制串,放到带子上,串的两头的格子都是空白,读写头对准最左边的那一个非空白的数字(0或者1)。机器的任务是扫描并抹掉整个串,如果是个偶串,就在结束运行之前在带子上留下个0,如果是个奇串,就留下个1,而带子的其他格都是空白。 下面这个指令表,就能让图灵机实现奇偶性检验。在运行开始是,初始状态为偶。表中的H的意思是HALT,就是停机。遇到这个状态,机器就不再运行了。(所以,H不出现在 q i 那一列里面)。 ────────────────────────── ─── ─ ─── q i s j q ij s ij d ij ────────────────────────── ─── ── ─ ─ 偶 0 偶 空白 右 ────────────────────────── ─── ─ ─── 偶 1 奇 空白 右 ────────────────────────── ─── ─ ─ ── 偶 空白 H 0 - ─────────────────────────── ─── ─ ─ ─ 奇 0 奇 空白 右 ──────────────────────── ─── ───── ─ 奇 1 偶 空白 右 ─────────────── ── ─ ────────────── ─ 奇 空白 H 1 - ───────────────────── ─── ──────── ─ 下面看看为什么这个指令表能够完成任务。根据读写头当前所遇到的符号sj,首先,如果遇到0,就不改变状态:偶还是偶(第1行),奇还是奇(第4行);其次,如果遇到1,就改变状态,从偶到奇(第2行),从奇到偶(第5行);最后,如果遇到空白,读写头下面的不再是0或者1了,说明整个串都检查完了,这时,就可以根据状态输出0(第3行),或者输出1(第6行),并进入停机状态H。请注意,在整个过程中,除了进入停机状态H的时候,读写头不移动之外,读写头总是在向右移动;此外,除了进入H的那次,每读完一格,就把那格擦掉,所以 s ij 总是空白。 那么,我们通常所谓这个或者那个图灵机,就是指给定了一个如上表那样的指令表。给定了指令表之后,带子上的输入可以变,只要满足初始状态设置和读写头初始位置的条件,一个图灵机就应该可以对任何合法的输入串进行指令表所实现的处理。 跟学习编程序一样,学习理解图灵机如何运作的最好办法跟踪执行一些指令表和自己构造一些完成各种简单任务的指令表,比如做二进制加法、判断一个串是不是回文等等。 [声明:此处的图灵机,细节上不同于Turing于1936年提出的,属于现在比较通用的改进型。这里是基于明斯基的Computation: Finite and Infinite Machines。奇偶校验的例子,来自该书第120页。]
个人分类: 电脑人心|5864 次阅读|0 个评论
电脑人心 之 计算机能思维吗?(二)图灵的机器(1)源起
luocun 2010-9-17 10:55
今天,计算机跟数学和形式逻辑之间恐怕显不出什么特别的天然联系,计算机与信息科学和工程并不比物理、化学、生物来得更数学。所谓计算早已不再是当年算数那样的意思了,而更多的是在对付电子游戏、手机短信、文档编辑等等。然而,作为理论计算机科学源头的图灵机,在它的起源上是和数学与逻辑分不开的,特别是数学和逻辑里面的元数学运动。 元数学运动起源于1900年前后,其动力来自于数学家们澄清数学基础的努力。当时在几何学、数学分析理论、算术的公理化等等方面,都遇到了不少基础性问题。后来,由于罗素、怀特海、弗雷格、皮亚诺、希尔伯特等等数学家和逻辑学家的努力,元数学和数理逻辑得到长足的发展,解决了不少问题。到了1928年,希尔伯特在国际数学家大会上很乐观地预期,数学将在不久的将来建立在牢固的基础上。不过,他在讲话时也提到了四个问题:这些涉及如何通过证明来确立数理逻辑系统的一致性(就是说不自相矛盾的)、完全性(就是说系统里所有的真命题都在系统中可证)等等。 不过,很快,希尔伯特就开始失望了。奥地利逻辑学家库尔特哥德尔引入递归函数的概念和给逻辑推理编码的哥德尔配数法,于1931年证明了包含自然数算术的一阶逻辑系统的不完全性,表明了如果这个系统是一致的,那么系统里就存在这不可证明的真命题,所以是不完全的。[此处谢谢真傻兄指正!] 希尔伯特和艾克曼(Ackermann)在他们1928年编的逻辑课本里面,还提到了另外一个问题:可判定性问题。这是在问存不存在确定的有效过程或程序(effective process or procedure),给定任何一个形式化了的关于算术的命题,这个程序将可以判定其真伪、或者判断它是否可证明。这个问题和哥德尔解决了的完全性问题不同。 首先,它涉及有效过程这个直观的概念,并没有也不可能有明确的形式化定义的,而是取决于人们如何具体安排和构造这样的程序,而这些安排和构造的可能性可以说是没有明确的边界的。 其次,它只要求针对一定的属性进行判定,而并不要求给出证明。就是说,这只是在要求按照程序就能给出是或者非的答案,只要求答案正确,而不要求给出任何理由或者推理过程。比如哥德巴赫猜想:任何大于2的偶数都可以分解成两个素数之和。咱们对判定程序的要求就是,如果把这个命题作为输入,程序要输出是或者非,判定这个猜想的真伪。这样,即使这个猜想被正确地判定为真,咱们也依然不知道如何去证明这个猜想,但是(如果这个程序是可靠的话)至少可以知道它是真的。 1935年,图灵刚刚从剑桥大学的国王学院本科毕业,留在那里做研究员(fellow)。他从Newman的课听到这些后,用了一年左右的时间,就把判定问题搞通了,论证了在他自己提出的一种非常一般化的后来叫做图灵机的对有效程序的形式化之下,存在不可判定的问题。由此图灵在1936年春写完了著名的《论可计算数及其在判定问题上的一个应用》这篇理论计算机科学的奠基性文章。不过,丘奇(Church)在一年前已经用另外的一种叫做演算的形式化方法,得到了同样的结果。当Newman给图灵看丘奇论文的清样时,图灵颇为郁闷,后来给自己的文章补充了一个附录,证明它的图灵机和演算是等价的,然后,发表了他的论文。 其实,虽然图灵的结果比丘奇的结果晚出来大概一年,但是由于跟丘奇的演算,以及同样是等价的哥德尔的递归函数相比,图灵机的构造要直观很多,可以说更直接地反映出了有效过程或者程序这个直观概念的关键部分。所以,当哥德尔自己看到图灵的构造,也信服地表示,图灵机反映出了问题的基本要点,这些等价的各种形式系统看来确实是抓住了直观上的有效过程的核心。 更具体一点,图灵在这篇文章取得到了一系列重要结果。首先,他提出了图灵机这种有效程序的模型,用于模拟一切算术和逻辑操作;其次,他开发了一套把任何图灵机加以编码的方式,并构造出以这些编码为输入的通用图灵机,能够执行任何其他图灵机的编码;然后,图灵说明了图灵机这种构造能够进行很多计算,包括圆周率和自然对数的底e等等;此外,图灵说明了存在着可以准确定义,然而不能由任何图灵机完成的问题,比如判定任何给定的图灵机是不是只有有限多的输出,说明了存在着图灵机不能输出其二进制表示的数,从而指出了有效程序能完成的工作的限度;最后,他把希尔伯特的判定问题化约为数字的生成问题,证明了判定问题不可解:不存在图灵机意义上的一般性的判定程序,可以就任何给定的关于自然数的一阶逻辑命题进行可证明性的判定。
个人分类: 科学网|4096 次阅读|2 个评论
电脑人心 之 计算机能思维吗?(一)图灵同志生平
热度 1 luocun 2010-9-14 11:33
回到咱们的电脑人心?专题。先来看看计算机能思维吗?这一问题的辩论。正方是阿兰图灵。反方共有10路纵队。咱们先从介绍正方选手的生平开始。 (1)图灵同志生平 在前面的历史简述里,我们已经提到了AI这娃的爸爸阿兰图灵同志。 阿兰图灵1912年6月23日出生于英国帕丁顿。他的父亲朱利叶斯图灵毕业于剑桥大学,是大英帝国在印度殖民地的文职官员,供职于印度东南孟加拉湾边上的马德拉斯(现在叫清奈)地区。母亲萨拉是移民爱尔兰的英国人的后代,家里多出工程师,她的父亲当时是马德拉斯铁路系统的总工。图灵祖辈曾经有人在印度发迹,并获得爵士称号。图灵的祖父早死,留下一大家子,儿子们继续为大英帝国的建设效力。图灵的大伯在印度从军,1899年在现在巴基斯坦的西北边疆省中埋伏被打死。图灵生于1914年爆发的第一次世界大战之前两年,死于1945年结束的第二次世界大战之后9年,而大英帝国正是通过两次大战而迅速走向衰落的。图灵可以说是日渐衰落的大英帝国的孩子。 图灵有个大他四岁的哥哥,出生在印度。图灵是在印度怀上的,不过朱利叶斯爸爸安排了全家回英国休假,所以图灵生在了英国。图灵9个月时,父亲就回印度去了,1岁3个月时,母亲也回去了。作为留守儿童,图灵由寄养家庭的爷爷奶奶带大,10岁前,大概一半多的时间父母都不在身边。他从小很招人喜欢,很淘气,也很聪明,自己用了三个星期,照着一本《不哭鼻子也能读书》教会了自己阅读。不过,9岁的时候,母亲从印度回来,发现开朗活泼,乐于社交的小图灵变得木讷、不合群了。 小学毕业之后,图灵上的是雪伯恩公立中学(Sherborne public school)。在英国当时的教育系统里面,公立中学大致是培养中规中矩的有文化、有纪律、有道德的帝国建设者,管教是相当严格的,不过还是有一定的空间,尤其是图灵上的雪伯恩公立中学,在数学和科学的学习上还是有一定的条件的。图灵上学期间,用很多时间学习数学和科学,不是很合群但也不添麻烦吧。他虽然手不是很巧,但是喜欢做各种东西,喜欢地图,喜欢远足,擅长长跑,有着在沙漠荒岛如何生存的最简主义思维方式。用他自己13岁时候在一封信里的话来讲,我似乎总是想以最节能的方式,用自然界里最平常的东西来造各种东西。 删繁就简,可以说是他一贯的思维特点。 图灵从小就对心灵问题感兴趣。高中的时候结识了同校一位叫做克里斯托弗莫科姆。莫科姆比图灵高一个年级,家境宽裕,有自己的天文观察台和化学实验室,在他的影响下,图灵对天文和化学发生了浓厚兴趣。1929年底图灵和克里斯托弗一起参加了剑桥大学三一学院的奖学金考试,克里斯托弗被录取。可是,两个月之后,莫科姆就因为结核病发作而死。莫科姆可以说是图灵同志的初恋吧,他的去世给图灵很大打击,促使他思考灵魂的问题,追问永恒的可能性。 1931年,图灵进入剑桥大学国王学院。当时的国王学院,有思想开明的凯恩斯任校长,有著名数学家哈代同志任教,思想活跃,气氛宽松,这很适合于在社交上很笨拙的图灵,也使得他逐渐觉醒的同性恋意识没有受到额外的压制。在剑桥期间,图灵专攻数学,成绩优异。1935年,图灵听了数学家纽曼(M.H.A. Newman)的数学基础(Foundations of Mathematics)讲座,接触了希尔伯特的判定问题。图灵听到之后,就开始攻这个问题。在一年左右的时间里,就搞通了,并完成了它的经典论文《论可计算数及其在判定问题上的一个应用》。在论文中,图灵提出了后来叫做图灵机的一种机器模型,用于模拟一切算术操作。虽然,图灵不是第一个阐明判定问题不可解的数学家──他当时并不知道阿伦佐丘奇比他早一年以另一种等价的方式解决了这个问题,但是图灵机的直观性,其明确的机械性,使得大家对他的构造很认同。图灵机及其各种变形,今天仍然在理论计算机科学里广泛使用。 从剑桥毕业之后,图灵赴美国普林斯顿留学,并于1938年在丘奇指导下取得博士学位。当时,普林斯顿想挽留他继续在学术界发展,但是图灵选择了回国,并在二战前返回了英国。在二战爆发后,图灵加入了政府密码学校(GCCS, Government Code and Cipher School),从事破译谜团密码的工作。谜团系统是整个二战期间德军使用的密码系统。在波兰人的先驱工作的基础上,图灵为破译谜团密码做了奠基性的工作,后来又负责GCCS的大西洋室的工作。当时,英国沦为孤岛,后勤接济全靠海运,尤其是经由北大西洋来自美国的海运。然而,德国潜艇肆虐其间,击沉大量商船,曾经数度击沉船舶吨位的速度超过英美制造的速度。谜团密码之后破译,使得英国能够非常有效地定位并攻击德国潜艇,同时引导船队避开。可以说,图灵自己和同事们的工作对扭转大西洋战场的战局,起了非常关键的作用。 在GCCS工作期间,图灵曾与同事琼克拉克短暂订婚,后来面对自己是同性恋这一事实,图灵取消了婚约。 战后,图灵在1945年到1948年期间,在国家物理实验室工作,负责王牌机(ACE──自动计算引擎)的基本设计,明确要把它做成通用机,提出了很多崭新的思想:存储程序、子程序、高级程序设计语言等等。不过,随着战争的离去,科研机构回归官僚化,图灵的思想和主张难以得到支持和采纳,ACE计算机也拖到1952年才建成,而图灵也早已于1948年离开国家物理实验室,前往曼彻斯特加入大学,从事计算机程序设计工作。 与此同时,基于战时学习的电子技术和战后计算机设计与编程的经验,图灵回到了他一直感兴趣的人的心灵问题,提出可以通过编程让机器思维。通过一系列的采访、辩论、报告和文章,尤其是1950年发表在英国哲学杂志《心》上的《计算机械与智能》一文,图灵明确提出了后来被叫做人工智能的思想。如果说1936年的《可计算数》是理论计算机科学的奠基性文章,那么这篇文章可以说是人工智能的奠基性文章。 在曼彻斯特大学工作期间,从小就对生物形态感兴趣,以着迷于野菊花而闻名的图灵,开始从事形态发生学(morphogenesis)的研究。他以简单的微分方程表达化学成分的分布,来解释斑点的形成等等,并利用计算机来进行微分方程的计算,做出了开创性的工作。 在战后的年头,图灵对自己身为同性恋更为自觉和自信。1952年,他在曼彻斯特的家被窃,窃贼是他的同性恋对象的朋友──他当时正试图与这位朋友发展长期关系。在警方调查中,他直述自己的同性恋关系和行为,于是被起诉,被判大大有伤风化,处以化学阉割,就是注射雌性激素来治疗他的同性恋。 虽然,此时的图灵对于自己的同性恋身份和行为早已没有任何负罪感,然而,这些对待无疑给图灵带来巨大的压力,使他不可能有任何空间与任何人建立起他所期望的稳定关系。很快,随着冷战的加深,麦卡锡时代来临,在大西洋的另一边,奥本海默正被审查。同性恋者被视为对敌斗争中的薄弱环节,英美两国都加紧了对接触国家机密的同性恋者的审查和控制。按照图灵传记作者霍奇司的说法,因为图灵接触绝密,而且仍然为英国情报部门做顾问,图灵自然会受到更大压力。 1954年6月7日,图灵吃蘸过氰化钾的苹果自杀。55年以后的2009年,英国首相就图灵的遭遇发表声明公开道歉。 从1966年起,计算机械学会(Association of Computing Machinery)设立了图灵奖,相当于计算机界的诺贝尔奖吧。除了理论计算机科学和人工智能上的奠基性工作,图灵在形态发生学方面的工作,也得到广泛认可。虽然他计算机系统结构的工作,由于ACE计算机问世太晚,其原创性没有充分肯定;不过,近年来,人们又进一步发现图灵在神经网络方面的开创性工作。如果图灵多活些年头,他究竟还会做出什么科学贡献,真的是难以蠡测的。 纵观图灵的一生,基本上是对最深刻的理论问题有良好直觉的应用数学家,具有超凡的删繁就简的洞察:图灵机,谜团密码的破解,形态发生学里的图灵方程式,还有后面将会讲到的图灵测试都体现了这一特点。这个特点,也是他待人处事的特点。然而,这在社会上恐怕是难以行得同的。所以,尽管在中学时期,他可以有足够的空间与资源,专心于学习;在剑桥大学期间,可以在国王学院宽松的环境里自由探索和发展;在战时,可以在特殊情况下,取得发挥很大作用的空间,甚至可以直接写信给丘吉尔,绕过官僚体系来推动事情;随着二战结束,一方面是冷战来临,社会政治走向保守,而另一方面,是图灵那简单真诚到几乎幼稚的自我肯定,撞车就难免了。这样,当日渐衰落的大英帝国的儿子,秘密战线上的二战英雄图灵,简单而真诚地去面对在传统惯性和时代压力下挣扎的帝国时,他很快就为复杂的黑暗给吞噬了。
个人分类: 电脑人心|7242 次阅读|1 个评论
电脑人心 之 引言(十)答案随风
luocun 2010-8-2 08:52
上回说到,这个系列的计划就是要把AI历史上关于电脑人心可能性的各种正反辩论重温一把。其间,我会自任电脑们的粉丝律师,冷眼旁观这些辩论,审视它们的来龙去脉,加以有理有据有情的批判性反思。最后,基于这些辩论以及对它们的反思和报告,我将代表广大过去、现在、未来的电脑同志们就电脑人心的可能性给出一个负责任的说法。(听起来有点发言人的味道了吧。) 性急的读者或许会嚷嚷:嘿,那答案是什么?你直说呀!我请Bob Dylan帮我回答如何:The answer my friend is blowin in the wind, the answer is blowin in the wind. 如果这不够清楚的话,那等到这个系列结束的时候──如果它有结束的那么一天的话,一切就都会清楚的。 正经一点呢,我的意思是说,这个电脑人心可能性的问题没有先验的答案,没有从一般原则出发的答案:不存在关于电脑和人心的一般性原则,从它们出发,我们就可以明确地知道电脑人心是否可能。或者说,电脑人心的可能性,不可能以下面的形式来判定:人心是A,电脑是B,A和B的关系是如此如此,因此电脑人心的可能性就是这样这样。 所以说,所有前面提到的和后面将要详细讨论的原则性争论,其设问也好,其结论也好,都不足以从原则上给出个答案来。哪怕所有的辩论都挺有意思;哪怕所有的辩论都有或多或少的理论上、原则上的重要性。 如果我们以为电脑有什么本质,使得人心水平的人工智能可能或者不可能,那我们就都错了。 这当然是个否定性的答案:就是说电脑人心即使可能,其可能性也不是植根于任何已知或者尚待发现的电脑的一般特性的。然而,这个答案也有其肯定性:就是说,没有任何电脑的特性会阻止我们理解和造出电脑人心。电脑没有本质,所以,没有什么它的属性会妨碍人工智能取得成功。电脑没有本质,所以,也没有什么它的属性能够保证人工智能将会取得成功。 如果要完全正面地讲的话,电脑人心可不可能,这个问题以及它的答案,都是历史性的。因为,电脑或者说计算机,不是一个抽象的类别,而是一种历史性的存在。没有可以划定的边界可以把所有过去、现在、未来的电脑们框在里面,把所有非电脑们排斥在外面;也没有任何本质可以将电脑和别的东西区别开来。所以,我们不知道在制造和理解电脑人心的征途上,我们将会有什么武器和工具可用。但有一点可以肯定的,我们将会有层出不穷的新工具、新武器可以用。从人工智能和计算机并肩发展的这60多年里面,我想这一点应该表现得很清楚了。 所以说,人工智能的可能性是历史的可能性。电脑人心可不可能,不是在于电脑是不是什么,而是在于我们将如何来制造、运用和理解电脑,以及如何理解人心。这是一个我们如何去做的问题。 就计算机和人工智能的历史发展而言,具体到我们的时代,按照Brian Cantwell Smith的说法,我们正生活在指号炼金术(semiotic alchemy)的时代。信息时代的牛顿还没有诞生。(别忘了,牛顿,这位近代科学的奠基人,也是最后一代炼金术士之一。)我们恐怕最多也就是身处像伽利略那样摸索的时期。 不相信?请想想有多少流行理论把比特串误认作信息内容本身,就好像一条还没休息啊?的短信,其内容真的只有不到100位似的。想一想,这像不像把质量(东西的多少)误解成重量(东西在引力场里面的份量)? 还不相信,再举个例子:我们机器里都有各式各样的很多文件吧。今天,如何组织这些文件真是个头疼的问题。我们似乎面对两个选择,或者用子目录(文件夹)的方式,或者按照内容或文件名进行搜索;而我们又往往觉得两者都不够好:前者太僵硬,假设文件只能有一种分类方式;后者太冒险:那个文件肯定在机器上什么地方。可是我用这个词怎么找它不着呢? 后代会笑话我们的:嗨,这么简单的问题都搞不清楚,真像当年笛卡尔、莱布尼茨他们动量和动能拎不清啊。是啊,我也觉得这样的问题应该有个很清楚明白的答案,可我们确实还没有啊。生得早了点啊。 从伽利略研究自由落体到人类登上月球,大概是三四百年时间。今天的AI(包括Boston Dynamics的机器驴子之类的东西),我觉得恐怕应该算是伽利略、笛卡尔时代的钟表水平吧。恐怕再来个三五个甲子,两百到三百年,电脑人心造出来是有可能的。 可是,光是造出来,其实不是最难的。更高的要求是,这得是基于理解基础上的制造。 千万不要以为,什么东西我们如果能制造就能理解。人们已经世世代代地造人了:一朝欢乐,十月怀胎,经年抚养。然而,又有多少人懂得生儿育女的生理机制和长大成人的社会、文化、心理过程呢?自己往往并不懂得自己的制造,这一点也许不一定需要龙应台女士来点醒吧。编过很复杂程序的朋友们,或许也会深有同感吧。而这往往还只是思维、行为上的理解。更不要说是在伦理上对自己的制造──孩子也好、电脑人心也好──充分负起责任来所需要的那种理解与实践了。 所以,说到底,电脑人心可不可能,如何可能,后果如何,是一个怎么做的问题,是一个我们如何在信息时代书写历史的问题。 和平的可能性是越战期间Dylan们所每天面临的问题(今天也仍然是我们的问题,尤其是我们这些给NATO国家交军火税的人们);电脑人心的可能性是信息时代的我们将会长久面临的问题。两个问题都有它们的时代性。两个问题,归根到底又都是个我们如何思考、如何行动的问题,是我们如何在自己的时代里书写历史、创造未来的的问题,是人心(或许还有电脑人心?)要以什么样的姿态,面对什么样的世界的问题。 所以,答案呢,我的朋友啊,正随风飘荡。
个人分类: 电脑人心|3213 次阅读|0 个评论
电脑人心 之 引言(九)原则争论
luocun 2010-7-29 11:26
上回给了AI一个及格上下的成绩。其实,在AI这60年的身世里面,有过不少远亲近邻自任裁判员、评论员、解说员、批评家的叽叽喳喳。他们要是给分的话,很多人给的分将会高的多,甚至接近满分,因为他们大体上认为电脑人心的基本方面已经有谱了;也有很多人给的分都要低得多,甚至接近于0分。俺也在这里也凑了凑热闹,嗡嗡了一把。 分数差别巨大不是意外,因为六十年来,关于电脑人心可能性可以说一直是众说纷纭,辩论一直就没有停止过。 有说电脑可以做很多很多的事情的,比如将能够跟人进行流畅的对话。图灵同志爸爸就是持这种观点。 还有人认为电脑无所不能,乃至说,世界的本质是计算、是信息处理,电脑人心就更不在话下了。Stephen Wolfram大致持这种观点。 有说电脑不能做很多事情的。比如德雷福斯(Hubert Dreyfus)就觉得电脑不能对付(cope)事情,尤其是打酱油之类的事情。 有说电脑其实根本就不可能理解中文的。比如塞尔(John Searle)就设想即使有台电脑,能够允许我们随意地跟它用中文对话,也不会对中文有任何理解,因为作为电脑,它将只能模拟,而不会有事实上的参与。 有说人能做电脑不能做的事情的。比如卢卡斯(John Lukas)就认为哥德尔不完全性定理的结论意味着存在人可以理解而机器却不可能理解的东西,比如哥德尔句子为真这样的事实。 更有甚者(比如van Gelder)声称,电脑在原则上还不如蒸汽机的,因为蒸汽机和它做事的领域是紧密相连的,而电脑那离散化的符号表示和操纵却把认知的实质给漏掉了。 还有的人论证说,即使电脑能做一切事情人能做的事情,那它也不过是个空壳子,只是行为相似,没人心住在里面,没有感知,不会觉到红是红、绿是绿的感受质(qualia)。 再有就是那些技术奇点论者,认为电脑单靠速度、容量和复杂性,终有一天、甚至几十年之内很快就要超越人类了。 如此等等,不一而足。 那么,货真价实的电脑人心究竟可不可能?今天的小学生会不会有一天要与之共处?即使今天电脑人心的可能性看起来还不是太大,这种可能性会不会随着技术进步而增加呢?还是说从原则上讲就不可能呢? 我写这个系列,就是想要针对这些问题,提供一个论坛,一个讨论场所,以关于人工智能可能性的经典辩论为基础,争取覆盖其间的主要问题。让正方、反方、怀疑方、观望方都能各抒己见,现身说法;力求原汁原味,以便见智见仁。由此争取梳理一些比较关键的东西来,为思考人工智能和认知科学里面的一些基本问题提供一点材料、若干视角。 在开始之前,先有必要说明我的一个偏见。这事关对电脑的态度。 要真正判断电脑人心是否可能,必须充分理解电脑和人心这两个方面。理解人心──这是哲学和心理学的传统地盘。在这里我们大体可以倚仗几千年来东西方的思想积淀,不管是其间的洞察也好,还是迷糊也好,至少通过这些积淀,大家都知道人心的复杂性是很了不得的。所以,我们对于人心的认识,是不太容易被过分简单化的。 然而,对于电脑,简单化的趋向则很容易发生。人们往往会觉得:什么是电脑?什么才算电脑?电脑如何工作?能做什么?带来了什么样的可能性?它不能做什么?有什么样的局限性?电脑在人类历史上究竟正在扮演着什么样的角色?这些问题的答案如果不是已经很清楚,不是不言自明的,也不难寻找。 我的偏见就是:不能假设我们理解电脑了。理解电脑其实涉及很多新问题和老问题的新形态。而在上面这些问题上,我们其实还只是小学生,甚至是学前班的娃娃们。 请注意:千万不要以为既然电脑是人造出来的,我们就一定很理解它们。儿女也是父母造出来的,那父母就因此一定了解儿女吗?因此,为了严防先入之见,以便对得起电脑们的真材实料,俺将会当仁不让,自任为电脑们的代表,冷眼旁观每场讨论。我将会特别注意讨论各方是如何理解、是否真正理解电脑这东东的。 这样说来比较抽象。让我们来考虑在讨论电脑人心的可能性的时候,经常会遇到一种论证模式吧: 人是A 计算机不是A ──────────────── 因此人工智能不可能 具体一点,假如A在这里是连续性,这个论证就是: 人是连续的 计算机是离散的,而非连续的 ───────────────────── 因此人工智能不可能 再比如,假设A是创造性,这个论证就是: 人有创造性 计算机做的一切不过是遵照程序指令而已,没有创造性 ───────────────────────────────────── 因此人工智能不可能 这样的论证虽然表面上简单明了,但实际上是问题多多。首先,这样的论证没有说明A这种属性对于人心是必要的,没有说明为什么如果没有A的话,要想有人心是没门儿的事。所以,A不应该是:有头发。那么,如果A是连续性?这就有个问题要回答:为什么连续性对于人心是必要的呢?类似地,为什么创造性对于人心是必要的呢? 当然,如前面所说,关于人心特点的争议可能相对会少一些。比较成问题的是计算机确实是非A这一论断。不管有多显然,这样的论断其实是非常需要论证的。 比如,计算机是离散的吗?这一点真的是那么显然的吗?恐怕不一定吧。(俺很快会发个博文专门讨论这一点。)而且,即使计算机确实是离散的,离散和连续真的是互相排斥的吗?是离散,就不可能也是连续的吗?还是说离散和连续其实是互相依存的[link]呢。 再比如创造性。为什么遵照程序指令就不会有创造性呢?卡斯帕洛夫不是也说他觉得深蓝有创造性。这又是为什么呢?这里面有没有层次上的区别呢?人难道不遵照指令吗?人至少按规矩行事吧。由此就说明人没有创造性吗?如果在离散与连续的问题上,我们经常把层次混淆。那么在创造性的问题上我们就不会吗? 在这里指出这些问题,是为了表明情况或许比我们有时候想象的要复杂很多,也就要好玩很多。
个人分类: 电脑人心|3583 次阅读|0 个评论
电脑人心 之 引言(八)成绩单
luocun 2010-7-27 23:50
拉拉杂杂说了一堆,年过花甲的AI研究表现水平究竟如何呢?这里,我就自诩旁观者清,权充不踢球的解说员给踢球的运动员打个分吧。 这个分数当然是从电脑人心的角度出发来给的,关心的是AI研究在走向电脑化的人类般心灵上的表现如何,而不是从比如说指纹识别、自动翻译、数据挖掘等实际应用角度出发的。另外,这里给的分数是把进步情况和方向跟实际达到的水平综合起来考虑的,而不光是看实际达到的水平;因为如果以实际造出电脑人心为及格的话,那么AI的分数肯定会大大低于及格线的。 那么,就这六十年的整体情况而言,俺觉得本来大概是个65分左右的水平吧。AI作为一个新的学科领域,及格本来应该是可以的。学科领域发展初期,有各种不切实际的幻想、有弯路、有起落,有迷惘,这些是正常的,也是难免的,而且恐怕是完全必需的成长的烦恼。不然一个新的学科要跻身既有的学院系统而立足恐怕是挺难的。别忘了,AI这娃的爷爷们连个幼儿园也没建起来。还是靠了麦卡锡、西蒙、明斯基等教父叔叔们的闯劲,才在有了一席之地。 然而,可以说AI发展至今,并没有能够确立其基本的研究纲领,还是处在前牛顿、前达尔文的年代。此外,AI学科兴起背后的想象,AI在面向公众和社会的广告,又主要都是在拿人来相比。做出来的展示系统,通常都是用与人相比拟的方式来描述,其间的巨大空白和鸿沟,又由此以各种各样的说辞来多少有些自欺欺人地涂抹和勾销。牛皮吹得天大,摊子铺得不小,科研经费倒是拿了不少,实质性的飞跃不多,牛顿式的奠基性工作,还是有待后生的局面。有鉴于此,扣掉10分。 最后实际得分55分,不及格。 相比于AI的整个历史,目前的进展情况似乎要扎实得多,实实在在地准备轮子、脚和脑瓜的多了,吹大牛皮哄人哄钱哄自己的少了。当然,毕竟时代也不同了,知道电脑,会玩电脑的人也多得多了。 那么,最近15年左右的状况呢,俺觉得大概可以得70分吧,主要是因为在一步一个脚印地前进。但是,反过来看,目前的AI界,比起AI早期来,在胆量和眼界上要差不少。毕竟我们也不应该忘记那些不能不面对的问题,包括电脑人心可不可能,如何可能等等。一个领域要前进,理想、妄想、空想、幻想还是要有才行。不然就变成了永远造轮子和造脚,飞鹰不要想,电脑人心想都不要想。 所以,要想得80分,还得要比目前更多地、更勇敢地直面电脑人心这个层次的问题,才行。而要想得90分,就得要不光是直面电脑人心层次的问题,还要基本上需要把事情搞清楚,需要牛顿他们当年给物理学做的奠基性工作,并在此基础上把电脑人心造出来。 至于要想得100分的话,俺的看法是AI研究不光要理解和造出电脑人心,而且AI研究和开发必须与更广阔的世界相契合,把AI研究与开发对人类、对社会、对世界的责任也担起来。这就不能是像弗兰肯斯坦那样,造个怪物,又造而不教,让它直接就成为了敌人。有点扯远了,就此打住吧。
个人分类: 电脑人心|2765 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 10:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部