深度 | 人工智能究竟能否实现?

作者 | 李理,环信人工智能研发中心vp,十多年自然语言处理和人工智能研发经验。主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设计与研发。

编辑 | suiling 

 

本文讨论人工智能是否可以实现这个哲学问题。本文是《深度学习理论与实战:提高篇》的一章。

更多内容请查看:http://fancyerii.github.io/tags/

 

目录

  • 作者观点摘要

  • 证明存在?

  • 任务分类

  • 情绪(Emotions)和情感(Feelings)

  • 美和艺术

  • 意识(Consciousness)

  • 自我意识

  • 自由意志(free will)

  • 计算的局限

  • 量子力学

  • 生命和记忆

  • 语言、分工与合作

  • 无限和连续

  • 混沌现象

  • 主观和客观

  • 幸福感、Reward和虚拟世界

  • 常识

  • 智能和生命

 

作者观点摘要

 

因为文章太长,估计读者很难有耐心读完全文,因此这里先简要的摘录作者的主要观点。

 

  • 人工智能可以实现

  • 意识不过是类似于DQN里的Replay Buffer,并无特殊之处

  • 自由意志并不存在

  • 计算(图灵机)有限制,但是人类并没有超越图灵机的计算能力

  • 量子力学并不能证明自由意志的存在

  • 人类通过语言虚构了很多并不存在的概念,我们都生活这些概念中

  • 物理世界是离散和有限的,连续和无限只是人类的想象和数学工具

  • 并不存在完全客观的世界,一切都是主观的,一切唯心造

  • 幸福感和物质水平提高并没有绝对的关系

  • 研究基础的行动能力(Robotics)比研究高层的语义更有意义,因为常识来源于此

  • 生命是什么?生命是一个美好的巧合,是宇宙在奔向熵最大的死寂过程中,为自己创造的观众。

 

证明存在?

 

要”证明”人工智能最直接的办法就是”实现”它,也就是制造出”像”人一样”智能”的机器。这和图灵测试的想法类似,图灵测试是实现一个智能机器,它和真人通过网络来进行自然语言对话,如果真人通过对话区分不了这是机器还是真人,那么机器就通过了图灵测试,就认为机器”实现”了人工智能。语言对话中虽然包括常识、推理甚至情感等很多人认为只有人才拥有的能力,但是人类的智能不仅仅局限于语言,所以只通过自然语言交互来判断机器是否实现了智能是有争议的。不过(复杂的)语言沟通确实是人类区别与其它动物的很重要特征,我们后面也会讨论语言和智能的关系。

 

这就是人工智能从业者的终极目标,但是在今天,这个目标还是无法达到的。我们可以朝着这个方向努力,不停的制造更加智能的机器。但是会不会这个目标是永远无法实现的呢?就像以前(甚至现在和未来)有人试图制造永动机,但是从物理学的角度来看这是不可能实现的。人工智能会不会也是无法实现的目标呢?因此提前思考这个问题是很有必要的。

 

怎么证明一个东西的存在呢?我们显然无法像证明数学定理一样证明。所以作者这里采用的方法类似于穷举法——驳斥所有否定的观点。这显然无法穷举,就和归纳法一样,我们无法”证明”太阳从东边升起一样,我们只是通过人类上千年的观察归纳出来的结论。永远会有人认为太阳明天可能从西边升起,我们能做的就是驳斥这个观点,证明(或者观察实证)太阳明天确实是从东方升起的。在这个过程中我们的信心会得到强化,但是保不齐哪天地球被某个流星碰撞使得公转方向发生变化了呢?我们只能通过物理知识论证这种可能性是非常微乎其微的,但是也无法用一个数学公式证明它绝对不可能发生。

 

任务分类

 

第一类任务包括无须太多大脑决策的控制,比如行走、控制身体平衡、用手抓握物体等等。用这类任务来质疑人工智能的很少,原因之一就是这类任务很可能已经实现或者接近实现;另外一个原因就是这类任务较少需要大脑的控制,很多任务动物也能完成,因此这是低级的”智能”任务。

 

这类任务大部分都是在人的幼儿阶段学习,对于成年人来说这些任务都已经非常自然了,基本不需要太多的大脑思考,下意识(无意识)就可以完成了。但是要完成这些任务并没有想象中那么简单(而下围棋或者做数学题也许并没有想象中那么复杂),人类在习得这些技巧时需要经历很多次的失败,只不过这些儿童阶段的失败并没有给我们留下太多记忆而已。对于这些任务,诀窍就是熟能生巧,通过反复的尝试,形成肌肉的记忆,在接收到类似的信号时第一时间通过条件反射给出应对措施。对应到机器学习上更多的是使用强化学习,不涉及太多语言沟通。我们在书店买不到《骑自行车教程》,因为这些任务没有太多技巧,我们只需要通过不断的练习来提高我们的平衡能力。

 

因此用这类任务来挑战人工智能的人越来越少,而且他们也很难给出足够的理由说明为什么机器就做不到。某些任务甚至很难说是智能的体现,比如说像人那样直立行走并不见得就是移动自己的最好方式,四条腿跑反而更快。

 

第二类任务主要是感知的处理,人类的感觉器官可以与机器的传感器做对比。人类有视觉、听觉、味觉、嗅觉和触觉五种感觉,其中视觉和听觉接受的信息最为丰富。人类的听觉和动物不同,动物的听觉虽然也有沟通的作用,但是更多的是用于感知环境比如天敌或者猎物的声音。而人类听觉更多的是用于获取来自同类的语言信息,感知自然声音的能力并不强大。猫可以听到老鼠运动时的细微声音,而人类并无此能力。语言是人类创造的用于沟通的工具,它编码了人类世界的大部分知识,因此语言理解是更高层的任务,我们放到后面讨论。

 

本书的很多任务就是让机器来实现一些视觉的处理,比如图像识别等等。机器处理这类任务的能力在深度学习时代取得了长足的进步,虽然离人(甚至动物)还有差距——比如它还需要海量的标注数据,而人类(动物)的视觉能力经过亿万年的进化似乎已经编码在基因里了。但是总体来说,也很少有人认为机器无法实现这类任务了。

 

第三类任务一般需要复杂的计算、推理和规划,比如语言沟通、数学和下棋等等。语言和数学后面会有单独的讨论,而数学里的算术反而是计算机更加擅长的。我们之前也介绍过,对于象棋,更多的是依靠计算速度搜索更深层的未来局面;而围棋则是同时结合局面判断(Value Network)和搜索(MCTS+Policy Network)。之前大家认为计算机很难下好围棋,因为人类下围棋的很多局面判断都很难形式化的定义,比如”棋很厚”等等。但是AlphaGo证明了这些”高深”的词汇不过是人类对类似局面并不完全准确的总结而已,这类似于神经网络自动的特征提取。也许AlphaGo的Value Network和Policy Network里也能发现很多这样的特征,只不过它不能用自然语言描述而已。另外它似乎也没有必要用自然语言描述这些特征,人类用语言来表述它的目的是为了沟通,为了把高手的棋艺传授给其他人。对于机器来说,直接把AlphaGo的模型复制到另外一台机器上就完成了技艺的传授。

 

第四类任务是与情感相关的艺术,比如音乐、绘画、舞蹈等等。这些任务通常会涉及情感和自我意识,而目前的机器没有,因此经常会用来挑战人工智能,下面我们来逐个讨论这些话题。

 

情绪(Emotions)和情感(Feelings)

 

我们先来看情绪,这是更低级的感觉。遇到危险我们会有紧张情绪,而危险过后我们的情绪会变得放松。这对于动物的生存非常重要,紧张使得我们更加集中精力来度过危机,但是持续紧张会对身体造成损伤,因此危险过后需要放松。情绪很像是大脑对某种情形的一种判断,比如我们走在丛林深处,大脑会判断当前情形”我”正在处于危险的状态。大脑在接到这个信号后可能会提高其工作频率,更加谨慎的处理各种感觉的输入,任何风吹草动它都不放过,这样我们更可能提早发现危险。但是这样的状态很费精力,如果在安全的区域我们也这样就是所谓的草木皆兵了。

 

如果情绪只是这样的信号的话,那么机器也很容易实现。所谓的情绪只是对某种场景的反应,而这种反应会输入给大脑,从而改变大脑的运行状态,比如从普通状态转变为危机处理状态。现在的人工智能主要还只是在研究人的某些具体能力,比如识别物体或者下围棋。如果我们要设计一个机器人的话,也是可以借鉴并且加入情绪的(当然情绪似乎也可以通过强化学习自学,人类看到蛇就害怕也是多年进化大家结果)。平时它在”普通模式”,只处理听觉传感器的输入中感兴趣的信息,比如同类的语音。而在”危机模式”下它的大脑(CPU)会处理所有的听觉信号,这当然会比较费电,同时大脑也没有时间思考哲学问题了,但是没办法,现在最重要的是要解决生存问题。当危机消除后就应该恢复到”普通模式”了,否则除了费电,长期超负荷工作也可能把CPU烧坏。对应到人类就是长期的紧张可能造成神经衰弱等疾病。

 

有人也许会说,人类能够意识到自己的情绪,并且把它告诉他人,甚至可以”控制”自己的情绪,这个机器无法做到。关于意识以及沟通(语言)后面我们会讨论。至于”控制”,对于机器来说也不复杂。比如有人看到电视里的蛇也会害怕,但是理智告诉他这是假的,无须害怕。那么机器完全也可以实现类似的”理性”运算。这个例子也能看出,情绪是比较底层的感觉,我们的身体对它的处理类似简单的函数(反射),没有经过复杂的”理性”的思考。

 

情感则是更加高级的感觉,它是长期的情绪积累的结果。比如我们在一个国家久了,对国家有了情感。这些情感的作用更多是社会性的,比如对国家的认同使得不同的个体能够联合起来为国家这个抽象概念而努力奋斗甚至牺牲性命。相爱的异性会组成家庭,共同繁衍后代延续生命。它的作用更多的要从多个智能体的关系来分析,我们这里不会过多考虑这个话题。但是如果设计多个人工智能的个体并且需要它们合作的话,那么我们就要考虑这个问题。在后面的语言部分会稍微讨论群体的问题,这里我们暂时略过。

 

接下来我们再讨论一下智能体是否一定需要情绪或者情感。从前面的讨论我们知道,情绪用于调节身体的工作状态(模式)是有作用的。但是如果不考虑这个作用,对于某个单独的任务来说,情绪是否有作用呢?

 

我们拿下棋为例,人类棋手下棋肯定会有情绪。局势好的时候会放松会高兴;而局势不好的时候会紧张会沮丧。这当然也有前面所说的调节作用——局面好的时候可以稍微放松一点计算可以不那么深远(但是可能会大意失荆州)从而节省体力;而局面不好的时候显然需要投入更多的精力来计算,如果局面坏到一定程度我们甚至直接投降(因为再继续下去除了浪费体力不会有任何好处)。当然AlphaGo也可以用类似的”情绪”来切换模式,但是如果不考虑电力的制约,我们可以让AlphaGo在任何时候都以最大的功率运作。这样看起来情绪似乎是不必要的。

 

但是现实世界总是有制约的,我们的大脑的算力是有限的,但是我们需要做的事情却是无限的,因此我们要用类似”情绪”的东西来调节大脑的运作模式。如果跟一个围棋的初学者对弈,估计Google也不愿意让AlphaGo花费那么多TPU来搜索,它直接用Value Network就可以战胜对手。我们的轻敌其实也是一种策略——降低能耗的方式。这其实很重要,诸葛亮谨小慎微、事必躬亲,但人的精力毕竟有限,这或许是他短寿的原因。如果这是真的话,则他的情绪或者说资源分配策略是有问题的,他的聪明才智应该更多的分配到更关键的决策上,而那些不重要的事情交给别人处理就行了。

 

完美的状态(情绪)切换并不容易,切换好了就是果断、自信或者有自知之明(投降/放弃),切换不好就是疏忽大意、盲目乐观、过度悲观(明明还有机会却缴械投降)。

 

我们甚至在下棋的过程中利用对手的情绪,比如某个局面已经劣势了,我们可能设计一个陷阱。所谓的陷阱一般是”乍一看”我们走了一步坏棋,对手走某步棋很快可以扩大领先优势,如果对手不加思考走了这步棋就可会把优势走成劣势。当然如果对手仔细思考则可以找到另外的走法能保持甚至扩大优势,否则就不是陷阱而是绝对的好棋了。对手对于局势如果过于乐观,切换到”轻敌”模式,那么有可能掉入陷阱。

 

美和艺术

 

“美”是一个物体比如动物、植物、人或者地点的某种属性,这种属性会让看到它的人非常开心或者满足,而与之相反的就是”丑”。我们说情人眼里出西施,美没有一个绝对的标准。但是对于某个特定时期的特定人群,他们还是会有一些标准的。虽然不存在一个美人让所有人都认为她是美的,但是我们(理论上)可以让所有的人对所有其他人的美丑做一个打分,然后做出一个美人排行榜来。如果给定人群,我们是可以定义相对的美丑。注意,这里是定义相对的美丑而不是绝对的,我们很难找出一个绝对第一的美人。因为这个绝对美人必须所有的人都认为她是最美的,而且世界上(甚至包括我们看不见的天堂或者地狱里)也不可能找到一个比她更美的人。

 

这样的话,如果存在足够的训练数据,机器完全是有可能实现美的”欣赏的”——给定一个人,判断她是否美人,当然打分是一个0-1之间连续的得分。既然机器能够欣赏美,那么它也是有可能”创造”美的。比如它是一个发型师,它可以给一个人尝试不同的发型,然后找出打分最高的发型。同时它可能还会总结出一些经验(特征):不同脸型或者肤色应该使用什么样的发型才能更美。现在的美容(整容)非常发达,未来的技术也会更加发达,也许你喜欢什么样的脸都可以整一个出来,这到底是好事还是坏事呢?

 

从更加根本的角度来说,什么叫美呢?我们这里先把范围限定在人的美丑上来,因为这个大家都会有自己的感受。

 

但即使限定到人的美丑上,这也是一个很复杂的问题,因为对于同一个人,随着时间的变化对他的美丑印象也会发生变化。有的人初看起来不怎么,但是了解越多越觉得美;同样有的人初看起来还不错,但相处久了越来越讨厌。另外我们也会有内在美和外在美的说法,内在美会更加复杂,因此我们这里只讨论”肤浅”的外在美,同时我们再把美丑的判定限定在”第一眼”上,也就是第一次见某个人的感受。从异性的角度来说,美丑的作用是什么呢?对于很多动物来说,异性只有在交配的时候才会发生关系,交配前后都形同路人,为了保证后代的竞争力,需要判定异性的”好坏”。动物可没有那么多时间来”谈恋爱”,它们的语言(假设有的话)也只能做非常简单的交流。那怎么办呢?因为生理的差异,雌性的卵子是稀缺的资源(相对于精子而已),更多的自然选择发生在雄性这一方。最常见的竞争方式就是比拼武力,因此在雌性看来强壮的身体一定是美的。除此之外,还有一些雌性选择雄性的时候并不通过”野蛮”的武力决斗。也许是因为武力决斗太过残酷,决斗会导致失败者有丧命的危险,这对于种族来说并不是好事——为了争夺一个雌性导致武力第二的雄性丧命并不合算。因此需要一种不那么血腥残酷但是也能反映雄性武力的方法。许多动物在争夺配偶时会通过比拼声音或者某个器官的大小或颜色,这也是一种可行的解决方法。吼叫声音的大小或者某个器官的颜色能够间接的反映其武力,很多弱者一看对方的”气场”就知难而退了。这样虽然失去了一次交配机会,但是至少保住了性命,留得青山在不怕没柴烧,以后还有机会。对于一些鸟类来说,婉转的啼叫声,漂亮的羽毛也许就是这种进化方式的结果。但是间接的方式也会有问题,这样很可能进化出一些嗓门很大,外表华丽但是内在并不强大的个体。不过自然界会让天敌来惩罚这些”欺诈者”,因为面对危险时,嗓门大和有漂亮羽毛并不管用,逃得快或者眼睛锋利才能提高生存几率。这样就能基本保证嗓门大的确实是生存能力更强的。

 

人类的社会化程度更高,雄性比拼的更多是智力而不是体力。注意,这里的智力不仅仅指智商。智商的重要性大家都能理解,尤其在人类早期,有特殊技能(智力)的人很受欢迎(当然现在也是)。比如火是重要的工具,能”制造”火的燧人氏就成了部落首领,他的部落甚至能够以此”征服”其他的部落。但是随着人群规模的扩大,从一个部落到一个民族再到一个国家,需要共同合作的事情越来越多,人的沟通、配合和管理能力越来越重要,因此情商也越来越重要。动物界的政治雏形也许是这样的:某个雄性可能斗不过现在的首领,但是它有很强的沟通能力,它能说服同伴一起攻击首领。这样来看的话一个族群的个体之间怎么联合就变成很重要的”政治”活动。因此对于女性来说,男性的外貌美变得不是那么重要了(但是仍然非常重要,这可能编码在基因里了),他的智力则就越来越重要了。为了提高后代的生存能力,人类的男性也会参与后代的抚养和教育,因此人类进化出长期稳定的夫妻关系(虽然古代是一夫一妻多妾制度,但也都是比较长期稳定的关系)。这时异性之间的选择更多的是个人以及家庭的政治地位和经济地位,古代所谓门当户对就是这个意思。但是长期以来编码在基因里的喜好”美”的天性并没有消失,男人娶妻要求门当户对这是父母之命媒妁之言,自己没法做主(中国古代是家族社会,男人在娶妻时基本还是很年轻的时候,在家长中地位最尊的是他的父亲或者祖父),但是纳妾就会考虑她的”美丑”了。

 

而女性的选择权就少多了,即使是有权势人家的女儿(比如公主),从道德上来讲都只能有一个丈夫,因此选择就会很困难,既要”郎财/才”又要”郎貌”很难实现。因此在古代经典的组合是”郎才女貌”,但爱美毕竟是天性,因此那些不用考虑长久关系的青楼女子似乎更加看中外貌,所谓”姐儿爱俏”。但总体来讲,古代女性更多的是考虑男人的财力或者智力而不是外貌。和自然界相反,人类的雌性(女性)对于美的进化会更加直接一些,动物都是雄性更美(比如公鸡或者鸟类都是雄性的羽毛色彩斑斓)而人类是女人打扮的花枝招展。

 

从这个角度来考虑美,假设我们设计出智能的个体(比如只要达到动物的智能),然后把它们放到火星去生存进化,那么它们也是有可能进化出美的概念,但是它们的美可能和地球上的动物或者人类完全是不一样的定义。机器和人类相比交换信息更加简单,不需要通过基因的交换就能实现信息的复制,因此它们的”交配”可能更多的是思想上的交换,这更像是人类社会通过言传身教把优良的习惯传递给后代而不是编码到基因里。

 

前面讨论的是比较狭义的人类在外貌上的”美”,但是美是一个很广泛的概念,在下面我们讨论的艺术中,美是一个非常重要的概念。

 

艺术比如文学、音乐、舞蹈、绘画和雕塑等等也是通常被认为机器无法实现的。它们通常是和”创意”、”灵感”以及”天才”之类的词汇联系在一起的,别说普通人,即使是艺术家也是须要努力同时还要碰上苹果砸头上这种机遇下才能”妙手偶得之”,并不是随时随地都能创作出佳作的。实现这些创造除了需要逻辑推理等机器擅长的能力,还需要非理性的”灵感”之类的东西,而机器是没有这类东西的,因此机器无法完成这类任务。

 

根据wiki,艺术是创造视觉、听觉或者表演艺术作品的行为,这些作品用于表达作者的想象、创意或者技巧,目的是为了让其他人欣赏它的美和情感。

 

和所有的词典定义一样,这里也是循环定义的(汉语词典里欢乐定义成快乐,快乐定义成欢乐)。艺术是创造艺术作品的行为,创造出来的艺术作品最终需要其他人来欣赏,根据人类的感觉器官来分主要有两类——视觉和听觉的艺术。而表演艺术是人在表演的时候动态实时的创造出来的,我们不能说某个舞蹈家是一个艺术作品,只有他/她在表演的时候,他/她的身体作为表现艺术的载体,但是最终欣赏的人还是通过视觉来欣赏他/她的表演。

 

和人外貌的美丑一样,艺术作品也是为了人类之间的沟通交流。一个画家做一幅画是为了表达某种情感,否则他就是一个照相机了。最早人类作画的目的可能是为了保留信息,比如在山洞里的壁画,因此需要尽量保持真实。这样的绘画作品没有太多的人类(个人)情感,所有(大部分)人一看就知道他画的是个什么东西。但是随着人类社会的发展,人类有了更多精神上的东西(我们会在意识部分讨论精神层面的东西),比如氏族部落会产生宗教,我们会产生天堂地狱往生来世等物质世界不存在的概念。我们画出来的神仙鬼怪看起来就不能太像真实的事物,这就需要发挥我们的创造力和想象力来表现这些并不存在的事物。因此我们的艺术作品也越来越抽象,这些抽象的艺术作品能唤起我们的联想(有时还需要文化、历史的配合),把我们带到作者想表达的意境中,使得我们能感同身受作者的想法。

 

艺术作品包括形式和内容两部分内容,内容就是艺术家要表达的内容,而形式就是用于表达内容的一些技巧。前面我们在Neural Style里已经看到过了,一幅画作的风格和内容其实是(有可能)分离开来的。人们用签字来确认身份,也就是因为每个人的字迹都是有自己的风格,而跟内容(具体写哪些字)是没有关系的。

 

当然即使是内容,画家画出来的内容和照相机照出来的内容还是有区别的。画家的画作内容是他从他的视角观察世界得到的感受,然后使用画笔和颜色尝试重构出来,每个人的视觉感受系统都有差别,而且很多作品会附加上作者的情感,同时他会忽略掉一些细节。而照相机则不会有这样的处理,当然照相机也可以调焦,现在的很多软件也能增加不同的滤镜效果,这样可以认为是某种简单的”主观”处理吧。

 

一个好的艺术家需要有很强的”感受”美和情感的能力,同样看到一只燕子,刘禹锡想到的却是”旧时王谢堂前燕”,感慨沧海桑田,人生多变。通过想象建立客观物体和主观感受之间的联系,从而表达自己的情感。这里的感受并不需要很强的信号接受能力,画家并不需要千里眼,需要的是观察能力。当然除了感受之外还需要很强的表达能力,这里会有形式和技巧的东西,艺术家须要不断的尝试和学习最终形成最适合自己的艺术风格。

 

这样来分析的话,机器是有可能实现艺术的”创作”的,另外从沟通的角度来说,和上面外貌的美一样,机器群体也是可能进化出艺术创造的的。

 

前面我们介绍过Neural Style的画作的风格迁移,这可以看做是机器的绘画创作。而在听觉领域,音乐也是用于沟通感情的一种方式,机器来进行某种程度的音乐”创作”也是有可能的。由于篇幅限制,我们之前并没有介绍相关的研究工作,有兴趣的读者可以搜索”music deep learning”,也可以试试magenta(https://magenta.tensorflow.org/)。

 

除了视觉和听觉的艺术,人类社会还有文字的艺术,比如诗歌。但是由于语言的复杂性(参考后面的语言部分),作者认为目前的机器只能模仿它的形式而不是内容。读者感兴趣的话可以搜索各种作诗的机器人,基本就是使用RNN等训练一个语言模型,它能生成看起来很像古体格律诗的字符串(对不起,我只能称它为字符串因为它并不能表达什么有意义的情感)。

 

意识(Consciousness)

 

意识是人们用来挑战人工智能的重要武器,基本的观点就是人有意识,有主观能动性,因而可以创造性的解决问题。而机器,不管是预先编制好的程序还是神经网络模型,都是被动的按照人设计好的模式来运作。因此它实现的肯定不是真正的智能。

 

什么是意识,并没有一个获得广泛认可的定义。但是很多人认为人能”意识”到自己的行为,从而可以自主的做出一些决策,因此是存在”自由意志”的。

 

根据[wiki[(https://en.wikipedia.org/wiki/Consciousness),意识就是”我”知道、发现、觉察到某个东西,可以是觉察到外部的物体,也可以觉察到自己”内心”的某些感受或者想法。

 

关于意识的解释有很多的观点和理论体系,但可以简单的分为两类——存在意识的二元论和不存在意识的一元论

 

理论上应该有四种组合——只有物质、只有意识、物质和意识同时存在以及两者都不存在。两者都不存在似乎很难想象,持有这种看法的人好像比较少见。作者也很难想象这是两者都不存在的世界是什么样子,也许世界什么也不是,既没有物质也没有意识,那我们的感受从何而来呢?

 

接下来我们讨论一下二元论,这种观点是比较自然的。接受科学(这种信仰)的人大都认为存在一个物质的客观的世界,因此物质是存在的。而我们又能够感受这个世界并且意识到自己的感受,而且”看起来”它的工作方式又和物理世界的规律不太一样,那么假设存在另外一个非物质的意识就是很自然的事情了。

 

二元论的代表人物是笛卡尔,笛卡尔认为世界上存在两种完全不同的东西,一种是意识,一种是物质。其中意识能思考而物质不能思考,物质占据空间而意识不占据空间。即“物质的本性是广延,精神的本性是思维”。

 

之所以笛卡尔坚持认为意识和物质是完全两种不同的东西,他持有的是两个论据:其一,物质不能思维。我们在直观上通常不会认为一块石头、一块肉甚至是布偶玩具会和人类一样具有意识。其二,精神的存在似乎不依赖空间。在前现代,古人很难知道人的意识活动到底发生在哪里。古埃及人认为人的思考发生在心脏,古代中国人对于容纳意识的场所的认识是混沌的,诸如胸有成竹、腹有诗书气自华等比喻。古代西方人则更加粗暴地把意识归结为一个形而上的灵魂概念,认为人的灵魂即是一个人的精神存在,灵魂可以脱离肉体生存。

 

因此他认为意识和物质是两种完全不同的东西。但是这有一个问题需要解决:物质和意识是什么关系?

 

一种观点可以认为它们之间没有任何关系,但是近代的科学发现人类的感觉器官——类似于机器的传感器——是物质的,可以用物理学规律来解释。比如我们之前介绍的语音识别系统的MFCC特征提取,一定程度是模拟了人类的听觉系统。因此二元论通常需要解释意识和物质的关系,谁是决定性的因素而谁又是从属的因素。

 

通常有两种观点:物质决定意识和意识决定物质。当然还有物质部分决定意识的观点,但是我认为这种观点可以归为意识决定物质,因为我们可以把被物质完全决定的部分划分到物质里去,而剩下那些就是完全不被物质决定的由意识自作主张的部分。因此分歧的关键点在于物质是否完全决定意识,或者说意识有没有可以”自由”的时候,也就是”自由意志”是否存在的问题。

 

如果承认物质完全决定意识,那么意识不过是物质的另外一种说法而已,这就可以回到一元的物理主义。因此包括笛卡尔在内的大部分二元论者期望留给意识和自由意志足够的空间,从根本上来说他们认为意识是决定物质的。

 

在他们看来,意识就是指挥家,而我们的由原子等物质组成的身体是被指挥的对象。意识说”我”要走路,因此身体就按照意识的要求开始走路。但是随着生物学和神经科学对大脑的研究,人走路是大脑通过化学的(因而也是物质的)神经系统发出信号给肌肉,肌肉控制人的四肢开始移动。这样就出现了问题,既然大脑可以完成这个指挥家的工作,那还要意识做什么呢?这个时候二元论者有两种解释:

 

1. 退让一步,走路这种事情动物也能做,这种”低级的”工作就让给物质的大脑吧;

2.还是意识控制,意识控制大脑然后大脑再控制神经系统。

 

不管哪种其实都让二元论者很尴尬,就像最早断定机器下围棋下不过人类,他们找出各种的”理论”来”证明”围棋有多么难解。但是通过前面AlphaZero,人类下了几千年的围棋还比不上机器几个星期的强化学习。他们没有办法证明人工智能不能实现,不断的退让很容易一溃千里。而第二种解释又显得很笨拙,它没法回答意识怎么控制大脑的问题。这种碰到问题然后引入一个概念,把所有不能回答的问题都推到这个概念的做法只是在逃避问题。这其实是科学和非科学的最大区别,也就是在遇到问题的时候科学可以承认自己无法解释,但是它绝对不会阻止人们持续的探索,它相信(信仰)最终会有一天能解决,即使代价是要推翻自己以前的结论。而非科学在遇到困难的时候经常会创造一个新的名词,用这个名词来解释(其实都不能叫解释,只能说是回避)遇到的困难。这个名词通常是人(至少普通人)不能去碰触的,意识(灵魂)就是这样的一个名词。

 

显然意识是不能遵循物理化学等物质世界的规律的,那么它是怎么运作呢?它又是怎么控制我们物质的身体的呢?我们的身体死亡之后灵魂归于何处呢?当然他们给不出科学的解释,因此通常的答案是灵魂遵循的不是物理世界的规律,因此人(至少普通人)是没有能力去探究这些问题的。所有讨论就到此为止,没办法进行下去了,因为他们已经不给你讨论的机会了。比如你说灵魂如果是不灭的,那么灵魂的数量应该是固定的,那么现代人比过去多了很多,这些多出来的灵魂是从哪里来的呢?我们没法直接”制造”灵魂,但是我们通过生育更多后代是不是能”制造”更多灵魂——假设每个人都有不同的灵魂的话。这些问题都没有办法验证了,怎么解释都可以。如果出现不能自洽的解释也很容易解释:这不是物理世界,它们不需要遵循物理世界的规律,包括逻辑。是的,我们在看《西游记》的时候不会去分析孙悟空七十二般变化是否遵循了物理学的质量守恒定律,也不会考虑一个筋斗十万八千里是否超过了光速。

 

另外一种二元论就是虽然有意识,但是它完全被物质决定,它遵循的完全是物理世界的规律。这种二元论作者认为基本可以归类到物理主义的一元论里。

 

物理主义认为世界是由物质组成,并不存在特殊的超自然的空间来安放意识。但是意识和普通的物质是有一些区别的,它是和人类的大脑、情感、语言和智能等等活动密切相关的。因此物理主义也不能简单的回避这个问题,虽然他们可以说大脑产生了意识,而大脑不过是一堆基本粒子的复杂物理化学作用。但是他们还是需要解释为什么这些粒子的运动就能产生意识,而石头里的原子运动就没有意识(假设我们认同石头是没有意识的)。

 

作者是倾向于物理主义的观点的,因为这至少为人工智能打开了一扇门。而如果认为意识是非物质的,那么即使我们的智能机器能够实现人类的各种智能行为,不管是下棋还是自动驾驶,都不能算真正的智能,原因就是它没有非物质的意识,我们无法创造出非物质的意识塞到机器的大脑或者CPU里。

 

物理主义也有很多不同的流派,作者下面会尝试根据自己的理解(可能来自不同的流派)从物质世界的角度来简单的解释意识是什么。

 

简单的解释就是:意识并不存在,它只不过是大脑的一种工作状态。比如”我”的肠胃给大脑发出饥饿的信号,大脑在处理这个信号的时候就处于”饥饿”的状态,当然它经过计算发现现在还要继续工作把这本书写完,因此它可能选择忽略这个信号然后把自己置为”工作”状态。但是这个解释有一个问题,”我”是怎么知道大脑处于这个状态呢?或者说大脑怎么把它的状态告诉”我”呢?这个”我”显然不是大脑自己,那么这个”我”是什么呢?是不是灵魂意识之类的东西?

 

在回答这个问题之前我们先看另外一个问题,假设有一个”我”存在,我们先不管它是什么,大脑为什么要把它的工作状态告诉”我”呢?如果根据作者的观点,物质决定意识。大脑的只是一台复杂的机器,它的输入是很多感官的输入信号,然后进行类似神经网络的复杂计算,最后得出计算结果。比如刚才的例子,大脑接到肠胃的信号,决定继续打字,然后它就发出指令控制手指敲击键盘就可以了。那它有什么必要把它的工作状态告诉”我”呢?比如我们用计算机来模拟这个过程,这是完全可以做到的,输入是饥饿信号,神经网络经过计算输出继续打字的决定。这就可以了,它有什么必要把决策的结果甚至某部分过程(为什么这么决策,可能是因为现在并没有那么饿,如果去干别的可能会打断写作的思路)也告诉”我”呢?如果是机器的话,这个”我”又是谁呢?

 

事实上大脑并不把所有的决策结果或者过程都告诉”我”,很多下/潜意识的行为,大脑根本没有告诉”我”。比如大脑一直在控制”我”的呼吸,但是它一直没有”告诉”我。直到我有点缺氧,大脑下指令做了一个深呼吸才告诉了”我”(或者是出现深呼吸之后听觉系统检测到了深呼吸然后大脑再告诉”我”)。

 

因此大脑似乎只是把一些重要的需要深度思考的决策结果或者过程告诉了”我”。告诉”我”这些决策结果和过程有什么好处呢?”我”会把它存储记忆下来,以后会用到它。比如上周滑雪,控制不了速度摔倒的记忆一直保存着,我们可以反思(强化学习)经验教训来学习提高滑雪技巧。

 

所以”我”只是一些大脑状态的存储和记忆,目的是为了在遇到类似的场景可以更好的避免同样的错误或者采纳之前成功的决策。根据强化学习的知识,判断某个决策是好是坏通常需要较长的时间,这些记忆可以用于后面强化学习。从这个角度来看”我”是不是有点像Deep Q-Learning的Experience Replay Buffer的作用呢?

 

前面也提过,大脑并不会把所有的状态都告诉”我”(也就是存储起来),因为我们的记忆容量(内存)是有限的。我们只能在有限的空间里保存最重要的信息,所以我们会不断产生新的记忆然后遗忘一些东西。

 

Replay Buffer里的一些数据在训练完模型后就没有意义了,就会被删除。即使删除,大脑在遇到类似的场景时也会做出正确的反应。作者在刚学会开车的时候有一种被过多视觉信息压得喘不过气来的感觉,开到时速60公里就感觉大脑处理不过来,而熟练了之后,即使在高速公路上开到120也觉得很轻松。这可以用上面的理论来解释:刚开始我们的自动驾驶模型还不够完善,很多路况都没有见过,比如插队行为在驾校里就从没遇到过,因此大脑需要复杂的决策过程,这些路况和决策过程都上升到意识层面并且存储到Buffer里。这么大量的信息让我们的大脑处于高速运转状态,甚至超出了它的处理能力,就像CPU的负载过高一样。随着Replay Buffer的各种路况被用来优化我们的驾驶模型,我们没见过的路况越来越少,大脑需要让我意识到的路况也越来越少,因此我们也越来越熟练和轻松。最终我们形成了条件反射,decision=f(路况输入),函数f就是我们的驾驶模型,它的参数已经高度调优。

 

我们日常所谓的熟能生巧其实就是上面的过程,我们从小学习走路、奔跑等都是类似的过程。到现在,我们很少需要思考怎么走路,除非我们碰到没遇到过的场景,比如在沼泽地、雪地、悬崖等我们没有见过的陌生环境。

 

一般情况下,我们的大脑是有富余计算能力的,因此我们的意识在不停的流动。所谓的流动就是我们大脑除了处理实时的输入,还有富余能力从Replay Buffer里不断的取出最近的一些场景来进行强化学习——调优我们的模型。但是如果需要实时处理的信息用光了我们所有的计算资源,那么我们就无法同时进行模型调优了。我们通常会有这样的感受,在经历某些复杂的事件时,比如在考试时,我们会完全”忘记”了自我的存在,全身心的投入到解答考题的过程中。又比如在初学开车的时候,总感觉手脚不够用,其实是大脑处于超负荷的运算过程中,还没有来得及把决策传递给脊髓从而控制肌肉的运动。这种全身心的投入是一种很特别的体验,我们会彻底忘掉其它的事情——包括那些烦心事,因为在大脑的优先级队列里当前任务的优先级最高。因此有的人会去做一些能够占据大脑CPU的事情,比如看恐怖电影、进行各种刺激的极限运动。这些事情通过占据大脑来让我们暂时的”忘掉”(其实是把记忆从内存换到磁盘)不愉快的事情。一些宗教也会有冥想或者禅定的行为,我不知道和这个有没有关系。

 

如果只是为了打发无聊时光的刺激性运动,过去也就过去了。但是像学开车,我们在Replay Buffer里存储了大量有用的新场景的训练数据,当时我们并没有时间反思(强化学习)。我们会在大脑闲下来的时候进行这些工作,因此休息和睡眠就非常重要。休息的时候,我们的四肢虽然处于放松状态,但大脑可能一直在做强化学习。在睡眠的时候,我们的大脑不需要处理实时的信息(其实也不完全是,只是我们的大脑忽略了大部分信号,但是一些紧急信号还是可以唤醒我们,让我们从休眠状态进入正常状态),因为这些场景大部分都是”历史”,因此没有必要再次告诉”我”,它默默的在后台强化学习就行。但有的时候某些重要的历史还是会重新被大脑以处理过的形式存储起来,并且形成新的意识,这可能就是梦的产生过程。

 

从这个角度,我们也可以解释劳逸结合的重要性。有一部分强化学习过程是在收集训练数据的过程中就完成的,但是如果收集数据过于复杂以致于大脑没有空闲资源学习,那么我们就需要停下来休息一下。

 

和强化学习类似,很多状态的Return是需要等到一个Episode结束或者一定时间以后才能知道。比如我们做了一个预测,也就是有了(s, a),但是这个预测需要第二天才能看到结果,因此Reward r当时是不知道的。所以我们需要把这个(s, a)存储起来,到了第二天,我们把r加上得到(s, a, r),就可以强化学习了,这也许就是所谓的”反思”过程。

 

自我意识

 

根据前面的观点,自我不过是为了进行强化学习的一个内存Buffer,存储了一些重要的决策以及决策的理由。因此并不存在一个”我”,”我”只不过是一些关于”我”的记忆而已。回想一下,真的有一个实有的”我”存在吗?那不过是众人给的一些标签而已。我们觉得自己是好孩子,那不过是父母老师给的标签,我们不会一生下来就认为自己是好孩子或者坏孩子。

 

自我意识看起来是跟他人的评价密切相关的,是社会性的产物。非常的凑巧,昨天读到的一篇文章好像能印证这个看法。这篇文章的标题是一条鱼也有自我意识?(https://tech.sina.com.cn/d/f/2018-12-25/doc-ihmutuee2408984.shtml)近50年的权威试验遭重创。这篇文章的关键结论是”社会联系造就自我意识”,因为根据前面的讨论,自我完全是别人对”我”的看法(标签)的记忆,因此社会性的动物更容易有自我意识。

 

“我”除了存储历史的场景和决策(类似于强化学习的(s,a))之外,还根据他人的反馈存储了很多自我的标签,这些标签有的会伴随人一生而有些随着人年龄、经历或者地位的变化而不断变化。

 

自由意志(free will)

 

自由意志可以说是二元论者的最后”武器”。说”武器”其实不恰当,它更像是最后的”避难所”。常见的说法是:如果意识不存在或者完全由物质决定,那么就没有自由意志。我们从自我的主人变成了一个看客,所有的一切都是按照剧本在演出。那”我”存在还有什么意义呢?接着他们可能会说:既然我的所作所为跟我没有关系,那就没有任何责任可言了,一个杀人犯也是没有责任的呢,因为他完全做不了任何决定。

 

作者的答案是:既然”我”都不存在,那么有什么必要谈论”我”的价值呢?如果”我”指的是物质的身体,那么它的意义就是别的话题了,我们在后面的生命部分讨论这个话题。责任的问题就更加简单了——既然没有意识了,物质身体犯了什么错误就接受什么样的惩罚。这些惩罚法规是长期进化过程中总结出来有利于种群进步的法律等规章制度。

 

但是执着于”我”的人还是会说,既然”我”都没有了,那活着还有什么意思呢?那我就得过且过,随波逐流算了。如果你这样的想法只是为了”说明”意识存在的价值,那么前面的解释已经足够,你的这个想法并不是武器,而只是最后的”避难所”而已。如果你真的有如此的想法,那么作者希望你在后面讨论生命的意义时能找到意义。如果还是找不到意义的话,那么作者在这里承认前面所说的都是荒谬的无稽之谈。因为让读者陷入虚无主义,作者的罪过就极大了。

 

我们也可以换一种世界观。既然没有了自我,那么遇到问题就可以从更高的层次来思考问题了。首先我们在遇到问题时第一反应就不会是逃避了。比如疼痛是不好的感受,但是我们可以需要庆幸疼痛的存在,它是身体发送给大脑的报警信号,使得我们可以发现问题并及时解决。我们不会纠结于疼痛带给”我”的感受而怨天尤人,因为我们知道这只是大脑给我们的一个信号。我们需要想办法解决问题,并且吸取经验教训避免以后再次发生。所以失败的教训会作为我们宝贵的经验(训练数据),真正体会”失败乃成功之母”的含义——我们每失败一次就验证了一条路径确实不可行,我们不是在抱怨这次的失败,而是很高兴的告诉自己需要尝试的路径又少了一条(甚至类似的多条),我们离成功又近了一步。

 

其次舍弃了”我”的概念之后,我们可以更多的考虑他人的感受,考虑整体群体的利益。我们不会斤斤计较很小的个人得失,从而可以更好的与他人合作——这样短期来看我们的局部利益是受损的,但是长期来看我们自己或者我们的后代能够获得更大的整体利益。

 

读者也许会质疑作者,既然”我”都不存在了,那怎么又能改变”我”的世界观呢?准确的答案是改变的是”你”这个物质的状态,所谓的”你”的”世界观”,不过是你的身体尤其是大脑的某种状态而已。那也许你又会问:既然”我”的世界观的改变是读了这本书的必然结果,只不过”我”的大脑把它存储下来了而已。不管我读了这本书之后是接受还是不接受书中的观点,我只是个观众做不了任何决定,那又有什么意义呢?

 

好吧,又回到了之前的问题。作者有两个建议供读者选择:1. 不要继续读下去了,作者承认本章内容都是无稽之谈。2. 你可以认为存在一个有自由意志的灵魂并且继续阅读下去,但是不用认同作者的任何观点。继续阅读只是想打发一下无聊的时间,如果是这个目的的话读者可以重点阅读一下”主观和客观”部分的内容。

 

解决了因为无我的”恐慌”而坠入虚无主义的危险之后,我们接下来从客观的角度来分析为什么自由意志是不存在的。

 

根据wiki,自由意志是指在各种可能的方案中进行选择和决定行为的能力。

 

卢梭说过:人生而自由,却无往不在枷锁之中。即使我们认为意识是存在的,自由意志也不是为所欲为,它会受到各种客观条件的约束。有些”自由”可以通过科技的进步来实现,比如实现丰衣足食。但是有些”自由”显然是不可能的,比如”我”想当皇帝,为所欲为。首先皇帝也不可能为所欲为,其次如果还有另外一个人也想当皇帝怎么办?也许我们可以创造一个虚拟世界来实现你的皇帝梦,虚拟现实或者游戏能够一定程度让你美梦成真,但这是一件好事情吗?

 

另外关于自由意志还有下面一个有趣的矛盾。从科学家的角度,我们希望自己能够理解世界上所有的规律,包括人类的大脑和意识,这就要求一切都是确定的和可预测的。给定当前的状态,我们就能够准确的预测未来。

 

1687年艾萨克·牛顿发表了他的《原理》,阐明了万有引力定律和三大运动定律。牛顿第二定律将施加给一个孤立系统(例如,滚动在绿色桌子上的一个台球)的力与它的加速度(即与其变化的速度)联系起来。这条定律有着意义深远的影响,因为它暗示在任何特定时刻构成一个实体的所有组分的位置和速度以及它们之间的力,不可改变地会决定那个实体的命运,即它未来的位置和速度。没有其他事物介入,没有任何其他事物是必需的。这个系统的命运是密封的,直到时间的尽头。

 

这个定律的“强制命令”适用于整个星空:从树上落下的苹果,绕地球运转的月球轨道或者环绕银河系中心的数以亿计的恒星,牛顿定律支配着宇宙中的一切。如果我知道这些力和系统的当前状态——物理学家用以说明系统的所有组分的精确位置和速度,那么我就能告诉你在未来任何时间点上那个系统的状态。

 

这是决定论的精髓。当行星围绕太阳在其轨道上运行时,只要作用于它们的所有力都被恰当地计算在内,它的质量、位置和速度完全决定了从现在到1000年、100万年、10亿年后它们的位置。如果宇宙被视为一个整体,那么牛顿定律也会占据支配地位。人们可以在法国数学家皮埃尔·西蒙·德·拉普拉斯(Pierre Simon de Laplace)那里找到这个概念跳跃的最雄辩的支持者,他于1814年写道:

 

我们可能将宇宙的现在状态视为其过去的结果和其未来的原因。如果一位智者在某个特定时刻知道使自然处于运动的所有力以及知道构成自然的所有成分的位置,并且如果他还有足够的能力分析这些数据,那么他能将宇宙中的最大物体和最小原子的运动纳入一个单一的公式中;对于这样一位智者,没有什么是不确定的,而未来就像过去一样呈现在他的眼前。

 

宇宙,一旦处于运动中,就像一个钟表装置,不可阻挡地按其路线运行。对于一个无所不知的超级计算机,未来昭然若揭。不存在超出物理定律规定之外的任何自由。你对付内心恶魔的所有努力,不论好坏,都是零。当宇宙一开始被上好发条时,你未来行动的结果已被规定了。

但同时我们又期望人类是例外的,我们有自由意志,能够自作主张。当然大部分人不那么绝对,他们认为大部分情况(除了意识等之外的物理世界)都是确定的,但是人类的意识是自由的。或者说即使人类不是完全自由,不能所有人都当皇帝,但是在某些局部”小的”、”个人”的情况下还是有选择的权利的,比如等下是吃外卖还是吃快餐。这种观点和前面很像,只是一种逃避而已。最终其实只能有一种选择,必须要站队。

 

下面关于自由意志的内容主要参考了有一种错觉叫自由意志(https://www.guokr.com/article/50325/)。

 

 

加州大学旧金山分校心理系教授本杰明•李贝特(Benjamin Libet)和哈佛大学心理系教授丹尼尔•崴格纳尔(Daniel Wegner)的两个实验可以说是自由意志研究领域当中的两座里程碑。

 

在李贝特教授的实验当中,他使用脑成像(EEG)来检测被试的脑活动信息,同时要求被试随时报告自己动作发出的意向。结果发现,大脑是在个体报告发出动作意向之前几百毫秒之前就已经产生了相应动作的脑活动,也就是说动作产生的直接原因并不是个体意识当中的意向,而是意识之外的其他脑活动。这个研究的结果震惊了整个心理学界,引发了大量的后续研究。虽然有学者质疑Libet实验中被试报告与脑活动的时间差测量的精确性(比如对被试用来报告出动作意向的时间的测量问题),但是在2008年在《自然神经科学板》(Nature NeuroScience)上,金顺菘等人采用现代的脑成像技术再一次验证了李贝特的研究结果。

另一方面,哈佛大学心理学教授崴格纳尔采用心理学行为实验方法证明个体对于自由意志的体验是一种错觉,并不是对现实的真实反映。

在1999年的实验当中,崴格纳尔及其同事设计了一个非常复杂而巧妙实验室情境。在这个情境当中,实验员让被试与实验者的助手(伪装成被试)一同参与一个任务,任务的目的是通过操纵鼠标将屏幕上的指针停留在特定目标物上。真假被试同时控制鼠标,实验者告知被试,当音乐响起时,他们就可以停下,但是不必立即停下。实际情况是在进入音乐之后,假被试听到的指导语与真被试是不同的,当真被试停下时,指针就只由假被试控制着达到目标物,真被试在这个阶段就有可能体会到虚假的控制感——这里可以延伸被理解为虚假的自由意志体验。

研究发现,在改变真假被试停下的时间差(10s或1s等)之后,随着间隔时间的减少,真被试对自己要指针停下的意向的评分就越高。也就是说,虽然这个期间指针并不是由真被试控制,但是因为与真被试预期指针的运动方向一致,所以时间越短,被试越会产生自由意志的错觉。

 

这一定程度能验证我们的观点:意识不过是大脑把计算结果告诉”我”而已,但是”我”并没有参与任何决策。

 

计算的局限

 

另外一个用来质疑人工智能的是停机问题,它证明图灵机没有能力判定所有问题能否停机。我们先简单的介绍一下图灵机相关的概念,因为篇幅和本书内容限制,这里不会介绍太多细节,感兴趣的读者可以参考形式语言与自动机或者计算理论等相关书籍,前面介绍的有限状态自动机和上下文无关文法都是这门课程的内容,因为与语音识别和自然语言处理有关,作者在本书前面章节做了介绍。深度学习也有相关的神经网络图灵机(Neural Turing Machine),不过作者认为这些模型目前在实际应用中并没有太多用处,所以就没有单独介绍。

 

1900年,在巴黎举行的第二届国际数学家大会上,希尔伯特做了一次堪称数学史上影响最为深远的演讲,题目是“数学问题”。在演讲中,希尔伯特列举了23个他认为最具重要意义的数学问题,这些问题被后人称为“希尔伯特问题”。希尔伯特第十问题是所有23个问题中最短的一个,但从某种意义说,也是最大的,尤其是对计算机科学而言。

 

下面内容主要参考了这篇文章(https://blog.csdn.net/linyt/article/details/4296663),它翻译自这篇文章(http://www.goldenmuseum.com/1612Hilbert_engl.html)。

 

希尔伯特第十问题又称为“ 判定丢番图方程的可解性 ”。丢番图被认为是古代最伟大的数学家,他的创造性工作在代数历史上起到很大的作用。据估计,他生活在公元前3世纪的中期,享年84岁。丢番图的主要著作称为《算术》,这一基础数学宝库共有13卷,成为代数理论和数论发展中的里程碑。

 

解代数方程一直是主要的代数问题之一,许多数学问题都被归纳为代数方程。 对于数学家来说,解一次和二次方程非常简单。然而,解三次方程显得比较困难。直到16世纪,意大利数学家费罗和塔尔塔利亚给出这种方程的通解公式。 17和18世纪,代数方程最相关问题之一变成寻找解5次代数方程的公式。法国数学家伽罗瓦的研究工作解决了此问题,结果创立了新的代数学。

 

有些方程根本没有解,如方程2x-2y=1在整数域内没有解,因为等号左边永远是偶数。还有一些存方程在有限解集,如方程3x=6仅有唯一解x=2。最后还有一些方程存在无限个整数解。例如,方程7x-17y=1,它的解为:

 

y=7t+2

x=17t+5

 

一般而言, 整数域上的代数方程定义为,P=0,其中P是整数的多项式,包含一个、两个或多个未知数。例如640?wx_fmt=gif

640?wx_fmt=gif。需要解决的问题是:给定方程 P(x,y,…)=0,如何判定方程在整数域内是否有解,如果有,如何高效找到所有解?这类问题称为丢番图方程。

 

一开始人们研究比较特殊(简单)的一类丢番图方程,形如:

 

 

640?wx_fmt=png

我们知道x2+y2=z2x2+y2=z2是有整数解的,它的解为:

 

 

640?wx_fmt=png

 

但是当n>2时,640?wx_fmt=gif是否有整数解呢?这就是费马最后定理(费马大定理),这个定理说n>2n>2时方程是无整数解的。费马把该问题写在丢番图著作中某页的空白处,并写道 “…… 我已想到一个极不平凡的证明,但苦于此处空白太小而没法写下 ”。德国佛尔夫斯克曾宣布以10万马克作为奖金奖给在他逝世后一百年内,第一个证明该定理的人,这吸引了不少人尝试并递交他们的“证明”。被提出后,经历多人猜想辩证,历经三百多年的历史,最终在1995年被英国数学家安德鲁·怀尔斯彻底证明。

 

到此为止,我们仍然没有解任意阶方程的一般方法。所有由最聪明的数论家发明的技巧只能用来求解非常特殊的丢番图方程。因此希尔伯特在他的23个著名问题里的第十个问题就是判定丢番图方程的可解性。

 

第十个问题为:给定一个系数均为有理整数,包含任意个未知数的丢番图方程:设计一个过程,通过有限次的计算,能够判定该方程在有理数整数上是否可解。

 

在希尔伯特提出这个问题时,他明显认为是存在一个”算法”,对于任意一个特定的丢番图方程,这个算法都可以在有限的时间里(也许是十亿年)告诉我们这个方程是否有解。所以上面的问题是”设计”一个过程(算法)而不是问是否存在一个算法。另外需要注意的是在希尔伯特的年代还没有计算机,大家对于什么是计算什么是算法完全没有概念,因此问题中使用的词是”过程”,我们今天理解为算法就行。

 

如果某个问题包含无限种情况,则称为大量问题 。比如前面的丢番图方程就是一个大量问题,因为具体的方程是有无穷多个。如果丢番图方程只有有限个,那么我们可以一个一个的来判断某个丢番图方程是否有解。但是丢番图方程有无限个,因此我们需要一种(或者一些)更加”通用”的方法。

 

判断是否可解的大量问题在形式化理论上称为所谓的判定问题 。希尔伯特第十问题就是判定问题,即此问题包含个数无限的个体问题,每个都要求明确的回答:是或否。判定性问题的本质是要求寻找一个方法,使它对于所有的个体子问题都有明确的答案。自丢番图提出著名的丢番图方程 之后,很多通过数论方法得以解决,还有很多被证明是不可解的。不幸的是,解决不同种类的方程和不同的个体方程,需要发明不同的方法。在第十问题中,希尔伯特要求一种”通用”方法来判定所有丢番图方程的可解性。

 

因此希尔伯特的这个问题包含了极大的”野心”——对于某类大量问题,我们可以设计出一个通用的算法(解法)来判断具体物体是否有解。推而广之,对于任意问题,我们是不是都可以设计出通用的算法?但是很遗憾,1970年马蒂亚塞维奇证明了这种通用算法并不存在。但是即使在1970年之前,图灵的发现已经让大家觉得这种通用算法很可能并存在。

 

在希尔伯特提出第十个问题的时候,大家对于什么叫算法还没有太多概念。随着研究的深入,大家逐渐认识到所谓算法就是通过有限多的步骤,对数学函数进行有效计算的方法。于是便开始寻找可以有效计算的函数。到底什么样的函数是可以有效计算的呢?数学家们开始并没有普遍的结论,只知道一些最简单的函数,以及用这些函数通过若干简单规则组合出的函数是可以有效计算的。数学家们把这类函数叫做递归函数(Recursive Function)。

 

1936年,丘奇(Church)和图灵(Turing)先后出现了二个著名的论题,丘奇提出,可计算函数便是一般递归函数。而Turing提出,可计算函数就是由图灵机所计算的函数。Kleene证明,这二个论题等价,现在通称丘奇-图灵论题。当年提出这个论题时,人们觉得过于武断,大家总是希望找出反例,可随着时间的推移,不仅没有找到反例,反而使有利于这个论题的例子越来越多。因此,在数理逻辑界几乎没人反对丘奇-图灵论题了。

 

这里有两个问题:是否还存在比图灵机表达能力更强的计算模型?人类的计算能力是否超过图灵机?这两个问题的答案都是未知的。第一个问题要么我们能找出一个新的计算模型,它能解决某个图灵机不能解决的问题,要么能够从理论上证明这样的计算模型是不可能存在的。不过目前我们既找不到比图灵机更强的机器,也不能证明不存在更强的计算模型,因此只能暂时就认为图灵机是我们现在机器解决问题的上限。而图灵证明了存在图灵机不能解决的问题,因此也就粉碎了希尔伯特的梦想。人类是否能够解决图灵机不能解决的问题呢?这个也很难证明。有的读者可能会奇怪,这不是很容易吗?人类可以证明前面的费马大定理,计算机(图灵机)还不能证明。注意:图灵机现在确实还不能证明,但是不能下结论它永远不可能证明。就像计算机以前下围棋不行不代表它永远不行。我们必须证明不存在一个算法能够证明费马大定理,事实上这个算法是存在的,因为人类已经发现了这个算法。人类怎么证明的?肯定是有限步的推导啊,那么这个算法不就是存在了?我们想说的也许是:这个算法虽然存在,但是计算机永远找不到它,这似乎不好证明。

 

下面我们来看看图灵是怎么证明存在图灵机不能解决(判定)的问题的,首先我们需要了解图灵机的定义。

 

图灵机包括一个无限长的带子(tape),带子由连续的cell组成,每个cell上都可以存储一个符号,因此图灵机有一个带子的字母表。这个字母表包括一个特殊的blank符号,一开始图灵机的带子上所有cell上都是blank,我们可以在图灵机运行之前把输入字符串写到带子上。此外图灵机有一个读写头(head),它可以读取并且修改当前位置的cell内容,并且可以左右移动,一开始它的位置在带子的最左侧(也就是指向第一个cell)。图灵机也有一个状态集合,这个状态集合包括特殊的开始状态、接受状态和拒绝状态,此外还有有限数量的其它状态。最后它还有一个状态转移表,根据这个表,图灵机首先读取当前cell的内容,然后根据转移表跳转到新的状态、修改当前cell的内容然后左右移动一格。如果图灵机进入接受状态,那么表示图灵机接受这个输入;如果图灵机进入拒绝状态,则表示图灵机不接受这个输入。除此之外还有一种可能就是图灵机一直在运行而无法进入接受和拒绝状态。

 

下面我们来形式化的定义图灵机。图灵机是一个7元组640?wx_fmt=png

 

其中:

 

  • Q 有限的状态集合,包含3个特殊状态:初始状态640?wx_fmt=gif,接受状态640?wx_fmt=gif和拒绝状态640?wx_fmt=gif

  • Γ带字母表,包括特殊空白字符B

  • Σ输入字母表,包含在Γ里

  • δ状态函数,δ:Q×Γ→Q×Γ×L,R

 

图灵机的工作过程如下,一开始是带子上的cell里都是空白符号B,接着我们把输入字符串放到带子上,从第一个cell开始,此时带子的头部指向第一个cell,状态处于640?wx_fmt=gif。此时图灵机读入第一个字符,根据δ,进入新的状态,并且修改第一个cell的内容,然后头部指针左移或者右移。如果当前指针在最左边第一个cell,那么左移后指针保持不变。如果图灵机进入640?wx_fmt=gif,那么就停止运行,接受输入字符串;如果进入640?wx_fmt=gif,那么也停止运行,拒绝输入字符串,否则一直运行下去。因此图灵机给定输入后有两种可能:停机或者不停机。能停机则表示图灵机能够判断这个问题(输入),停机又分成接受和拒绝两种可能。

 

我们可以通过一种技巧把上面定义的图灵机编码成一个字符串(我们现在写的Python程序就是一个很长的字符串,我们可以把它编译成机器指令,这也是一个字符串,而CPU就是一个图灵机,它可以执行这些指令),然后用另外一个图灵机来模拟上面的图灵机的执行。这个模拟别人的图灵机叫做通用图灵机,它可以实现任意图灵机的算法。之前我们的图灵机的”算法”是固定的,只有输入可以变化,因此这个图灵机只能解决一个问题,比如一个图灵机可以实现排序,另一个可以实现复制。而通用图灵机的算法就是模拟其它图灵机,因此如果我们把排序图灵机的代码和输入传给通用图灵机,则这个图灵机就对这个输入做排序,而如果我们传入的是复制图灵机的代码和输入,则通用图灵机会实现复制的功能。这和现在的CPU很像,我们把需要执行的代码和输入放到指定的位置,那么CPU就执行我们代码对应的算法。执行完了之后又可以执行其它程序,因此我们不需要买一台电脑用于排序,再买一台电脑用于去重,…。

 

希尔伯特的梦想是:我们能找到一个”通用”算法,给它任意算法(问题)和输入,这个”通用”算法能够在有限的时间内判定给定的算法和输入能否停机(也就是在有限的时间内运行完成)。

 

图灵证明了这样的”通用”算法是不存在的。人(假设也可以看成一个计算机器的话)能实现这种”通用”算法吗?有读者可能会马上跳出来说:可以啊,我昨天给同事做code review,我就可以判定他的代码不会死循环,一定会在有限时间内结束。先不说你的判定是否有问题,是否漏过了一个bug。即使你说的是对的,世界上有无穷多的代码,你能一个个判定一遍然后得出结论”我可以判定所有算法是否停机”吗?除非我们能找到一种判定方法(这本身就是一个算法),随便从哪个犄角旮旯找一个程序(可能像Linux的源代码那么复杂),使用这个判定方法我们都能在有限的时间内判定它是否会停机。

 

在证明这个问题前,我们首先形式化的定义这个问题。问题为:是否存在程序(通用图灵机)H,对于任意的程序(图灵机)P和输入I,H都能够在有限的时间内判定图灵机P遇到输入I时能否停机。

 

这个问题有一点绕口,用通俗的话来说就是:是不是有一个万能的H,可以判定所有其它图灵机P在输入I的时候能不能停机?答案是否定的,也就是不存在这样的H。怎么证明呢?当然很自然会想到反证法。

 

为了便于理解,我们用函数来表示图灵机。我们首先假设存在函数H(P,I),它有两个参数,第一个参数仍然是一个函数P,而第二个参数是输入I。对于Python的程序员来说,函数作为参数或者返回值非常常见,但是对于其它一些语言可能会比较奇怪。其实对于通用图灵机来说,其它程序(图灵机)也是编码成字符串的。因此我们不用特意区分函数和输入,最终它们都是一个字符串(01组成的二进制串)。

 

对于任意的函数P和任意的输入I,H(P,I)都会在有限的时间内返回true或者false,告诉我们P(I)是否停机。

 

为了反证,我们(只)需要找到一个程序U和输入I,使得H(U,I)无法在有限时间返回。图灵找到这样的U:

 

 

def H(P,I) 
    # H(P,I)返回True或者False,表示是否停机

def U(P):
    if H(P,P) = True:
        # 死循环
        while True:
            pass
    else:
        return True 

 

注意,这个U的参数P是一个函数,然后调用H(P, P),也就是让H来判断函数P的输入也是P的时候是否停机。如果H判定P(P)停机,那么函数U进入死循环(不停机);否则返回True表示停机。

 

接下来我们来看H(U, U)这个函数,当然根据H的定义,H应该在有限的时间内告诉我们U(U)是否会停机。这个当然有两种情况:停机或者不停机(死循环)。

 

如果H(U,U)返回True,说明U(U)停机,我们来看U(U)的执行过程。

 

 

# 用U替换P,假设H(U,U)=True
def U(U):
    # 因为H(U,U)=True,所以会走if分支。
    if H(U,U) = True:
        # 死循环
        while True:
            pass
    else:
        return True 

 

因为H(U,U)=True,因此U(U)会走if分支,而这个分支是死循环,因此U(U)不能停机,这和U(U)停机矛盾。

 

如果H(U,U)返回False,则说明U(U)会死循环,我们来看这个条件下U(U)的执行过程。

 

 

# 用U替换P,假设H(U,U)=False
def U(U):
    if H(U,U) = True:
        # 死循环
        while True:
            pass
    # 因为H(U,U)=False,所以会走else分支。
    else:
        return True 

 

因为H(U, U)=False,所以会走else分支,因此最终U(U)返回True,这和U(U)会死循环(不停机)矛盾。

 

希望读者没有被上面的文字绕晕了,其实函数U最需要注意的是它调用了万能判定函数H,而且是把自己的参数P作为参数来调用H(P, P)。H是非常刁钻的。本来H是用来判断U是否能够停机的,而U却问H(函数调用H(P, P)):我(U)能否停机?如果H说我(U)停机,我就偏偏死循环;如果你说我不停机,我就立马停机!

 

关于停机问题的证明,有一个很关键的时间先后关系,也就是H是用来判定程序U是否能停机的,但是U又通过调用H让H先下结论,然后根据H的结论再做决策,这似乎有作弊之嫌。这感觉有点像我让你猜我是出石头、剪刀还是布中的哪一个,我并不提前想好一个结论记录下来(避免抵赖),而是先让你猜,你猜了之后我再根据你猜测的结果出拳,总感觉有些不太对劲。

 

循环引用似乎和自指有一些关系,在哥德尔的证明里依稀也能找到自指的影子。在讨论自指之前我们看看作者假想的与庄子和惠子的对话。

庄子与惠子游于濠梁之上。庄子曰:“鯈鱼出游从容,是鱼之乐也。”惠子曰:“子非鱼,安知鱼之乐?”庄子曰:“子非我,安知我不知鱼之乐?”惠子曰:“我非子,固不知子矣;子固非鱼也,子之不知鱼之乐全矣!”庄子曰:“请循其本。子曰‘汝安知鱼乐’云者,既已知吾知之而问我。我知之濠上也。” ——《庄子·秋水》

上面的文字简单翻译一下大意如下。

 

庄子与惠子在濠梁上游玩。庄子说:“鯈鱼悠然自得的游来游去,这就是鱼的快乐啊。”惠子说:“你不是鱼,怎么知道鱼的快乐呢?”庄子说:“你不是我,怎么知道我不知道鱼的快乐呢?”惠子说:“我不是你,所以确实不知道你(是否知道鱼的快乐);但是你也不是鱼,所以你肯定也不知道鱼是否快乐!”

 

这段对话很有意思,惠子以雄辩而出名,而且是第二次反问非常精彩:我不是你所以不知道你(是否知道鱼的快乐),但是你也不是鱼,所以你也不知道鱼的快乐。它其实是以子之矛攻子之盾的方法:他首先从庄子的前一句“你不是我,所以你不知道我是否知道xxx”提炼出一个隐含的结论:一个人知道自己的想法,但是不知道其它人和物(鱼)的想法。然后通过自己的退步加强这个结论——我不是你,所以我确实不知道你的想法。接着他就要用这个结论来反驳庄子了:你不是鱼,根据前面的结论,所以你也不知道鱼的想法。当然这里也有一些小小的破绽,比如怎么根据“你不是我,所以你不知道我是否知道”归纳出结论。但是首先我们的任何结论都确实是归纳出来的,其次如果庄子否定这个结论,那么他就得解释自己上面那句话(你不是我,怎么知道我不知道鱼的快乐?)怎么来的,而事实上庄子很可能是认可这个结论的。另外从人怎么归纳成包括鱼在内的所有人和物也是值得讨论的。但是显然庄子并不会认为人和鱼会有什么区别,至少作者是这么认为。

 

那么现在庄子面临一个很大的挑战,惠子的归纳和以及反证的过程确实无懈可击。我们先翻译一下庄子怎么说的。庄子说:“请从头开始来分析。你说‘你怎么知道鱼的快乐’这句话,你已经知道我知道它(鱼的快乐)而问我。我是从濠上知道的啊。”

 

首先,通过前面的分析,惠子的第二句话是以庄子的第二句话开始归纳和反证的,也就是从第二句开始惠子是无懈可击的。但是庄子抓住了惠子第一句话的漏洞。惠子的第一句话是“你不是鱼,怎么知道鱼的快乐呢?”从这句话里就能发现惠子是知道庄子知道鱼的快乐的。为什么呢?假设惠子不知道庄子是否知道鱼的快乐,那么他怎么能说你怎么知道呢?

 

“你怎么知道A?”这个句子隐含的假设就是你知道A。从这个出发,庄子也得出一个隐含的结论:你可以知道他人的想法。这其实就反驳了惠子的隐含结论:一个人不能知道别人的想法。因为你(惠子)可以知道我(庄子)的想法,所以你的那个隐含结论是不能成立的。后面那一句“我是从濠上知道的”其实已经没有必要了,它回答的是怎么知道的问题。当然回答了就更完美,它回答的其实是前一个问题:你是怎么知道鱼的快乐的?庄子的答案是:我通过在濠上观察而知道的。

 

看起来庄子大获全胜了,因为庄子是从惠子的第一句话反驳的。要是作者能穿越过去的话,可能这样尝试帮惠子。假想的对话过程如下。

 

庄子说:“鯈鱼悠然自得的游来游去,这就是鱼的快乐啊。”惠子说:“你不是鱼,怎么知道鱼的快乐呢?”庄子说:“你不是我,怎么知道我不知道鱼的快乐呢?”作者帮惠子说:“我是通过你说的话来得知的(因为人和人之间可以沟通)。”当然这肯定难不倒庄子,他可能会说:“沟通不一定要说话,我通过鱼的行为也能判断。“(而且从现代行为主义的观点来看,人所谓的内省都是毫无价值的,只有行为是唯一可被外部感知和测量的)

 

其实庄子和惠子的对话涉及到一个很有趣的问题,就是人是怎么认知这个世界的。惠子和庄子都一直在回避这个问题,直到最后庄子才说了他是怎么认知的,他是通过在濠上观察而知道的。那他为什么不一上来就说这一句呢?我们来推演一下。

 

庄子:“鱼多么快乐啊!”惠子:“你怎么知道鱼很快乐呢?”庄子:“我是通过观察发现的”。如果你是惠子,怎么办呢?当然你可以说观察可能不准,有的人看起来很可怜,但他的内心确非常痛苦。但这样的反驳不能一击中的,因为人类认识世界确实是通过观察的,除此之外别无它法。

 

如果作者是惠子的话,可能会这么说:“我通过观察发现你不知道鱼是否快乐!” 你可以观察发现鱼是否快乐,隐含的结论就是人可以通过观察发现人或物(鱼)是否快乐。那么我也是人,当然可以通过观察发现你(也是一个人或物)不知道鱼是否快乐。当然我这么说很可能是在撒谎,但是你却没法反驳。那庄子就没有办法了吗?当然不会,我如果是庄子肯定会这么说:“我通过观察发现你并不知道我是否知道鱼是否快乐!”

 

当然惠子也可以继续下去,为了表述方便,我们把“我通过观察发现你并不知道我是否知道鱼是否快乐!”记作A。惠子可以说:“我通过观察发现A并不成立!”当然庄子可以把惠子说的“我通过观察发现A并不成立!”记作B。然后说:“我通过观察发现B并不成立!”……

 

没完没了无聊的文字游戏?也许吧。不过后面我们在讨论哥德尔以及图灵的证明方法是会发现这里面的相似的特性:对一个概念的指代会导致无穷甚至矛盾,就像包含集合的集合,这是个非常有趣的问题。

 

我们又要回到希尔伯特的23个问题,这一次是第二个问题(https://en.wikipedia.org/wiki/Hilbert%27s_second_problem),这是关于算术公理的一致性(consistent)问题的命题。

 

数学是不是一致的?换句话说,是不是可以证明的都是真命题?“真命题”是专业术语,但我在这里用的是直接意义。假如我们证出了假命题,例如1+1=3,数学就是不一致的,这样就会有大麻烦。

 

当然,和前面一样,希尔伯特认为答案应该是肯定的,我们缺少的只是一个证明而已。哥德尔的不完备性定理让整个数学界震惊。在介绍这个定理之前我们先了解一些数学系统的完备性是什么。如果一个数学系统是完备的,那么这个系统下的所有数学命题都可以用一组有限的公理证明或证否。

 

比如我们中学学过的欧几里得几何,我们只需要五条公理(正好五条,增之一分则太长,减之一分则太短)。然后所有的其它定理都可以由这五条公理证明出来。但是会不会存在漏网之鱼呢?也就是某个正确的命题我们无法证明它?

 

因此完备性指的是:是不是有某个公理集可以证明所有真命题?显然我们很需要完备性,否则说明存在一个真命题我们无法证明。这对于数学家来说太可怕了,这说明人类永远也无法达到真理。

 

而哥德尔告诉我们,在数学系统的一致性和完备性之中,我们只能选择其一,也就是说不存在一个系统同时满足一致性和完备性。哥德尔没有否定希尔伯特的第二个问题,但是却让所有数学家陷入两难的境地。如果任何数学系统不完备,那么我们无法追求绝对真理;而如果数学系统不一致,那更可怕,我们用一种方法证明了某个命题是真的,过两天另外一个人用另外的方法证明它又是假的,那么我们将如何自处,这样的数学我们还敢用它吗?

 

直到今天,希尔伯特的第二个命题是否成立仍然很有争议。如果结合图灵证明的计算的局限,我们放弃完备性似乎更好一点,因为这样虽然我们无法解决所有问题,但至少我们的数学工具还是一致的。而且即使数学是完备的,我们也没有办法用图灵机解决所有问题。

 

当然,哥德尔的证明非常复杂,作者也不理解,但是根据一些科普资料,证明的思路是很简单的,而且也和自指有些关系,所以这里我们简单的来讨论一下。

 

哥德尔给出了一个数学命题,翻译成白话就是“这个命题是不可证的”。

 

仔细思考一下。这个命题很奇怪,它居然谈论的是它自身——事实上,它说的是它不可证。我们姑且称它为“命题A”。现在假设命题A可证,那它就为假(因为它说它不可证),这就意味着证明了假命题——从而算术是不一致的。好了,那我们就假设命题A不可证,这就意味着命题A为真(因为它断言的就是自己不可证),但这样就存在不可证的真命题——算术是不完备的。因此,算术要么不一致,要么不完备。

 

注意这里的自指,这个命题也可以改成”我”,也就是”我(这个命题)是不可证的”。我们如果用数学语言来定义这个命题:

 

A:=A是不可证的

 

这个定义显然是循环定义的,也就是定义A需要已知A,这显然会陷入死循环。当然作者不理解哥德尔的证明过程,因此也不敢下什么结论。但是我们可以发现这类悖论经常与自指或者循环引用联系在一起。

 

本节讨论了很多计算的局限,但是并没有任何证据能证明人脑有什么地方能超越图灵机的表示能力。比如哥德尔的不完备性定理,证明的是数学系统的局限,这对于机器和人来说是一样的。所以它们并不能成为人工智能不能实现的证据。

 

量子力学

 

前面提到在牛顿之后科学家形成的决定论(宿命论)观点在20世纪20年代随着量子力学的诞生被决定性地改变了。1927年维尔纳·海森堡(Werner Heisenberg)对其做了系统阐述。就如何同时测量粒子的位置和动量而言,这里存在一种不可还原的局限性(粒子的动量是其质量乘以速度)。在其最常见的解释中,海森堡原则指明了建立宇宙的方式是任何粒子,例如光的一个光子或一个电子,无法同时具有一个确定的位置和一个确定的动量。如果你确切地知道它的速度,相应地,它的位置就是不确定的,反之亦然。这个原则并不是说当前仪器还不精确(这可以通过更好的技术来克服),相反,它表征了实在的真正构造。宏观的重的物体(如我的那台红色迷你敞篷车)在高速公路上以一个确定的速度运行时,在空间上占据着一个精确位置。但是微观事物(如基本粒子、原子和分子)则违反常识:你越精确地确定它们的位置,它们的速度就越不确定越模糊,反之亦然。

 

这个结论从根本上推翻了决定论:不管仪器多么先进,我们都无法准确的同时知道光子的位置和动量,因此也就无法完全准确的预测它的未来运动。因此相信决定论的科学家似乎听到光子在嘲笑:别浪费力气了,你们永远也无法精确的测量我,连一个光子都无法准确预测,怎么可能准确的预测整个宇宙的运作呢?

 

这样的残酷现实爱因斯坦至死都不能接受,他绝不能相信”上帝会掷骰子”。虽然他对量子纠缠与波尔的争论,至今仍然没有定论,但看起来更多人认为是爱因斯坦错了。

 

量子力学让很多相信自由意志的人找到了救命稻草,既然世界是不确定的,那么我们就肯定有自由选择的权利。很多中国”传统”的”科学”似乎一下子咸鱼翻身了,上网随手一搜量子和易经都能找到很多”论文”。

 

作者完全不懂量子力学,因此不敢发表任何意见,只是想引用物理学家理查德·费曼(Richard Feynman)说过的话:“我想我可以有把握地说,没有人真正理解量子力学。”既然还没有理解,就先不要轻易使用这里的结论来做任何无关的衍生结论。

 

但是前面的论证过程是这样的,如果世界的运作是决定的,那么大脑也是世界的一部分,因此自由意志不存在。640?wx_fmt=png,如果A不成立也不能说明B就一定成立。而且前面那些论证自由意志不存在的方法亦然是有效的,比如心理学实验证实在我们意识到我们的结论之前大脑其实已经提取做出了决策,只是把决策结果告诉”我”而已。

 

作者认为,任何观测都有可能改变实验结果。比如我们想测量某个光子在某个时刻的速度,我们显然需要用某个感觉器官来测量(不管是用显微镜还是望远镜,也不管经过多少中间处理步骤,但是最终肯定需要进入我们的感觉器官)。从整体来看,观测者也是这个世界的一个部分,他的观测行为即使很细微,也可能影响整体状态的变化。

 

我们不能完全准确预测这个世界也并不能说明这个世界就不是决定的,它只是说明我们无法掌握所有的信息,因为观测者也是这个世界的一部分。比如高考成绩公布之前,我并不知道自己得多少分,我当然可以估计一下。但是老师可能估计的更准,因为他的水平(信息)比我更高。对于我来说,我的成绩是不能很准确的预测,但是不代表我的成绩是随机的。如果我们把整个宇宙看成一个巨大的人的话,我们每个人都是可能只是这个人大脑里的一个神经元,这一个神经元不可能获得这个宇宙的所有信息。即使我这个神经元能与其他人交换信息,那也不可能是完整的最新的信息,因为在你获得A上一个时刻信息时,A也获得了B的信息,因此他的状态也发生了变化。因此我不可能准确的预测这个宇宙的变化,但是并不表示这个宇宙的变化是不确定的。

 

生命和记忆

 

生命的本质或者说意义是什么呢?这看起来非常复杂,每个人都有自己对意义的定义。《自私的基因》的作者看来,基因唯一感兴趣的就是不断重复地拷贝自身,以便在进化过程中争取最大限度地生存和扩张。基因要不断复制有两种途径,一种是当前个体寿命更长;另一种就是这个个体的后代更多。因此我们一般认为长寿是福,多子多福的观点也许就是这样来的。

 

之前我们分析,所谓的”我”,其实就是过去的记忆的集合。从某种意义上来说,一个人的意义就是他在所有其他人的记忆的集合。普通人去世后,可能他的亲戚朋友还会有一些关于他的记忆,但是随着这些人的去世,这些记忆也慢慢消失。可能他的子孙后代偶尔还能记起他的一些往事,这也许是族谱或者祭祀对于死者的意义?中国人除了利之外也非常看中名,名声越大,则他的信息会保存在更多人的记忆里。即使过了上千年,秦皇汉武仍然被很多中国人知道。因此这样可以间接的认为这个人还活着,活在我们的记忆。有好的记忆固然好,但如果不行,不能流芳百世也要遗臭万年,这可能是延长记忆极端方法。

 

人类和其它动物比较大的区别就是有文化,所谓的文化可以简单的看成基因之外的记忆。普通动物想要在未来留下更多记忆,那么只能通过生存竞争留下更多后代,把自己的历史通过基因保存在后代的记忆里。而人类除了这种途径之外,还可以通过文化的方式保存自己的记忆。比如很多历史名人也许没有了后代,但是他们的信息能通过历史更加长远的保存下来。作者在读《庄子》的时候,还能感受到他的洒脱,这可以认为是我们通过书籍跨越时代进行交流。这样看来,衡量一个人的寿命除了他实际的存活时间之外也要加入他或者其他人记忆里的时间,因此我也可以说庄子现在还是活着的。

 

语言、分工与合作

 

语言是非常重要的工具。《圣经·旧约·创世记》第11章记载,当时人类联合起来兴建能通往天堂的巴别塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。这个故事说明的语言的重要性,人类通过语言沟通就能联合起来,修建让上帝都害怕的通天塔。

 

人类的语言比地球上其它的生物要复杂的多,我们用语言来描述世界上一切事物,也包括我们内心的想法。而动物的语言只能是用于威胁竞争对手、警告同类有危险等非常有限的场景。

 

但是不管是动物的简单语言还是人类的复杂语言,其目的都是为了在多个个体之间进行沟通。我们之前介绍了自然语言处理技术,其目的是为了让机器理解人类的语言,从而实现人机交互。通过尝试实现自然语言的理解(当然现在还差得远),我们能一定程度的理解语言的本质。但是过多的聚焦于人类的语言,尤其是基于目前技术的实现层面,我们也很可能只见树木不见森林。

 

让我们暂时抛开人类的语言,假设我们想制造智能的机器人,让它们在火星上生存。我们之前介绍的技术包括计算机视觉、强化学习等等机器能够让单个的机器人能够学习走路、用手抓取物体(本书没有介绍,但这是很有趣的话题),带着这些基础技能它们去火星上生存。如果把它看成一个强化学习的话,最终的目标是什么呢?我们假设和基因类似,机器的最终目标是在火星上制造更多的机器人。

 

所以机器人首先需要能够复制自己。这也不难,机器人只要挖到足够多的铁矿和其它原材料,就可以制造出完全一样的机器人出来(当然构成大脑的神经网络是不同的,内存中的记忆也是不同的,因此每个机器人都不同的”我”的概念)。这当然更像一种无性繁殖,无性繁殖也见得一定就比有性繁殖坏,而且通过”进化”,会不会它们也能进化出性别呢?比如某些机器人只负责制造和教育”后代”(我们先暂时按照传统的观点,认为女性更重要的是生育和教育,请女权主义者原谅),而另外一类机器人做”雄性”应该做的事情,比如相互决斗,然后胜利者把自己的基因(大脑中的神经网络)遗传(复制)给后代。

 

这样的进化,显然和地球上的动物更类似,雄性的武力越来越强,而雌性生育(制造)后代越来越完美(不会制造出残次品)。它们可能慢慢的进化出简单的”语言”,比如雄性之间的威胁,使用语言威胁不战而屈人之兵,这样显然更加节省能量和避免决斗的受伤。异性之间可能也需要配合,比如雌性生物孩子之后需要去觅食(充电),因为某些区域没有太阳,需要去很远的地方充电,那么照看孩子的工作可能需要配偶帮忙。包括求助,比如自己快没电了,走不动有太阳的地方,那么”请求”同类输入一些能量。

 

随着语言沟通能力的增强,它们之间的关系也会越来越复杂。它们可能会进行更加复杂的分工:有的机器专门负责收集能量(农民?);有的机器人专门负责采集铁矿石(工人?);有的负责教育后代(教师)。把群体积累的火星知识传递给后代有两种方法:一种方法是直接把训练好的模型复制到学习者的大脑里,这种学习者只是记忆不会创新(工程师?);而另一种方法是提供数据让它们自己学习模型参数,而且以后还要进行模型进化(科学家?)。

 

它们可能形成家庭、组成公司、形成民族和组成国家。竞争是无处不在的,家庭内部、公司和国家之间都会激烈竞争。

 

在上面的假想故事中,语言发挥了重要的作用。人类之所以成为地球上最强大的种群,语言功不可没。在自然界,最大的动物群体一般也就是由几十个体组成(蚂蚁个体太小的昆虫不算),因此力量有限。而人类在几千年前就可以组成人口上百万的国家,这些国家有复杂的组织结构,他们能达成协议(也许是通过战争和各种暴力手段才能达成)修建万里长城或者金字塔这样的世界奇迹。

 

这么多人怎么就能够分工合作呢?人毕竟不像蚂蚁,在基因里已经编制好了程序——蚁后负责繁殖、工蚁负责干活、兵蚁负责战争。没有人生下来就是当兵或者就是当官的,人(尤其是年轻人)具有很强的可塑性,不同角色可以后天培养的。这当然是有好处的,因为这样的群体更加灵活,缺什么很快就能培养什么样的角色。而蚂蚁就只能靠繁殖,缺兵蚁就生兵蚁。

 

但是编码在基因里也有坏处,那就是大家都想当官而不想当兵。这显然也不行,因此要维持人类社会的秩序就更加复杂,需要暴力机器比如警察军队也需要文化教育让大家各就各位。蚂蚁虽然也有兵蚁,但绝对不是用来”镇压”某个想当蚁后的工蚁,因为工蚁永远也不会有当蚁后的想法。

 

因此从这个意义上来讲,我们通过语言等沟通工具构建了一个”虚拟”的世界,而且我们对此深信不疑。下面这段来自《人类简史》的文字很好的阐释了这个观点:

不管是基督宗教、民主还是资本主义,都只是由想象所建构出来的秩序。而要怎样才能让人相信这些秩序?

第一,对外的说法绝对要坚持它们千真万确、绝非虚构。永远要强调,这种维持社会稳定的秩序是个客观事实,是由伟大的神或是自然的法则所创造。如果要说人人不平等,不是因为汉谟拉比自己这么说,而是因为恩利尔和马杜克这两位神的旨意。如果要说人人平等,也不是因为托马斯·杰斐逊自己这么说,而是因为这是上帝造人的方式。如果要说自由市场是最好的经济制度,不是因为亚当·斯密(Adam Smith)自己这么说,而是因为这是自然不变的规律。

第二,在教育上也要彻底贯彻同一套原则。从人出生的那一刻起,就要不断提醒他们这套想象建构出来的秩序,要在一切事物中融入这套原则,不管是童话、戏剧、绘画、歌曲、礼仪、政治宣传、建筑、食谱还是时尚。举例来说,我们现在相信平等的概念,所以富人家的子弟穿起牛仔裤,觉得这是种时尚。一开始,牛仔裤是工人阶级的打扮,而如果是在相信阶级制度的中世纪,欧洲人绝对不可能有哪个年轻贵族去穿上农民的工作服装。在当时,“先生”或“女士”是贵族专属的特权称谓,甚至常常还得通过许多牺牲才能取得。但到了现在,不管信件的收件人是谁,开头的称谓一律都是“亲爱的某某先生/女士”(Dear Sir or Madam)。

 

不论是人文科学还是社会科学,人们都已经花了大把精力来解释这些想象建构的秩序会如何融入我们的生活。但这里篇幅有限,只能简单一谈。有三大原因,让人类不会发现组织自己生活的种种秩序其实是想象:

 

1.想象建构的秩序深深与真实的世界结合。

虽然这些想象建构的秩序只存在于我们的脑海里,但它可以与真实的世界紧紧结合、密不可分。像是今天大多数西方人都相信个人主义,认为每个人都是独立的个体,有独立的价值,而不受他人看法的影响。换句话说,就好像我们每个人都有自己的一道光照亮我们,让我们的生活有价值、有意义。在现代西方学校里,老师和家长会告诉小孩,受到同学嘲笑并不用太在意,因为只有他们自己知道自己的真正价值,别人不见得了解。

除此之外,这种由想象建构的虚构故事还落实到了现代建筑之中。像是理想的现代建筑会将房屋分成许多小房间,让每个孩子都能有私人空间,不用曝露在他人的目光之下,能有最大的自主权。这种私人房间几乎一定有门,而且许多家庭不只允许小孩关门,甚至还能上锁,就连父母想进去,都得先敲敲门得到允许才成。小孩对自己房间的装饰可以随心所欲,墙上可以贴着摇滚明星的海报,也可以满地丢着脏袜子。如果在这样的空间里成长,任何人都会觉得自己就是个“个体”,觉得自己的真正价值是由内而外的,而不是他人所赋予的。

然而,像是中世纪的贵族就没有个人主义这一套。他们认为,个人的价值是由社会阶级、由他人的看法所决定。在这种情形下,“被别人嘲笑”就成了莫大的侮辱。而当时的贵族也会告诉孩子,要不惜一切代价来保护名声。同样,中世纪想象中的价值体系也反映在当时实际的城堡建筑上。一座城堡几乎不可能有儿童房(就算是成人也很少有个人的房间)。

 

例如,如果是个中世纪男爵的儿子,城堡里的二楼不会有他自己的房间,他如果崇拜狮心王理查或阿瑟王,也没办法把他们的海报贴在自己的墙壁上,当然什么可以上锁的门就更别谈了。他睡觉的地方跟其他许多年轻人一样,就是在宽敞的大厅里。所以可以说他总是活在众人的目光下,总是得注意别人的观感和意见。如果在这种环境下长大,自然就会觉得:个人的真正价值是由他的社会阶级以及他人对他的看法而定。

 

2.想象建构的秩序塑造了我们的欲望。

多数人很难接受自己的生活秩序只是虚构的想象,但事实是我们从出生就已经置身于这种想象之中,而且连我们的欲望也深受其影响。于是,个人欲望也就成为虚构秩序最强大的守护者。

例如现代西方人最重视的那些欲望,都是建构在已经为时数百年的虚构故事上,包括浪漫主义、民族主义、资本主义以及人文主义。我们常常告诉朋友要“随心所欲”,但这里的“心”就像是个两面间谍,听从的常常是外面那些主流的虚构故事。于是“随心所欲”不过也只是结合了19世纪浪漫主义与20世纪的消费主义,再植入我们的脑海罢了。以可口可乐公司为例,旗下雪碧的广告词就是:“相信你的直觉,顺从你的渴望。”

甚至那些人们以为深深藏于自己内心的渴望,通常也是受了想象秩序的影响。例如,许多人都很想到国外度假。然而,这件事并没有什么自然或是明显的道理。像是黑猩猩的首领可不会想要运用权力让自己到隔壁黑猩猩的领土上度个假。而像古埃及的法老王,也是把所有财富拿来建造金字塔,把自己的遗体做成木乃伊,而不会有人想要去巴比伦瞎拼或是去腓尼基滑雪。现代人之所以要花费大把银子到国外度假,正是因为他们真正相信了浪漫的消费主义神话。

浪漫主义告诉我们,为了要尽量发挥潜力,就必须尽量累积不同的经验。必须体会不同的情感,尝试不同的关系,品尝不同的美食,还必须学会欣赏不同风格的音乐。而其中最好的一种办法,就是摆脱日常生活及工作,远离熟悉的环境,前往遥远的国度,好亲身“体验”不同的文化、气味、美食和规范。我们总会不断听到浪漫主义的神话,告诉我们“那次的经验让我眼界大开,从此整个生活都不一样了”。

消费主义告诉我们,想要快乐,就该去买更多的产品、更多的服务。如果觉得少了什么,或是有什么不够舒服的地方,那很可能是该买些什么商品(新车、新衣服、有机食品),或是买点什么服务(清洁工、心理咨询、瑜伽课)。就连每一则电视广告,也都是个小小的虚构故事,告诉你买了什么产品或服务可以让日子更好。

鼓励多元多样的浪漫主义又与消费主义一拍即合,两者携手前行,催生了贩卖各种“体验”的市场,进而推动现代旅游产业发展。旅游业真正卖的可不是机票和饭店房间,而是旅游中的经验。所以这样说来,巴黎的重点不是城市,印度的重点也不是国家,而是它能提供的经验;之所以要买经验,是因为据说这样就能拓展我们的视野、发挥我们的潜力,并且让我们更快乐。

 

也因此,如果有个百万富翁和太太吵架,和好的方式很可能就是带她去巴黎旅游旅游。这种做法让我们看到的并不是某种个人的欲望,而是他深深坚信着浪漫的消费主义。如果是古埃及有钱人和太太吵架,带着她去巴比伦度个假绝对不会是选项,反而可能是为她建个她梦寐以求的华丽陵墓,那才会让她心花朵朵开。

 

一如古埃及精英分子,现在大多数人一生汲汲营营,也都是想盖起某种金字塔,只不过这些金字塔在不同文化里会有不同的名字、形体和规模罢了。举例来说,可能是一栋近郊的独栋透天别墅,有游泳池和大庭院,也可能是一个闪闪发光的高楼公寓,有着令人屏息的美景。但很少人会真的去问,究竟为什么我们会开始想建这些金字塔?   

 

3.想象建构的秩序存在于人和人之间思想的连接。

就算假设借着某些超自然的力量,我让自己的欲望跳脱出了这个由想象建构的秩序,但我还是只有自己一个人。想要改变这个秩序,我还得说服数百万的陌生人都和我合作才行。原因就在于:想象建构的秩序并非个人主观的想象,而是存在于主体之间(inter-subjective),存在于千千万万人共同的想象之中。

要了解这一点,我们必须解释一下“客观”、“主观”和“主体间”的不同。“客观”事物的存在,不受人类意识及信念影响。例如“放射线”,就不是一个虚构的故事。早在人类发现放射线之前,放射线就已经存在;而且就算有人不相信有放射线存在,还是会受到它的伤害。像是发现放射线的居里夫人,就没想过多年研究放射性物质会伤害她的身体。虽然她不相信放射线会对她有害,最后她还是死于因为过度暴露于放射性物质而造成的再生障碍性贫血。

“主观”事物的存在,靠的是某个单一个人的意识和信念。如果这个人改变了自己的信念,这项主观事物也就不复存在或是跟着改变。像是许多小孩都会想象自己有个只有自己看得到、听得着的朋友。这个想象中的朋友只存在于孩子的主观意识中,等孩子长大、不再相信,这个朋友也就烟消云散。

 

“主体间”事物的存在,靠的是许多个人主观意识之间的连接网络。就算有某个人改变了想法,甚至过世,对这项事物的影响并不大。但如果是这个网络里面的大多数都死亡或是改变了想法,这种“主体间”的事物就会发生改变或是消失。之所以会有事物存在于主体之间,其目的并不是想存心骗人,也不是只想打哈哈敷衍。虽然它们不像放射线会直接造成实质影响,但对世界的影响仍然不容小觑。历史上有许多最重要的驱动因素,都是这种存在于主体之间的概念想法:法律、金钱、神、国家。
让我们再次以标致汽车作为例子。这家公司并不是标致执行长自己心中想象出来的朋友,而是存在于数百万人心中的共同想象。这位执行长之所以能相信公司存在,是因为董事会也这么相信,公司请的律师也这么相信,办公室里的同任也这么相信,银行人员也这么相信,证券交易所的业务员也这么相信,还有从法国到澳大利亚的汽车经销商,大家都是这么相信的。如果某一天,执行长自己不相信标致汽车存在了,他很快就会被送到最近的精神病院,还会有人来他的位子接班。
同样,不论是美元、人权还是美国,都是存在于数十亿人的共同想象之中,任何一个独立的个体并无力撼动这些概念。就算我自己下定决心不再相信美元、人权和美国,也无法造成任何改变。正因为这些由想象建构的秩序是存在于主体之间,想要改变这些秩序,就得同时改变数十亿人的想法,这绝非易事。想要达到这种规模的改变,必然需要有复杂的组织在背后协助,可能是政党,可能是思潮运动,也可能是某个宗教教派。然而,为了建立这种复杂的组织,人们就得说服许多陌生人共同合作,而这又得靠着他们都相信另一些共同的虚构故事才行得通。由此可见,为了改变现有由想象建构出的秩序,就得先用想象建构出另一套秩序才行。
举例来说,想解决掉标致汽车,我们就需要想象出更强大的东西,像是法国的法律制度。而想解决掉法国的法律制度,我们又需要想象出更强大的东西,像是法国国家的力量。而如果想解决的是法国,就还得再想象出更强大的才行。
身为人类,我们不可能脱离想象所建构出的秩序。每一次我们以为自己打破了监狱的高墙、迈向自由的前方,其实只是到了另一间更大的监狱,把活动范围稍稍加以扩大。

前面讨论的是语言在人类社会化中的作用,更多的是从宏观的角度解释它的必要性。那么语言和自我意识的产生有什么关系呢?根据前面的讨论,作者认为意识只不过是大脑把计算的某些场景和结果存储在某个地方而已,这可以和Deep Q-Learning的Replay Buffer进行对比。在Replay Buffer里存储了很多的(s, a, r),用于以后的训练。当然,这些内容是我们经历过的重要记忆,我们在老的时候还会清晰的记得年轻时的一些重要经历。这也许是意识,但这仍然很难是”自我意识”。读者可能会认为计算机如果存储了类似的东西,也能算一定程度的意识,但是它明显没有”自我”的概念。没错,如果是单个的智能机器,确实是没有”自我”的概念,而且也没有必要有”自我”的意识。

 

自我的意识是跟语言沟通密切相关的,重复一下前面的观点,作者认为所谓的”自我”只不过在大脑的某个区域存储了他人通过语言表达出来的对”我”的评价。需要注意,这里”语言”指的是广义的语言——任何用来交换信息的方式。除了常见的声音语言,也包括点头、微笑和手势等身体(视觉)语言。

 

如果把表情也看做一种语言的话,那么情感的作用也能一定程度得到解释。我们为什么需要情感呢?前面分析过,情绪不过是大脑的某种状态,比如牙痛,大脑进入”疼痛”的状态,我们可能流露出痛苦、悲惨的表情。如果世界上只有一个人,那么我们可能没有必要改变表情。我们的痛苦表情是希望其他人能够看到它(这等价于我们对他说我很痛),其他人知道”我”处于”疼痛”状态,也许会想办法帮助我,比如找牙医或者至少从精神层面安慰我。注意:安慰从物理的角度并不能缓解疼痛,但是安慰表示至少是有人关心我们的,他现在帮不了我但是也许过一会他能找到更好的办法。这可能也会减轻我们主观和感受上的痛苦程度。

 

如果这么说,我们的宠物向我们撒欢或者哀嚎也是我们和动物之间的语言交流,因此宠物也是有自我意识的。对于认为动物没有自我意识的人来说,也可以用类似的方法推论人没有自我意识。所以说绝对意义上的自我意识是不存在的,所谓的自我意识不过是大脑的某种状态,这种状态会改变我们的表情或者让我们嘴巴发出某种声音(动物的哀嚎或者人类用凄凉的乐器弹奏隔江犹唱后庭花),然后另外一个物体能够接受到这种信息,了解做出表情的动物这种状态。它在了解了表达情感的动物的内部状态后可能帮助它做一些事情,比如帮它解决问题或者至少做出怜悯的表情回应它——我已经接受到你的信号了,而且我也在想办法,虽然现在还没有找到,但是我能感同身受你的痛苦,这将驱使我做出努力来帮你解决问题。从这个角度来看,广义的语言对于自我意识的产生是有着至关重要作用的。这可能也是裂唇鱼这种我们看来并不”高级”的动物却能通过镜子试验的原因。

 

无限和连续

 

另外有人会这么来”证明”人工智能无法实现:目前的计算机都是数字计算机,它只能处理有限的离散的数据,而物理世界是无限的连续的,因此人工智能无法实现。

 

对于物理世界是无限和连续的观点,我们很多人都习以为常了,也许是我们学习的物理课和数学课后自然得出的结论。毕竟我们从小学就开始知道除了有理数,还有无理数和实数。我们学微积分的时候碰到的函数大都是连续的,一笔画下来多么流畅,哪像计算机里的绘图都是一个一个点在渲染!但是量子物理告诉我们,能量很可能是离散的。那么时间和空间呢,会不会也是离散的呢?

 

有人会说,如果世界是离散的,计算机也只能处理离散的信息,而我们的大脑可以除了连续的信息,这不更加证明了人类超越计算机的能力吗?

 

但是作者认为,我们所谓的连续和无穷也许只是人类大脑对多到处理不过来的巨大数字的一种抽象而已。

 

这可能很难接受,如果宇宙的原子个数是有穷的,那么比如有个最大值M。我们的自然数似乎也没有必要无穷,最大为M好像就可以了。这M原子假设都有N个位置(空间),那么总共应该不超过640?wx_fmt=gif种可能,这虽然非常大,但也是有限的。那我们的数学是不是可以定义在这个有限的集合上呢?

 

读者可能会说,如果函数都是离散的,那么我们怎么用微积分呢?也许连续、无穷和微积分只是我们有限的大脑抽象出来的一种数学语言,它可以做一系列复杂的运算。但是如果世界是离散的,我们在最终应用前把计算的连续结果”量化”到离散的空间,似乎也不是不可以。

 

古代人没有无理数甚至负数的概念,所以我们不能说他们的大脑只是个计算机而没有灵魂,而我们现代人的大脑有了这些概念就有了灵魂。当然有了这些复杂的抽象使得我们更加聪明,我们能够更加精准的计算天体的运行轨迹,而古人只能用上帝来解释日月星辰。

 

下面我们来讨论著名的芝诺(Zeno)的悖论。芝诺悖论是由古希腊哲学家芝诺(Zeno)提出的一组悖论。其中的几个悖论还可以在亚里士多德(Aristotle)的《物理学》(Physics)一书中找到。我们这里讨论其中的阿基里斯与乌龟的悖论(Achilles and the tortoise Paradox)。这个悖论为:在跑步比赛中,如果跑得最慢的乌龟一开始领先跑得最快的希腊勇士阿基里斯,那么乌龟永远也不会被阿基里斯追上。因为要想追到乌龟,阿基里斯必须先到达乌龟现在的位置;而等阿基里斯到了这个位置之后乌龟已经又前进了一段距离。如此下去,阿基里斯永远追不上乌龟。

 

现实世界里人当然很容易追上乌龟,但是这个悖论却值得我们深思。我们首先准确的来定义这个问题。这里的假设是时间和空间是无限可分的,这显然是我们很多人赞同的,我们在写下公式640?wx_fmt=png时,我们认为这个时间t可以是任意的实数。为了简单,我们假设阿基里斯与乌龟都是一个点,追上的定义是指这两个点在空间上重合。按照我们的计算方法,假设阿基里斯与乌龟的距离是1m,而阿基里斯的速度是2m/s,乌龟的速度是1m/s。我们可以这样计算:现在它们的距离是1m,那么在经过640?wx_fmt=png后他们就会在空间上重合。

 

那么芝诺为什么认为阿基里斯追不上乌龟呢?他是这么思考的:阿基里斯想我们现在的的距离是1,我的速度是2,那么0.5s之后我就到底乌龟的地方了。当然只是有问题的,因为他忽略了乌龟也在移动,当他到达乌龟原来的位置时,乌龟也移动了0.5m。阿基里斯没有放弃,他想现在还差0.5m,根据我的速度0.25s后就能到底它现在的位置。可惜当他花了0.25s到达乌龟现在的位置后乌龟又向前移动了0.25m。我们可以把这个场景一种重复下去,因为空间可以无限划分,这个过程(时间)可以无限重复下去,所以阿基里斯”永远”追不上乌龟。

 

对于一个生活在没有极限概念的人来说,要找出芝诺悖论的bug在哪里其实是很困难的。芝诺提出这个悖论的目的是想”证明”时间和空间并不是无限可以划分的,也就是说时间和(或)空间是有限的离散的。如果时间和空间是离散的,那么就不存在上面的悖论了。

 

当然,根据现在我们的对于无穷级数的理解,640?wx_fmt=png

 

我们可以指出这个悖论的关键点是芝诺没有无穷和极限的概念,他认为无穷多个(正)数的和一定是无穷(这是很自然的想法),但是我们知道有些无穷个项的和是收敛的,比如上面的这个无穷级数。

 

当然,我们通过引入无穷级数的概念,我们可以解释得通这个悖论。但是时空是否一定就是连续的呢?有没有可能物理世界的时刻就是离散的,连续、无穷和极限只是我们引入的一种概念呢?当然这些概念是很了不起的,它们可以用来解决很多问题。但不管在草稿纸上怎么计算,我们在实际使用计算结果时肯定是离散的。比如我们要控制火箭的轨迹,如果我们的公式算出来的加速度是1.234532343245838283243243254673777775….,那么我们实际的控制系统肯定是需要变成一个离散的数值,因为我们的机器状态只能是有限的。也许读者会说:你看,这不说明了人超越机器的地方了吗?人脑里是有无穷的连续的实数,而计算机里只有整数或者有理数。但是如果承认之前大家结论——”我”,意识,不过是大脑的某种状态。我们也可以这样来解释无穷这些概念——大脑的神经元是有限的,它们的某种特殊的状态让我们意识到了无穷或者极限的概念而已。

 

混沌现象

 

蝴蝶效应(The Butterfly Effect)是指在一个动力系统中,初始条件下微小的变化能带动整个系统的长期的巨大的连锁反应。有一部著名的科幻电影也叫蝴蝶效应,主角不断地穿梭到以前,希望改变未来,但总是让事情变得更糟糕。它告诉我们一个小小的改变会导致所有事情都往不可预知的方向发展的道理,哪怕是你不小心折断了一根树枝,都有可能改变了整个未来,这就是电影想要告诉我们的道理。是的,也许蝴蝶扇了一下翅膀,吸引了我们父亲的目光,导致他错过了我们现在的母亲,那我们是否还存在呢?

 

蝴蝶效应是一种混沌现象,混沌现象也是被用来攻击决定论的重要工具,下面我们简单的介绍一下。以下文字来自《复杂》:

 

第一个明确的混沌系统的例子可能是19世纪末由法国数学家庞加莱(Henri Poincaié)给出。庞加莱是现代动力系统理论的奠基者,可能也是贡献最大的人,大力推动了牛顿力学的发展。庞加莱在试图解决一个比预测飓风简单得多的问题时发现了对初始条件的敏感依赖性。他试图解决的是所谓的三体问题(three-body problem):用牛顿定律预测通过引力相互作用的三个物体的长期运动。牛顿已经解决了二体问题。但没想到三体问题要复杂得多。在向瑞典国王表示敬意的一次数学竞赛中,庞加莱将其解决了。竞赛主办方提供2500瑞典克朗奖励解决“多体”问题:用牛顿定律预测任意多个相互吸引的物体的未来运动。提出这个问题是为了确定太阳系是否稳定,行星是会维持还是会偏离目前的轨道?庞加莱想先试着解决三体问题。

 

他并没有完全成功——这个问题实在太复杂了。但是他的尝试很精彩,所以最后还是赢得了奖金。牛顿发明了微积分,而庞加莱为了解决这个问题也创建了一个新的数学分支—代数拓扑(algebraic topology)。拓扑学是几何学的扩展,正是在研究三体问题的几何结果的过程中,庞加莱发现了对初始条件的敏感依赖性。下面是他对此的总结:

如果我们能知道自然界的定律和宇宙在初始时刻的精确位置,我们就能精确预测宇宙在此后的情况。但是即便我们弄清了自然界的定律,我们也还是只能近似地知道初始状态。如果我们能同样近似地预测以后的状态,这也够了,我们也就能说现象是可以预测的,而且受到定律的约束。但并不总是这样,初始条件的细微差别有可能会导致最终现象的极大不同。前者的微小误差会导致后者的巨大误差。预测变得不可能……

换句话说,即便我们完全知道了运动定律,两组不同的初始条件(在这里是物体的初始位置、质量和速度),即使差别很小,有时候也会导致系统随后的运动极为不同。庞加莱在三体问题中发现了一个这样的例子。

 

直到电子计算机出现之后,科学界才开始认识这类现象的意义。庞加莱远远超越了他所处的时代,他意识到对初始条件的敏感依赖性将会阻碍对天气的长期预报。他的远见于1963年被证实,气象学家洛伦兹(Edward Lorenz)发现,即使是很简单的计算机气象模型,也会有对初始条件的敏感依赖性。现在虽然有了高度复杂的气象计算模型,天气预报也最多只能做到大致准确预测一个星期。目前还不清楚这个局限是否是天气的混沌本质导致的,也不知道通过收集更多数据和构造更好的模型,可以将这个局限推进多远。

 

这个现象意味着,对于混沌系统,拉普拉斯式的完美预测不可能实现,因为我们的观察不可能完全准确,初始状态的细微差别会导致未来(甚至不是太遥远的未来)的巨大差别,这就是说我们不可能准确的预测混沌系统的未来。这是一个非常深刻的负面结论,它与量子力学一起,摧毁了19世纪以来的乐观心态——认为牛顿式宇宙就像钟表一样沿着可预测的路径运行。

 

关于混沌现象,作者的看法是:第一,物理世界不见得是连续的,因此可能并不存在混沌现象,混沌现象只是离散的世界被我们在大脑中引入连续的概念之后带来的衍生概念而已。第二,我们不能100%准确的预测(测量)世界并不代表这个世界是随机的不确定的,只不过这是我们认识论的一个上限而已。就像前面的解释,我们都是这个宇宙的一部分,无论通信速度多么快,我们获取的永远不可能是完整同时又是及时的信息(也许我们以后有能力获取所有的信息,但是等我们获取到之后事情已经结束了,我们永远需要在规定的时间前交作业)。

 

主观和客观

 

对于科学来说,需要避免主观。在经典的物理世界里,我们假想自己是一个独立于这个世界的观察者,在默默的观察这宇宙的万物但不留下任何痕迹。这样的角色实际上是不存在的,因为任何的观察都会对世界产生影响。我们可以把观测分为两类,一类时实时的观测,它会对实验产生影响;而另一类是延迟的观察。比如我们用激光实时测量汽车是否超速,汽车的速度理论上会受到激光的影响。当然一般情况下这个影响微乎及微,我们可以忽略不计,但是在某种极端情况下,测量可能会带来不可忽视的影响。而延迟的观察不会对实验造成影响,但是可能会丢失信息,而且无法在实时的决策中使用,只能用于事后诸葛亮式的分析。

 

虽然我们期望自己能够客观,但是绝对的客观是不存在的。我们不管使用多么先进的仪器测量,最终都必须转换成我们的五种感觉器官可以接受的信号。比如最常见的是视觉信号,因此测量总是受到主观因素影响(当然如果认为人的意识最终由物质决定,那么最终都是客观的)。读者可能说不对啊,比如我们用身高测量仪器来测量一个人的身高,电脑的读数就是一个数值,不管是张三来读还是李四来读都是一样的。注意:这里的张三和李四都不是观察者了,这里的观察者是身高测量仪器,张三和李四只不过通过显示屏读取测量结果而已。就像某个天文学家用望远镜看到了遥远的恒星然后告诉我们一样。如果换一台身高测量仪,那么读数肯定不会完全一样。

 

事实上不同生物的感觉器官差异很大,比如人眼的时间分辨率比猫要低,每秒二十四帧就能感受到连续的画面了,但是猫看我们的电视就就像看一页一页翻的幻灯片。即使同样是人类,色盲的人的颜色分辨能力就比不上普通人。因此抛开内心,是否存在一个”客观”的外部世界是有争议的。我们看到的五彩斑斓的世界在蝙蝠看来完全是不同的色彩,但是它通过超声波的反射”看到”世界肯定是另外一番景象,它们也许有完全不同的色彩定义。我们可能永远也无法”完全”理解蝙蝠对于空间以及色彩的定义。

 

因此从某种意义上讲,我们人类都是主观的,并不存在客观的人类。即使有一个客观的世界,那么任何人和生物都无法一窥其全貌,所有生物都只能是盲人摸象的获得自己对这个世界的认识。一切唯心造,慧能法师说,”不是风动,亦非幡动,只是心动!” 没错,如果没有我们的感觉器官,那么这个世界也就不存在了,这个世界都是我们的感觉器官感受到的。有些是直接的感受,而另外一些是通过大脑的运算获得的间接感受,有些感受继承了我们先祖的文化。

 

幸福感、Reward和虚拟世界

 

人活得快不快乐,这是一个古老而又复杂的话题。显然,快乐与否与物质条件有一定关系。丰衣足食肯定(至少大部分情况)要比忍冻挨饿要快乐。但是并不是物质条件提高了幸福感就一定能提高。也许我们今天的普通人的物质生活水平超过了古代的皇帝,比如皇帝也不能玩手机开空调,但是我们会觉得比古代的皇帝幸福吗(当然皇帝也许很不幸福,我们这里只是从一般人的角度来看皇帝)?显然答案是否定的。我们会说,皇帝多威风啊,人人都怕他,说一不二,想做什么(基本)能做什么。没错,这里的威风、别人害怕都是他幸福感的一部分。因此人作为一个社会性的动物,除了生理上的幸福感,更多的幸福感来自于他人的看法。

 

我们之前在强化学习讨论的Reward,更多的是针对某一个具体的任务,比如下棋赢了reward是1,输了是-1而其它状态都是0。基因最终的目标是为了尽可能多的繁殖,尽可能长时间的存在。这是在微观层面上的,体现在宏观层面上就会非常复杂了。比如饿了吃渴了喝困了睡等基本生理需求会有reward,同类夸奖和批评也会有reward。有些时候还会冲突,比如从基因的角度吃得越多越好,这是亿万年来生物进化的结果,因为在人类之前大部分生物都处于饥饿状态。但是现代的人类获取食物的能力远远超过了他需要的,因此肥胖这种动物世界罕见的疾病困扰着很多人。从理智的角度,我们知道我们需要控制饮食,但是从生理角度我们又想不停的吃吃吃。它们的冲突有带来烦恼,这种烦恼估计大部分动物不会遇到。如果从这个具体案例来说,人类也不见得比动物快乐,至少它们没有这样的烦恼。

 

动物的不快乐大部分来自于基本的生理需求,比如吃不饱、没有安全感。不安全感通常是天敌带来的而很少是同类带来的,当然也有少部分是同类竞争带来的,比如求偶决斗失败的痛苦。

 

而现代人类大部分痛苦其实是来源于精神层面,有人即使考试第二仍然会痛苦原因是还有人比他考的更好。而且现代社会信息传播的很快,我们可以比较的对象太多了,而古人的信息很闭塞,对于老百姓而言,皇帝怎么穷凶极欲大家并不知道。

 

因此传统中国人的快乐哲学是更多关注内心和精神层面的,这在西方世界看来多少会有点消极。比如知足常乐,你也可以认为是不思进取,所谓的比上不足比下有余。如果今生难以获取快乐,我们还可以寄希望于死后或者来生。这可以认为是人类在长期受压迫的情况下需要的一种精神安慰,早期的人类社会更加血腥和暴力,生下来是下等人很可能一辈子都是下等人。这样的精神安慰至少可以给人活下去的勇气。

 

通常生理的Reward是和感觉器官相关连的,它们经过进化被设定为了一个合理的值——过少的Reward不足以激励人追求而过多的Reward可能让人沉湎其中。但是我们发现某些化学物质能够改变这个Reward,比如毒品。通过使用这些化学物质可以让我们获得超出合理的快感,因此我们会上瘾。但是任何东西需要一个合理的范围,过量的Reward让我们抛开了本来更加重要的事情。

 

除了化学的毒品,人类社会还有很多精神的”鸦片”,这些都是”虚拟”世界的产物。因为是虚拟的,所有获取的成本通常较低。一种就是游戏,前面我们提到,人类的很多幸福感来自于他人的认同。在现实世界里我们可能很难获得成就感,但是在游戏的虚拟世界里,这种成就感可能更加容易获得。当然一个好的游戏其实是要尽量模拟真实世界——在游戏中获得成功也需要付出努力和技巧。但是游戏公司为了挣钱,通过廉价售卖的方式来让人获得成功。比如收费的用户可以”破坏”正常的升级约束——这就像现实社会的通过行贿上司来得到更高的职位。

 

如果以后VR的技术更加成熟,人类更多的活在自己的虚拟世界里,每个人甚至能够随意的修改虚拟世界的规则从而获得快感和成就感,这会不会是一种灾难呢?

 

常识

 

常识(common sense)是指普通社会上智力正常的人皆有或普遍拥有的知识。因为人类的知识很多是用自然语言的文本来描述,因此理解常识也是自然语言理解的目标之一。现在的智能机器普遍缺乏常识,因此很多人认为机器无法获得常识,所以人工智能不能(很难)实现。作者赞同现在的智能机器确实没有常识,而且研究也没有太多进展。在AI的早期的符号主义者很早就关注了知识的表示,他们试图用符号来表示知识,但是最终并没有太多进展。进来随着知识图谱的出现,符号主义的方法又有了复兴的迹象,但是他们也引入了很多联结主义的东西,包括神经网络。作者本人不是很看好用符号来表示知识这个方向,原因是因为符号只是人类引入的记号,本身并没有什么意义,与符号关联的现实世界才是有意义的。

 

虽然作者也是做自然语言处理相关工作,但是作者认为要实现机器真正理解人类语言必须要跳出语言符号本身才可能实现。因此作者在工作的时候也常常很痛苦——明明认为现在的方法不能从根本上解决问题,但是目前又只能这样做。

 

我们人类的知识纷繁复杂,这是几千年以来逐步积累而获得的关于我们外部世界和我们内心世界的各种知识,这些知识互相关联甚至互相矛盾,随着时代的变化而变化。我们很难准确的定义哪些属于常识,也很难在全球甚至在一个国家内达成共识。每个人都有自己的常识库,同一个问题答案也可能不同。不过理论上我们仍然可以在某个固定时刻选择一个固定人群,然后统计所有的常识根据拥有这个常识的人数从高到底进行排序。

 

那我们能不能用这种方法把top-N的高频常识列举出来然后灌输到机器里呢?作者觉得这是不可行的,原因倒不是因为这些工程过于庞大,而是因为我们现在的方法根本无法表示这些常识(知识)。

 

自然语言显然不是能够精确描述知识的语言,那么我们能不能制造某种能够准确描述常识的机器语言呢?比如各种语义描述语言,一阶逻辑二阶逻辑等等。作者认为并不可行,根据前面作者的前面的观点,所谓的语言只不过是沟通的工具,我们的很多知识确实也是使用自然语言来编码的,但是最终人类需要理解这些知识需要一个学习的过程。这个学习的过程其实是把自然语言描述的知识用适合的方式编码到大脑的神经网络里。

 

不管人类的知识多么复杂,但归根结底都是人类的基本感受。我们有上下的方位概念,这是因为地球有重力,虽然从火星上的人看来我们可能是倒过来的。如果严格从物理意义上来说上可能是意味着远离地心而下则是接近地心,但是我们并不会这么想。我们常识里包括很多名词(实体),一部分来自物理的世界,比如太阳和地球,山川与河流。而另外一些则是作为社会化群体衍生的概念,比如父母、家庭、学校、公司等等。这些实体又包含复杂的关系,包括我们的情感和文化,比如中国人看到月亮会想起嫦娥,而西方人肯定不会。

 

下面是我观察到的我女儿的成长过程,在一两岁的时候她会训练她的身体,学习控制四肢,走路和奔跑,学习基本的生活能力——吃喝拉撒睡,认识现代人类社会的常见物体——椅子桌子叉子筷子,了解基本的社会关系——爸爸妈妈等亲人。在这个过程中形成基本的语言能力,把具体的物体和词汇建立联系并且学习语法表达基本需求,比如”我饿了,想吃东西”。以后她可能会学习越来越复杂和抽象的概念——数学、文学、物理、化学、社会学等等。

 

我们虽然用自然语言编码了很多这里抽象和复杂的概念,但是最基本的概念,比如大小,高低等却是无法在字典里表示出来的。我们去查任何一本词典,”高”是什么意思?——”从下向上距离大”。那”下”呢?——”方位词。位置在低处的”。那”低”呢?——”从下向上距离小”。这又回到”下”了。所有的词典到最基本的语义时都是循环引用,都是假设我们已经知道某些基本的原子语义了。而这些基本的原子的语义目前机器是无法理解的,这些知识需要在小的时候就通过实践学会。

 

无论最终的概念多么抽象,比如微积分的概念,它都是一系列其它抽象概率组合起来的,而其它抽象概率又是有另外一些概率组合起来。最终它一定是和我们最基本的某种感受和建立其联系,也许最下层的联系和微积分这个概率需要经过成千上万个其它概念的连接。

 

如果真的想让机器”理解”人类的语言和常识,我觉得应该先让它有最基本的概念,拥有基本的人类能力。我们需要构造的可能不只是一个”大脑”,而且还需要包括四肢和各种器官,这样它才有可能”理解”人类的情感。

 

我们最先研究的应该是基本的视觉和听觉(不包括语言)系统,基本的运动和平衡能力,真正的让机器实现三岁小孩的智力。读者可能会认为我们之前学过的深度学习已经能够解决视觉的问题了,比如图像分类和目标检测的准确率都很高了。但这其实是远远不够的,比如对于小孩来说,看到一只猫不是简单的识别这是一只猫,还要知道它的表情,它在做什么动作,预测它下一步可能要做什么。它朝哪个方向运动,运动的快慢怎么样。

 

我们现在的AlphaGo可以击败人类冠军,但是它还无法轻松的用手拿起一枚棋子放到合适的位置。我们一直认为很难的事情比如下棋、艺术和数学也许并没有想象的那么困难,而我们认为很简单的控制手指也并没有想象中简单,这是地球生物亿万年进化的结果。也许我们应该把研究的方向从语言、逻辑、情感等”高级”智能变为平衡控制、空间感知等”低级”智能才能更快的实现智能?

 

智能和生命

 

这样看来,所谓的智能其实并不是人类特有的东西,也不是深藏在灵魂里的非物质的神秘东西。它只不过是生命在进化过程中的必然产物而已,进化的结果必然就会产生越来越智能的生命,因此生命就是智能的。那什么是生命呢?作者这里主要引用薛定谔在《生命是什么》的观点。

 

热力学第二定律告诉我们,万物都有向着混乱和无序发展的趋势。比如一个炽热的铁块,会自动的将热量传递进周围的环境中,让整个系统变得更加混乱。一滴墨水滴入一杯清水中,随着时间的流逝,这滴墨水会变得越来越混乱直至均匀地分散在整杯水中。这时,生命的特殊性就体现出来了:生命具有极其有序的结构,进行着极其有序的生命活动,并且可以通过繁衍创造更多相似的有序个体。可以这么说:虽然我们的宇宙正在走向混乱和无序,但生命却在其中发展出了极高的秩序性。

 

在物理学中,我们用熵来衡量一个系统的混乱程度:一个系统越混乱,它的熵也就越大。宇宙的熵是在不断地增加的,而生命却在其中保持着低熵的状态。那么生命是怎么做到这点的呢?答案显而易见:那就是通过不断地进食。生物学上对这个过程有个专门的词汇,叫做新陈代谢。

 

生物作为我们宇宙的一部分,它自身的混乱程度也有着不断增加的自然趋势。生物的每次一呼吸,每一个动作,都在产生着熵,正是这些熵将生物体一步步的带向死亡。为了维持生存,生命必须设法持续地摄入秩序,也就是负的熵,同时排放代谢废物和废热,以这种方式将产生的熵释放回环境当中。因此,生物进行新陈代谢最根本的目的,是摄入秩序。也就是说,生命以负熵为食。

 

接下来,我们将从熵的角度重新认识我们所在的生物圈:我们的太阳是一个熵极低的存在,是地球最大的负熵来源。地球接受着来自太阳的太阳光,并将这些低熵太阳光转化为了高熵的红外线再辐射回宇宙空间。在这个过程中,植物通过光合作用汲取了其中的一部分负熵,高等动物则会通过进食获得原本存在于植物体内的负熵,而动物的排泄物虽然被大大地降解,但其中的负熵仍然有一定的余量,因此植物和微生物依然可以利用它。所以,从根本上讲,所有的生物都是在靠着汲取负熵来维持生存,而整个生物圈其实是一个负熵“传递”的过程。

 

生命这种从合适环境中汲取负熵的“天赋”,与其所具有的遗传物质有着密切的关系。虽然遗传物质和宇宙中的其他物质一样,只是一团原子而已,但这团原子本身具有极低的熵,最终可以通过复杂的物理和化学过程,生产出蛋白质等物质。这些物质构成了一个个细胞,并十分严格地控制着各项生命活动。

 

其实,生命的诞生或许也与熵有关:在机缘巧合之下,有一系列特殊的化学反应发生在了一个小的范围内,不断汲取环境中的负熵,并将产生的熵排放回环境当中。这就相当于在一个小的范围内创造了一个稳定的低熵系统,也就是生命的雏形。这么看来,生命就像是一台纯粹的机器,遵循着宇宙运行的规律。

 

这样,我们就回到了最初的问题:生命是什么?生命是一个美好的巧合。是宇宙在奔向熵最大的死寂过程中,为自己创造的观众。

 

如果按照薛定谔的观点,生命的意义就是宇宙在奔向熵最大的死寂过程中逆熵而行,这很像中国古代传说的夸父追日,明知不可为而为之,让人有些伤感。结果是注定的悲剧,但是过程构成了生命的宏伟篇章。我们每一个人作为历史长河中的一滴水珠是否应该感动呢?

 

(*本文仅代表作者观点,转载请联系fancyerii@gmail.com)

 

精彩推荐

「2019 Python开发者日」精彩议程全揭晓。这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

 

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值