Greenplum:从大数据战略到实现
上QQ阅读APP看书,第一时间看更新

1.5 AI和人

我们在2016年编写和出版《Cloud Foundry:从数字化战略到实现》时,预测了P层云在降低数字化门槛后,数字世界将呈现爆发式的发展。当前,ABC的发展以及各行各业对ABC的拥抱印证了我们的预测,ABC中的人工智能应用在中国又一次火爆。无独有偶,美国电视剧《西部世界》第二季的第一集一经播出就引起热议。一时间,人和人工智能这个话题又重新被辩论。为此,在本书中,我们有必要对此进行深入探讨,希望为读者打开一个认识这个世界的新窗口。另外,作为一个顶级研究机构,这些考量也是必须的,因为我们要确保自己的研究工作能够创造一个更好的未来而非相反。

1.5.1 经验与逻辑

在讨论人和人工智能的关系及其差别之前,我们先看看人类知识的构成。作者并没有哲学专业背景,这里介绍的概念不一定能和哲学概念一一对应,具有哲学专业背景的读者可以建立一个对照转换。

作者认为,人的知识由经验和逻辑两个层面构成。第一类知识是逻辑知识,可以通过分析得出新知识。下面是典型的逻辑知识:

1)所有人都会死,苏格拉底是人,所以苏格拉底会死。

2)根据勾股定理,直角三角形的三边关系满足x2+ y2+=z2(其中xy是两条直角边,z是斜边)。如果三角形的两条直角边长度分别是3和4,那么根据勾股定理可以得到z的长度是5。

另一类知识就是经验知识。经验通常是没有经过逻辑推理或者无法通过逻辑推理而根据过去的经验建立起来的知识。下面是两个过去的经验知识:

1)“地球是宇宙的中心”在哥白尼之前一直是人类社会的基本经验知识。

2)“地球是平的”在哥伦布之前一直是大部分人的经验知识。

3)太阳从东边升起,到今天为止还是大部分人的经验知识。

要观察人的知识体系的建立过程,可以观察小孩子的学习过程。如果把一个算盘竖起来给小孩子玩,小孩子可能会把珠子往上拨,然后珠子会掉下去。但是孩子会重复,因为他们不知道珠子总是会往下掉。为什么大人不再重复这个动作?因为学过物理的大人从逻辑上会知道珠子会因重力的作用往下掉,没有学过物理的人根据过去的经验也会知道这样做珠子会往下掉,所以不会做无用功。苹果为何总是从树上掉下来?在牛顿发明万有引力定律之前,这对于所有人来说都是经验知识。在万有引力定律发明以后,对于知晓力学的人则是逻辑知识,对于不知晓力学的人依然是经验知识。

学过物理的读者先不要得意,因为经验和逻辑的关系不是绝对的,而是相对的。逻辑知识到一定层次不能再往下推理的时候,人又会依赖经验(有时候甚至是直觉或情感)。有时候,人懒得推理,也会停留在经验知识层面上。读者也不要笑话“懒得推理”这个行为,因为人类沉淀下来的经验知识实在太多,如果要试图逻辑化所有的经验知识,在人有限的生命里是很难完成的。这就是极端聪明的人在无法逻辑化他们想逻辑化的知识的时候,他们的幽默感会诉诸一些最基本的经验(以表示无奈)。后面在介绍机器(计算机或者人工智能)的时候,我们会看到很多不可计算数,这是有限的人脑和机器在无极限的知识体系面前表现出的一种无奈。

为了解释逻辑和经验的相对性,我们再来回顾一下万有引力定律的建立过程。万有引力定律和牛顿三定律主要是用来解释开普勒观察到的天体运动规律(图1-8所示是用古典力学解释的开普勒观察到的太阳系各大行星的天体运动)。万有引力定律和牛顿三定律本身是基于一系列假设的一个数学模型,有效拟合了开普勒观察到的天体运动。这种处理方法和神经网络模型一样,都是把标注过的数据集合输入模型,调整模型的参数以拟合这些数据集。牛顿三定律和万有引力定律的参数经过拟合以后,物体间的作用力变量(F)和距离变量(r)系数定理的系数在模型中一般被称为参数。关系是-2(也就是平方成反比)。所有学习过物理的人对这个结果不会有太多质疑,但是哲学家们则需要经过逻辑化才能认可这个结果。所以他们会问,为何系数是-2,而不是-1.999999…9(中间间隔足够多的9)或者-2.00000…01(中间间隔足够多的0)?这样的系数一样能够拟合所有可以观察到的数据。当然,牛顿选择-2而不是那两个长数字主要是为了处理方便,或者他相信简单的总是好的(作者没有机会用混有吴语口音的美式英语和牛顿的皇家口音英语隔着时空对话,但“简单是好”是大部分做模型的人的一个情感选择而不是逻辑选择)。当然,牛顿没有心情和这些哲学家费一番口舌,他的回答有点类似于“你们拿去用,一定屡试不爽,有问题再回来找我。”牛顿因此也被认为是工具主义哲学家。事实上,哲学家们对于牛顿万有引力定律在内的古典力学体系的质疑是有一定道理的,因为后来古典力学在描述微观世界的时候不再成立(这时就需要量子力学了)。

图1-8 牛顿力学描述的太阳系天体运动

(来源:https://zh.wikipedia.org/zh-cn/太阳系

如果把古典力学运用到原子核和它的电子,我们无法解释为何电子不掉进原子核,这就意味着古典力学的模型无法对某些数据进行拟合。经过不断的探索,物理学家们建立了量子力学。和古典物理不同,量子力学的模型有很大一部分建立在概率基础上。例如,在量子力学中,人们无法预测电子在原子核外的固定位置,只能预测它出现在某个位置的概率。图1-9描述了氢原子的电子的波动方程。轨道的颜色深浅代表了电子出现的概率。

图1-9 量子力学描述的氢原子波动

(来源:https://en.wikipedia.org/wiki/Quantum_mechanics

综合前面的讨论,万有引力实际上是根据人类在更高层次和更广范围的观察得到的经验总结。苹果下落对于没有学过物理的人而言是经验知识,而对于学习过物理的人而言,他们的知识虽然在逻辑上往上走了一层,但最终还是要依赖于一个经验数学模型(这个模型的参数不是通过逻辑推理出来的,而是根据过去数据匹配出来的一个经验值。现在人工智能领域的模型正是这种情况)。

作者具有理学和经济两个学科背景,所以对文科和理科的交叉、融合深有体会,因为当我们的认知达到一定边界的时候所做的模型和假设不得不诉诸于情感(或者直觉),就像牛顿为了简洁选择-2作为模型里面距离的系数,欧几里得的平行公理诉诸于世界是方方正正的情感(后面会详细讨论)。当然,文艺青年也不要总是陷入情感中,因为大部分的感性认知远没有到人类认知的边界,它们很容易逻辑化而上升到另外一个高度的感性认知。(这可能也是一些知名高校会要求理科生必须选修一定数量的文科课程才能毕业,文科生也必须要选修一定数量的理科课程才能毕业的原因。大家熟悉的太极拳和五禽戏也蕴含着这样的道理,前者是一套阴阳平衡逻辑,后者是一套朴素的希望像猛禽一样强健的情感表达。)实际上,作者想说的是,读者可以审视一下自己的知识系统,逻辑和内化它们是非常耗神的,所以大部分知识还处于非常朴素的经验层面。

虽然文/理科学生受到的逻辑和经验的训练可能不太一样,但是AI和人比起来如何呢?从上一节对机器学习的讨论中看到,因为强大的计算能力,机器学习看上去要胜人一筹。例如,在判断贷款申请的风险系数时,AI能够把所有人的所有贷款历史读一遍来调校风险控制模型的参数,从而利用这些经验参数来判断当前一笔申请的风险。任何一个有丰富经验的贷款专员也只能根据自己过去看到过的坏账贷款的模糊图景来判断当前交易的风险。

如果说人算不过AI,那么人在逻辑推理方面是否比AI高出一等呢?我们需要在一个更为广阔的数学和计算机的知识体系框架下讨论这个问题。

1.5.2 公理化的逻辑系统

上一节谈到了人类的经验知识是分层次的。我们总结一下苹果落地的两个层次。第一个层次,因为我们看到苹果总是往下落地,没有往上飞过,所以我们认为苹果是落地的;第二个层次,我们建立牛顿古典力学模型,因为物体受力要朝受力方向加速前进,所以苹果脱离树枝以后,受到地心引力作用要朝地表方向前进。在这个层面,古典力学的很多模型的选择(例如,万有引力和距离平方成反比;再例如,不同参考系下,时间流逝是一样的)也是基于经验的。人类把知识一层层往上逻辑化到认知边界,依赖几个感性的假设便建立了一个认知体系。

很多伟大的科学家则从相反的角度来考虑:能否依赖几个基本的公理假设(感性选择)来建立整套认知体系?从欧几里得到希尔伯特,哲学、数学和物理学科的先贤们分别对几何知识和代数知识进行逻辑化。在这个过程中,人类开始构想,能否让机器从几个公理和规则出发,通过计算推演列出所有人类知识?这一构想直接导致了以图灵机为代表的机器智能的产生。图灵在他的经典论文《论可计算数》中构造了一个机器(后人称为图灵机)来模仿人类数学工作者。学术界普遍认为物理计算机的发明是受到图灵机的启发。冯·诺依曼等人在发明物理计算机后,给原本清贫的数学工作人员创造了高薪的编程岗位。我们在前面谈到,今天的AI技术建立在计算机之上。从理论上讲,AI学科只是图灵机系统的一个模型化算法子集。在这个子集里面讨论AI和人的关系必然是不完整的,所以在讨论AI和人的关系时,我们需要再往上追溯到公理化数学的过程。正是在这个过程中,邱奇、图灵和哥德尔等人对于机器和人的探讨远比今天大众对这个话题的讨论深入。

第一个建立公理化的逻辑系统是欧几里得的《几何原本》。如果追溯到数学的源头,欧几里得是个不得不提的人。他的著作《几何原本》对于人类影响非常深刻,据说《几何原本》在西方的发行量仅次于《圣经》。欧几里得的整个几何体系建立在如下5条公理之上:

1)过相异两点,能作且只能作一直线(直线公理)。

2)线段(有限直线)可以任意地延长。

3)以任一点为圆心、任意长为半径,可作一个圆(圆公理)。

4)凡是直角都相等(角公理)。

5)两直线被第三条直线所截,如果同侧两内角和小于两个直角,则两直线会在该侧相交(平行公理)。

其中,第五条公理可以用另一种方式表述为:在一平面内,过直线外一点,可作且只可作一条直线与此直线平行。

欧几里得平面几何(欧氏几何)的所有定理可以最终追溯到这五个公理,所以这五个公理构成了欧氏几何的边界。作者在开始学习这些公理的时候也难以理解边界这个问题,后来也就放弃追问欧几里得为何如此定义这五个公理。后来我才知道,很多学霸都不喜欢欧几里得的看上去像“主观臆断”定义出来的第五公理。其中,俄罗斯人罗巴切夫斯基(后面简称罗氏)认为第五公理应该可以通过前面四个公理推导出来。为了推导这个公理,罗氏使用了反证法。在反证法中的第一步,他假设“过直线外一点有两条平行线”,然后试图通过这个反证假设来结合前面4条公理推导出逻辑矛盾。如果推导出矛盾,那么假设错误。但是,罗氏基于他的假设并没有推导出任何矛盾,反而推导出一个和欧氏几何完全平行的几何体系—罗氏几何体系,也就是双曲几何。为帮助读者直观地理解罗氏双曲几何,图1-10给出了一个图形,这是一个三角形位于一个双曲抛物面上,另外右下方有两条在欧氏几何中应平行的分流线。

图1-10 罗氏几何中的三角形和平行线

(来源:https://zh.wikipedia.org/wiki/双曲几何

罗氏几何体系完全不同于欧式几何,开创了非欧几何的先河。一方面,这意味着欧几里得的选择并不是随意的,他必须选择第五公理才能建立起欧氏几何体系。另一方面,这也意味着罗氏可能惹上了和哥白尼一样的大麻烦。罗氏理论标志着两个几何世界的出现:一个是欧氏几何描述的方方正正的世界,另外一个是罗氏几何描述的弯弯曲曲的世界。由于颠覆了当时大众广为认知的体系,罗氏的理论因此遭到很多非议,他个人也遭受了很多不公正待遇。这时,罗氏向另外一位学霸、有“数学王子”之称的高斯求助,希望高斯能够公开支持他的理论。高斯虽然提供了很多力所能及的帮助,但是最终没有公开站出来支持多个几何体系的存在。尽管高斯自己也感觉到第五公理的选择不是唯一的,但是他深知公众面对具有颠覆性的新事物时的恐惧。(这里插一句,其实某种程度上今天对于AI的恐惧也只是历史重现。)

罗氏的晚年在不幸中度过,他的理论一直没有公开得到支持。直到1868年,意大利数学家贝尔特拉米发表了一篇著名论文《非欧几何解释的尝试》,证明非欧几何可以在欧几里得空间的曲面(例如拟球曲,pseudosphere)上实现。也就是说,非欧几何命题可以“翻译”成相应的欧氏几何命题,如果欧氏几何没有矛盾,非欧几何也自然没有矛盾。直到这时,长期无人问津的非欧几何才开始获得学术界的普遍关注并被深入研究,罗巴切夫斯基的独创性研究也由此得到学术界的高度评价和一致赞美,他本人则被后人赞誉为“几何学中的哥白尼”。参见https://zh.wikipedia.org/wiki/罗氏几何。

自贝尔特拉米解除了非欧几何的束缚以后,来自德国哥廷根大学的高斯和黎曼对非欧几何进行了大刀阔斧的拓展。黎曼对于欧式几何的第五公理做了另外一个相反的假定:过直线外一点,不能做直线和已知直线不相交。由此产生了非欧几何的另一个分支—椭圆几何。关于高斯和黎曼在非欧几何领域的突破性进展,可以参考陈省身先生1987年发表的演讲《什么是几何学》。参见《陈省身文集》,华东师范大学出版社2002年出版。

总结来说,通过对欧几里得第五公理做出的不同假设,最终衍生出三种逻辑自洽的几何学:罗氏几何、欧式几何和黎曼几何。在三种几何中,垂直于同一线段的两条直线如图1-11所示。

图1-11 三种几何中垂直于同一线段的两条直线的图像

(来源:https://zh.wikipedia.org/wiki/非欧几里得几何#3

到这里,读者可能会问:计算机(人工智能)和几何有何关系?因为非欧几何的公理化体系的讨论,激发了自然数算数体系公理化的类似讨论,从而推动图灵机定义的出现。这里我们还要介绍哥廷根大学的另外一位学霸—希尔伯特。在高斯和黎曼之后,非欧几何在哥廷根大学盛行,影响了不少数学家。哥廷根大学迎来了希尔伯特,希尔伯特提出了公理化几何体系并出版了《几何基础》。整个体系从一组公理出发,层层推导。希尔伯特的公理化方式也标志着数学方式开始转移到现代的公理系统。公理系统可以摆脱现实世界,就像非欧几何的不同第五公理可以创造出不同于生活直觉的几何世界。如果说几何学是探讨几何元素的关系,那么点、直线、平面等可以用桌子、椅子等物体所取代参见《几何学公理化》,https://zh.wikipedia.org/wiki/大卫·希尔伯特。。更为重要的是,在希尔伯特的概念里面,一个从公理系统构造出来的完整的数学系统应该具有以下特性我们这里没有采用严格的数理逻辑语言,部分内容参考Charles Petzold著、杨卫东等译的《图灵的秘密》第3章。

独立性:系统里的各个公理相互独立,任何一个公理都不能从其他公理推导出来。

例如欧几里得的第五公理并不能从其他四个公理推导出来。

一致性:从公理出发,不能推导出两个互相矛盾的定理。假设B是A的反命题,则不能从公理系统中同时推导出A和B成立。

完备性:从公理出发,可以推导出所有真命题。假设B和A是反命题,但是从公理系统不能证明A或者B,那么系统是不完备的。因为A和它的反命题都可能是正确的,不完备的系统像知识世界存在黑洞一样,让人不安。

可判定性:即给定一个数学命题,是否可以从公理出发,通过有限计算步骤来判定这个命题的可证明性。这个可以列举的计算步骤就是现在所说的算法(Algorithm)。

完备性和可判定性可能会让人混淆。如果一个系统是不完备的,那么存在命题不可被证明。可判断性则探讨是否能找到一个步骤,计算出一个命题能否被证明。

希尔伯特的伟大之处在于使公理化系统的思考方法影响到代数体系。在1900年8月举行的国际数学家大会上,希尔伯特将可判定性问题列为当时数学面临的23个问题中的第10位。这个问题被描述为:“是否可以推导出一个过程(算法),通过有限步骤判定不定方程(也叫丢番图方程)是否存在有整数解的命题?”希尔伯特的座右铭是“我们必须知道,我们必将知道。”因此,在他眼里,无论不定方程是否有解,都应该存在一个判定过程来判定它是否可以被证明。例如,费马方程xn+ yn=zn作为一种特定形式的不定方程,在数学家们试图证明命题“费马方程在自然数n> 2的情况下不存在整数解”之前,希望有个判定过程(算法)来判定它是否可以被证明。

事实上,费马定理的证明花费了数学家300年的努力,幸运的是它是可证明的。从费马定理证明史这个例子可以看到,代数命题通用判定过程(算法)的意义重大。要讨论通用的可判定性,首先需要清晰地定义什么是算法。为此,邱奇和图灵分别提出了不同构造和定义。图灵构造了图灵机,算法就定义在图灵机的操作之上。下一节将讨论图灵构造图灵机的过程,但是很遗憾,图灵也证明了基于自然数算术的公理化体系的通用判断过程并不存在。

1.5.3 图灵机和可计算数

图灵的论文《可计算数及其在可判定性问题上的应用》(《On Computable Numbers, with an Application to the Entscheidungsproblem》)发表于1936年,在这篇论文中,他构造了一个图灵机来计算可计算数,证明希尔伯特提出的通用可判定性方法不存在。

图灵机的具体构造可以参考图灵的论文,这篇论文阅读起来非常晦涩。但如果要理解他的构思或者灵感,那么阅读他的论文是最直接的方式。图灵不是我们同时代的人,要推测图灵的构造灵感非常困难,但是读者可以像作者这样通过阅读到的文字和听到的故事去隔空对话这位伟人,推敲他的灵感来源。电影《模仿游戏》详细地介绍了他的生平,据历史学家估计,图灵因为破解德国的恩尼格玛密码机(Enigma Machine)而拯救了1400万英国人。在破解恩尼格玛密码机的时候,图灵沉浸在密码学之中。密码学就是将一组数字按照某种规则让机器变成另外一组数字。接收方可以根据一个反向规则让机器将其变成原文。举个简单的例子,10多年前为了让我的信件不被家长偷看,我曾构造过一个简单的加密方法:把所有的英文字符换成英文字符表的下一个字符,接收者把每个英文字符换成字符表的前一个字符即可以重构原文。举一个更加复杂的例子,计算机科学一般用两位数字01,02, …26来表示英文字母A, B, …Z,用00表示空格。这样,一个关于聚会的时间和地点的文字消息就可以转化为一串数字。接收者收到这串数字后,把每两位数字转换成对应的字母,就可以还原出文字消息了。把一个句子通过一个机器逻辑映射成一个数字非常有意思,例如ICU可以映射成090321。图灵在破解恩尼格玛密码机的时候可能深谙其中的乐趣。

《Cloud Foundry:从数字化战略到实现》一书的第1章曾回顾香农信息论为代表的数字世界的崛起。我们谈到了冯·诺伊曼为何建议香农在他的信息论中采用物理学中熵的概念,但是我们并没有仔细讨论后面的哲学,这里可以再继续深入讨论一下。物理学家和数学家都隐隐约约感觉到物质和能量背后存在的信息(数字)世界,那么我们能否用数字世界来描述物理世界?香农和奈奎斯特独创了信息论。在他们两位开天辟地的工作成果下,我们可以通过一个机器把图像、音频编码成一组数字。于是,我们今天可以用二进制编辑器打开任何一台计算机上的图片或者音频,其实它们只是一串0和1编码。这些0和1的字符串对应了一个数的二进制表示,所以它还是一个数。图灵在从事密码破译工作的时候,有机会去美国的贝尔实验室协调英美两国的合作。他在贝尔实验室遇到了两位大师(可见人生结交高质量的朋友多么重要)。作者猜测图灵从两位大师制作的编解码机器中大受启发,将他对世界万物都是数的信念往前推进了一步作者猜测这是图灵做的最大胆的一步外推,当然无从考证。:如果说人的五官能够感受到的世间万物都可以用机器转换成数字来表示,那么人的思考过程是否也能用机器转换成数字来表示?为帮助读者理解图灵的这个构思,可以用iPhone手机上的Siri语音助手来类比。Siri是一个能思考和分析的程序,如果你用一个二进制编辑器打开它,它也是一个用二进制0和1表示的数。但是Siri对应成iPhone这个机器(本质上就是一个图灵机)上的一个数字后,在机器上的运作就能起到人工智能的效果。通过这个例子,读者也可以看到数字化是人类前进的一个新方向,相比人类在工程和物理领域的几千年的研究,数字世界的探讨从图灵等人在20世纪40年代开辟这个话题算起,到今天才经历了几十年。

图灵的论文详细介绍了图灵机的构造和定义在图灵机上的可计算数。如果读者觉得论文太难懂,可以参考《图灵的秘密》一书,该书做了非常详细的注解。图灵用极其简单的抽象机器来模拟一个数学工作者。一个数学工作者脑子里面有个思考状态(上下文),他在纸上扫描到下一个字符的时候脑子里会产生一个状态,然后可能在纸上移动位置写下一个符号,不断重复这个过程。图灵机的构造就是这么简单,图1-12就是图灵机的一个大致描述。

图1-12 图灵机的大致表示

(来源:https://zh.wikipedia.org/wiki/图灵机

图灵机在无限长的纸带上移动,每次移动读取一个符号(数字用二进制表示),然后图灵机的内部状态进行改变,并决定图灵机下一个移动的位置。图灵在论文中给出的一个例子是打印一个分数1/3。这个图灵机很简单:打印1个0往右移动一格,然后再往后移动一格,留出一个空格做可能的符号标记,然后再打印一个1并往右移动一格,之后,图灵机再往右移动一格从而留出一个空格作为可能的符号标记。之后以此类推。以上过程可以用表1-1所示的状态切换表来表示。

表1-1 可计数1/3的图灵机表示

写过程序的读者会发现,这有非常经典的汇编程序的味道。机器打印出来的纸带如图1-13所示(早期的软件工程师应该有使用穿孔纸带的经历)。

图1-13 可计算数1/3的图灵机纸带

把这个纸带标记为小数点后的二进制数字(0.010101…),读者可以用级数求和,其结果等价于1/3。读者可能有两个疑问:1)二进制表示对数字计算机的产生有极大帮助,那么图灵是如何突发奇想地想到用二进制来表示图灵机?2)图灵为何只讨论0到1之间的实数?这两个问题的确非常重要,因为这涉及我们对人和机器之间的互补和竞争关系的讨论:机器到底是否会取代人?我们在下一节中再展开讨论,这里暂时聚焦在图灵机上。

这个图灵机只做一件事情,就是表示一个可计算数1/3。为了达到举一反三的目的,我们可以把表1-1中的b和k的顺序更换一下,从而创造另外一个计算2/3的图灵机。表格如表1-2所示。

表1-2 可计数2/3的图灵机表示

它的纸带如图1-14所示,其中1和0的顺序与数1/3纸带中1和0的顺序正好相反。

图1-14 可计算数2/3的图灵机纸带

我们现在了解了图灵机的定义和运行机制,能够用图灵机计算的数叫作可计算数。目前,得到了两个表格表示的不同图灵机,分别用来计算可计算数1/3和2/3。写过程序的人可以把这两个表当作两个程序,以方便理解后面的内容。如果图灵只是用假想的机器来编码可计算数,那与香农和奈奎斯特的成果没有任何可比性,因为两位大师已经用机器把图像、声音等信号用机器编码成数字。但是图灵往前走了一步,他不仅把数字编码成特定的图灵机,还把特定的图灵机编码成通用的图灵机通用图灵机的介绍可以参考图灵的论文《On Computable Number》。。读者可简单地理解为图灵创造了一个通用的机器,在这个机器里面,上面的两个图灵机(可以简单理解成上面的表1-1和表1-2)也可以编码成两个可计算数(程序),这意味着(理论上)通用计算机的诞生。对于数学领域的人而言,世界上已经存在计算机了。把表1-1表示的计算1/3的程序和表1-2表示的计算2/3的程序输入到这个通用计算机,就会输出对应的纸带:图1-13和图1-14。香农和奈奎斯特的编解码机器也可以在这台通用图灵机上运行。用今天的事物来类比,就是把微信程序、地图程序、Siri程序输入到iPhone这个通用计算机上执行。普遍被认为具有人工智能的Siri,从这个意义上说只是图灵机上的一个可计算数而已。对图灵的这个通用计算机的构造有兴趣的读者可以阅读他的论文或者有注解的《图灵的秘密》一书。

提出通用计算机以后,图灵就开始为他假想出来的计算机编写程序。图灵当然也关心如何在物理世界创造出一台物理计算机,但是这需要获得大量物理世界的资源、聚集团队和持续执行才能实现。最终,冯·诺依曼实现了这个目标,但作者不认为第一台可存储程序计算机是冯·诺依曼一个人创造的,而应该是他和他的团队一起创造出来的。

数字是数,信号是数,程序也是数,世界万物都是数。自从第一台假想计算机和第一台物理计算机诞生以后,再加上香农和奈奎斯特把物理世界的信号编码成数字,数字技术开始蓬勃发展,进入了《Cloud Foundry:从数字化战略到实现》一书所谈到的大型机、PC机和云计算机时代。一批数学、物理工作者后来转变成为能编写程序的软件开发人员。从计算机发明到现在短短六七十年,开发人员编写出各种各样的程序,不少程序带有人工智能或机器学习的数学模型,涉及虚拟现实、无人驾驶、人脸识别、语音助理等领域。由于程序功能越来越强大,人们开始担心:“人工智能程序会不会全面取代人类?”

1.5.4 认知边界上的考量

人工智能是否会取代人类这个问题,实际上涉及对于认知的无穷边界的考量:图灵机能表达的带有人工智能模型的可计算数(程序)无穷大,人的思考过程也无穷大,哪个无穷大更大?面对这个问题,大部分人会困惑“两个无穷大的数还能区分大小?”所以,这里有必要重新理解一下数。数有两个让人最头疼的问题:无穷问题和无理问题。据说知名的数学家、集合论的创始人康托尔(Cantor)就因为沉溺于数的无穷问题而得了躁狂型抑郁症。作者无意将这种痛苦带给读者,但是对于思考AI是否要取代人的读者,这个是绕不过去的坎。

自然数集、有理数集合和无理数集合在有限情况下非常容易理解,但是在无限的情况下很多属性会发生变化。我们看下面两个集合(N为自然数):

❏自然数集合A{1,2,3,4, ...,2N}

❏偶数集合B{2,4, , ...,2N}

在N是个有限的数的情况下,集合A的元素的元素数(叫作基)是集合B的基的两倍。但是,当N无穷大的时候,两个集合的势(无限集合的基)就相等了。为什么呢?从偶数集中拿出一个2,从自然数集合中拿出1,再从偶数集中拿出4,从自然数集中拿出2,如此进行下去,可以用无穷自然数集1对1数的无穷集合叫作“可数”。一个无穷集合如果是可数的,那么就说它们的基和自然数集A相等。读者可以尝试证明一下无穷有理数集合也是可数的,只要把集合元素顺序的写法写得可数。具体做法就是把分子分母之和等于1,2,3,4的自然数一一列举如下:

有理数集合C{1/1,1/2,2/1,1/3,2/2,3/1…}

读者可能兴致勃勃地把这个可数的数的证明推广到实数集,但是康托尔用对角论证法证明了实数集合是不可数的。康托尔的证明激发了图灵只讨论[0,1]区间的二进制形式的数,而使用二进制对实际计算机的发明产生极大的帮助。这里简单介绍一下这个证明方法,具体证明方法可以参考维基百科完整证明方法参考https://zh.wikipedia.org/zh-cn/对角论证法。。假设我们数完了所有的[0,1]之间的实数r1, r2,举个象征性的排列例子如下(来自维基百科):

r1=0.5105110…

r2=0.4132043…

r3=0.8245026…

r4=0.2330126…

r5=0.4107246…

r6=0.9937838…

r7=0.0105135

我们现在把所有无理数数完了。我们创造一个新的超越数无理数分为代数无理数和超越数。超越数的代表是e和π。,它的第k位取自上面数字rk的小数点后的第k个位并加1,如果遇到9变成0,所以这个新数就是0.6251346...它和上述的数都不一样,所以它不在这个可数数列表中,可得出实数集是不可数的结论。这个证明带来另外一个非常有意思的结论:同样是无穷,实数集合的无穷要比自然数集合的无穷更大。如果把自然数集合的势记为aleph-0(康托尔把它叫作超限数并用俄文字母标记为א0),因为康托尔想计算实数集的势,于是他引入了[0,1]区间的二进制形式的数和集合论。他尝试用小数点后无限位二进制数的0和1的交替的记法去对应实数里面的元素。为帮助读者理解,列举几个数如下:

如果我们把1当作✓一样的标记,学过子集的读者肯定觉得这个标记和列举含3个元素{0,1,2}集合的所有子集的记法很相似:

将这个二进制小数列表无穷列举下去,那么对应的子集表也可以无穷列举下去注意这是无穷环境,这个例子形式只能帮助进行逻辑上的推理而不是准确的表述形式。。这些二进制形式的小数对应所有[0,1]区间的实数如果考虑整体实数,负数可以通过绝对值对应到正数,大于1的正数可以通过倒数对应到[0,1]。,而表格第五列中子集的列表也等同于无穷自然集的子集。因为一个含有N个元素(基为N)的集合的子集数目为2N,无穷自然数子集的数目就是2aleph0,这个数也就是实数集合的势。康托尔猜测2aleph0就是下一个超限数aleph1(א1),中间不存在其他超限数,也叫连续统假设(这是希尔伯特提出的23个问题中的第一个问题由于不完备性的影响,已经在数学上证实了该假设不能被证明为真或假。)。

因为康托尔的工作,我们知道了实数集与可数数集同样是无穷大,但是实数集更大。图灵发明了图灵机和定义在其上的可计算数,所以图灵自然要考虑:“可计算数对应了可数数还是整个实数集?”遗憾的是,图灵证明了可计算数虽然包含无理数中的代数数(例如2这样的代数方程的解)和部分超越数(例如πe),但它是可数的。可数数的势aleph0(א0)远小于实数集合的势aleph1=2 aleph0。而世间万物都是数,且大部分数都是实数,实数中的大部分超越数都无法用图灵机表示。这意味着什么?第一个选择是我们拒绝承认不可计算的实数的存在,这就等同于我们构造了不存在的数;第二个选择是我们承认它们的存在,图灵机无法表达一个随机生成的无理数。那么人脑是否有个思考过程能对应一个无限、无理的数?图灵和邱奇恰恰认为人脑不能完成这个工作,这就是他们提出的邱奇-图灵论题。这个论题可以简单地表述为:“凡是人类能够执行的算法,图灵机也可以。”参见https://zh.wikipedia.org/wiki/邱奇-图灵论题。用其等价的逆反命题来说是:“如果算法过程是图灵机不能解的,人类也不能解。”到这里,读者可以清晰地知道,这个是论题,它并不能被证明。人工智能是否能够取代人,本质上也依赖于这个论题是否正确。在作者眼里,这个论题就像几何的五个公理或者物理学里面的能量守恒定律一样,是我们公理化的认知边界。

到这里,读者已经看到图灵机上能表达的可计算数是无穷的,但是有个更大的实数无穷是图灵机无法表达的。这两个极限的差别表现出图灵机的解决问题的范畴是有局限的。举个例子来说,我们不能发明一个程序检查另外一个程序的错误用学术语言来表述,就是不能发明一个程序检查一个程序的停机问题。。一个错误的程序会使图灵机进入失控状态,计算过程会进入到一个表格里面不存在的状态(m-config)。回到希尔伯特可判定性的讨论,图灵试图构造一个图灵机,从希尔伯特的《数学原理》中的几个公理和规则出发,让图灵机列举出所有可证明的公式。但是,图灵证明了这样的图灵机不存在。根据邱奇-图灵论题,人类数学工作者也找不到一个思考过程判断一个公式的可证明性。

图灵接下来讨论了一系列人和机器智能的问题。在1950年的Mind杂志上,图灵就人工智能这个话题发表了另外一篇论文“Computing Machinery and Intelligence”参见https://en.wikipedia.org/wiki/Computing_Machinery_and_Intelligence。。在这篇论文中,他提出了“机器能够思考吗?”这个问题。他认为思考和机器(读者可以认为AI)的定义过于模糊,为此给出了知名的图灵测试来回答这个问题。在图灵测试中,被测试者(人)在一个黑暗的屋子里面与一台机器或一个人进行对话(那个年代采用文本方式,现在则可以升级到语音方式),若被测试者无法区分对话的是人还是机器,则可以称机器通过了图灵测试。这也是电影《机械姬》的故事情节的基础电影《机械姬》认为即使被测试者发现对方是机器也无法阻止个人的情感。

我们如何看待邱奇-图灵论题决定了我们怎么看待人和AI之间的关系。为帮助读者理解邱奇-图灵论题,作者尝试用通俗易懂的语言来表述。图灵机在某个状态下观察一个符号,然后切换到下一个状态,这个行为和我们人类数学工作者几乎一样。差别在于,邱奇和图灵认为机器的状态是有限的,类似于我们构建的表1-1的行状态是有限的注意,这里说的是行数,就好像程序的指令数。指令可以跳转产生循环,但是指令的数目是有限的。。图灵认为,如果人脑有无限的状态,必然因为有些状态无限接近而造成混乱。但是作者认为“人的思想可以支持一个无穷状态”,因为我们对人的意识理解得并不清楚,证明数学不完备性的数学家哥德尔也表示了类似的观点参见Oron Shagrir, Gödel on Turing on Computability。。但是,机器智能或者人工智能的产生,极大地解放了人类在可计算数范围内求解问题的速度。机器智能的诞生似乎加速了人类对于数字世界中未知领域的探索。只是,我们对于新生事物的直觉反应总是恐惧,对机器智能的兴起也有类似的反应。图灵认为人类在上个世纪末不再会抵触和反对机器思考。但是到了今天,我们还是因为不了解或无法掌控机器智能而感到恐惧或不安,过度的恐惧和不安又有可能限制我们充分利用机器智能的长处,进而错过对于机器智能以外的世界的探索。

我们今天感受到的数字世界,存在一定的公理和论题上的边界。在这个边界里面也有黑洞,原因是不完备性;我们没有一条快速路径来鉴别黑洞,是因为不可判定性。但是,如果你和作者一样认为人的意识格局相比图灵机具有无限性,那么应该持续地去拓展这个边界。在拓展或者重构这个边界的时候,有些黑洞或许会消失,或许可以找到一条路径鉴别黑洞。就像希尔伯特说的:“我们必须知道;我们必将知道。”