第35章 哥德尔
“最早在十七世纪,帕斯卡和莱布尼兹就设计了用来运算加法和乘法的机器,但那时这些机器没有存储器,也就是说还不能编入程序。后面有一个叫做查尔斯巴比奇的人发明了第一部机器‘差分机’,可以用差分法算出许多种类的数学表,随后他又设想出了‘分析机’,设想中它带有存储器和作出计算和判定的部件,这些部件像各种大小不一的齿轮一样啮合在一起。数字打着转在加工装置里来回进出,受控于穿孔卡片中的程序,穿孔卡中的‘0’和‘1’来控制运算操作的顺序,有点类似于电脑里的控制器。”
亚当停顿了一下,“虽然‘分析机’到最后也只是停留在纸上的一个设想,但那时巴比奇已经深深地意识到随着分析机的发明,人类将可以产生机械化的智能。”
“十七世纪,我们真的要从那么久远的历程开始说起吗?”维姬此时也打开了录音笔,在手写板上记录着。
“恐怕是的。这可是一段相当激动人心的历史。”亚当继续说,“到了二十世纪的时候,计算机的时代来临,这些计算机超越了帕斯卡、莱布尼兹和巴比奇最大胆的想象,它把原来彼此独立的三个领域综合在了一起——关于公理化推理的理论、机械计算的研究和智能心理学。但在这时候,科学家们就发现即使在这些可以设想出来性能最好的计算机中,都存在着不可避免的‘局限性’。”
“你能说得浅显一些吗?我想包括我在内的许多大众对于这些科技产品的背后原理实质上知之甚少。”
“我会尽量……实际上,你说的没错。随着人类的科技理论知识的指数级增长,现如今已经不可能出现像亚里士多德和托马斯杨那样的通才。现在知识被精细化划分到不同人群中,不同的人群集中学习某一部分知识,尽管这之中也会存在着一些交叉。所以当一个在某一领域学问渊博的人却对另一领域一窍不通时这并不令人感到奇怪。”
“咳咳,说回我们的话题。”注意到维姬提示的眼神后,亚当重新回到主题上,“我们现在所熟知的计算机的基本组成由‘存储器’、‘中央处理器’以及一些‘输入输出设备’组成。存储器把数据通过二进制的形式记录——具有两个不同稳定状态元件的开关、电压的高低、纸带上的‘有孔’和‘无孔’、电路中的通路和断路,磁性材料的南极和北极等等都是这种二元属性。”
“有了数据,如何让这些数据‘运作’起来?这就需要处理器工作,存储器里除了存有等待被处理的数据,还有固定的执行程序,CPU就通过指针从存储器中取出各类程序和对应的数据开始执行对数据的运算,这种早期的程序设计被称为机器语言,但没过多久人们就厌烦了这种无聊、繁杂、落后的编译语言,于是出现了汇编语言。”
“汇编语言和机器语言之间差别并不大,事实上,汇编语言只是把人的语言和机器语言的指令实现了对应,通过把各个机器语言的指令‘组块化‘,更容易被人所读懂。但这还不是汇编语言对我们来说的最重要意义,而是——程序完全可以在不同的层次上编制!人们可以用机器语言写一个‘翻译程序’,通过人类更倾向的字母和十进制来编写,然后‘翻译’给机器来执行。”
“OK,然后呢?”
“这之后,人们在编写过程中又认识到了一些有特点的结构往往反复出现在各种程序中。这种‘套路’被称为‘算法’,算法似乎有某些高层次的成分,用它们来描述操作过程,比用局限性很大的机器语言或汇编语言要容易得多。一个算法的高层成分不只包含一两条机器语言指令,而是包含整整一组,并且这些算法程序中还存在着更多的组块——子程序。这种新的‘算法语言’不再有一组固定的指令,而是使程序员能构造自己的模块,每个模块都有自己的名字,而且可调出使用在程序内的任何地方。”
“在这个层级上更进一步出现了操作系统,使得使用者避免了直接和低层级的机器语言打交道,摆脱了读入程序、调用翻译程序、运行翻译后的程序等等繁琐的事情。所以这也导致出现了上面说过的领域隔绝现象,当一个人使用着操作系统工作时,他其实并不需要知道计算机的最底层是怎么运作的。在这个时候,发生了有趣的事情,处于越高层级编译语言的使用者更倾向于相信计算机的智能性,惊叹于它所能完成的事情,人们不禁开始发问:计算机是过于灵活还是过于刻板?”
“这个问题的答案是?”维姬问。
“很遗憾,答案是后者。让人类能尽可能自然地和计算机进行通讯,这一直是促使人们提高语言层级的目标,但人们很快就发现了计算机的局限性——计算机只能做你告诉它去做的事。”
维姬眨了眨眼睛,“这么一说好像确实,但……似乎也过于理所当然。你能举些例子吗?”
“对计算机来说最为棘手的存在就是悖论,你知道吗,大战前曾经有人工智能战胜了最好的人类棋手,而且在当时所谓的可以对话的人工智能助手也是层出不穷,类似iris这样的人工智能助手可以通过语音执行使用者的命令,或是进行一些简单对话,看上去似乎已经相当智能,但当它们碰到悖论这个难题时,它们都会变得束手无策。更不用说当人工智能下棋时它并不是自己‘有意识地’去下,只是依赖大数据库里的模型对每一步给出最优解,以暴力的、几乎穷尽的方法来战胜棋手。同样的,对话类型的人工智能,也只是通过数据模型从数据库中返回一个适合你问题的或者模棱两可的回答。而持续性的对话,以及人类语言中的常识、归纳、推理、引申、假设和类比等意义对这些系统来说根本无法理解。
