人工智能究竟能否实现
目录 作者观点摘要 证明存在? 任务分类 情绪(Emotions)和情感(Feelings) 美和艺术 意识(Consciousness) 自我意识 自由意志(free will)...,接下来具体说说因此它实现的肯定不是真正的智能
本文讨论人工智能是否可以实现这个哲学问题 作者 | 李理,环信人工智能研发中心vp,十多年自然语言处理和人工智能研发经验。主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设计与研发。
计算的局限
另外一个用来质疑人工智能的是停机问题,它证明图灵机没有能力判定所有问题能否停机。
我们先简单的介绍一下图灵机相关的概念,因为篇幅和本书内容限制,这里不会介绍太多细节,感兴趣的读者可以参考形式语言与自动机或者计算理论等相关书籍,前面介绍的有限状态自动机和上下文无关文法都是这门课程的内容,因为与语音识别和自然语言处理有关,作者在本书前面章节做了介绍。
深度学习也有相关的神经网络图灵机(Neural Turing Machine),不过作者认为这些模型目前在实际应用中并没有太多用处,所以就没有单独介绍。
1900年,在巴黎举行的第二届国际数学家大会上,希尔伯特做了一次堪称数学史上影响最为深远的演讲,题目是“数学问题”。
在演讲中,希尔伯特列举了23个他认为最具重要意义的数学问题,这些问题被后人称为“希尔伯特问题”。
希尔伯特第十问题是所有23个问题中最短的一个,但从某种意义说,也是最大的,尤其是对计算机科学而言。
下面内容主要参考了这篇文章(https://blog.csdn.net/linyt///4296663),它翻译自这篇文章(http://www..com/1612.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?=gif
和640?=gif。需要解决的问题是:给定方程 P(x,y,…)=0,如何判定方程在整数域内是否有解,如果有,如何高效找到所有解?这类问题称为丢番图方程。
一开始人们研究比较特殊(简单)的一类丢番图方程,形如:
640?=png
我们知道x2+y2=z2x2+y2=z2是有整数解的,它的解为:
640?=png
但是当n2时,640?=gif是否有整数解呢?这就是费马最后定理(费马大定理),这个定理说n2n2时方程是无整数解的。
费马把该问题写在丢番图著作中某页的空白处,并写道 “…… 我已想到一个极不平凡的证明,但苦于此处空白太小而没法写下 ”。
德国佛尔夫斯克曾宣布以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?=png
其中:
Q 有限的状态集合,包含3个特殊状态:初始状态640?=gif,接受状态640?=gif和拒绝状态640?=gif
Γ带字母表,包括特殊空白字符B
Σ输入字母表,包含在Γ里
δ状态函数,δ:Q×Γ→Q×Γ×L,R
图灵机的工作过程如下,一开始是带子上的cell里都是空白符号B,接着我们把输入字符串放到带子上,从靠前个cell开始,此时带子的头部指向靠前个cell,状态处于640?=gif。
此时图灵机读入靠前个字符,根据δ,进入新的状态,并且修改靠前个cell的内容,然后头部指针左移或者右移。
如果当前指针在最左边靠前个cell,那么左移后指针保持不变。
如果图灵机进入640?=gif,那么就停止运行,接受输入字符串;如果进入640?=gif,那么也停止运行,拒绝输入字符串,否则一直运行下去。
因此图灵机给定输入后有两种可能:停机或者不停机。
能停机则表示图灵机能够判断这个问题(输入),停机又分成接受和拒绝两种可能。
我们可以通过一种技巧把上面定义的图灵机编码成一个字符串(我们现在写的Python程序就是一个很长的字符串,我们可以把它编译成机器指令,这也是一个字符串,而CPU就是一个图灵机,它可以执行这些指令),然后用另外一个图灵机来模拟上面的图灵机的执行。
这个模拟别人的图灵机叫做通用图灵机,它可以实现任意图灵机的算法。
之前我们的图灵机的”算法”是固定的,只有输入可以变化,因此这个图灵机只能解决一个问题,比如一个图灵机可以实现排序,另一个可以实现复制。
而通用图灵机的算法就是模拟其它图灵机,因此如果我们把排序图灵机的代码和输入传给通用图灵机,则这个图灵机就对这个输入做排序,而如果我们传入的是复制图灵机的代码和输入,则通用图灵机会实现复制的功能。
这和现在的CPU很像,我们把需要执行的代码和输入放到指定的位置,那么CPU就执行我们代码对应的算法。
执行完了之后又可以执行其它程序,因此我们不需要买一台电脑用于排序,再买一台电脑用于去重,…。
希尔伯特的梦想是:我们能找到一个”通用”算法,给它任意算法(问题)和输入,这个”通用”算法能够在有限的时间内判定给定的算法和输入能否停机(也就是在有限的时间内运行完成)。
图灵证明了这样的”通用”算法是不存在的。
人(假设也可以看成一个计算机器的话)能实现这种”通用”算法吗?有读者可能会马上跳出来说:可以啊,我昨天给同事做code ,我就可以判定他的代码不会死循环,一定会在有限时间内结束。
先不说你的判定是否有问题,是否漏过了一个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§: if H(P,P) = True: # 死循环 while True: pass else: True
注意,这个U的参数P是一个函数,然后调用H(P, P),也就是让H来判断函数P的输入也是P的时候是否停机。如果H判定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: 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: 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..org/wiki/'),这是关于算术公理的一致性()问题的命题。
数学是不是一致的?换句话说,是不是可以证明的都是真命题?“真命题”是专业术语,但我在这里用的是直接意义。假如我们证出了假命题,例如1+1=3,数学就是不一致的,这样就会有**烦。
当然,和前面一样,希尔伯特认为答案应该是肯定的,我们缺少的只是一个证明而已。哥德尔的不完备性定理让整个数学界震惊。在介绍这个定理之前我们先了解一些数学系统的完备性是什么。如果一个数学系统是完备的,那么这个系统下的所有数学命题都可以用一组有限的公理证明或证否。
比如我们中学学过的欧几里得几何,我们只需要五条公理(正好五条,增之一分则太长,减之一分则太短)。然后所有的其它定理都可以由这五条公理证明出来。但是会不会存在漏网之鱼呢?也就是某个正确的命题我们无法证明它?
因此完备性指的是:是不是有某个公理集可以证明所有真命题?显然我们很需要完备性,否则说明存在一个真命题我们无法证明。这对于数学家来说太可怕了,这说明人类永远也无法达到真理。
而哥德尔告诉我们,在数学系统的一致性和完备性之中,我们只能选择其一,也就是说不存在一个系统同时满足一致性和完备性。
哥德尔没有否定希尔伯特的第二个问题,但是却让所有数学家陷入两难的境地。
如果任何数学系统不完备,那么我们无法追求绝对真理;而如果数学系统不一致,那更可怕,我们用一种方法证明了某个命题是真的,过两天另外一个人用另外的方法证明它又是假的,那么我们将如何自处,这样的数学我们还敢用它吗?
直到今天,希尔伯特的第二个命题是否成立仍然很有争议。如果结合图灵证明的计算的局限,我们放弃完备性似乎更好一点,因为这样虽然我们无法解决所有问题,但至少我们的数学工具还是一致的。而且即使数学是完备的,我们也没有办法用图灵机解决所有问题。
当然,哥德尔的证明非常复杂,作者也不理解,但是根据一些科普资料,证明的思路是很简单的,而且也和自指有些关系,所以这里我们简单的来讨论一下。
哥德尔给出了一个数学命题,翻译成白话就是“这个命题是不可证的”。
仔细思考一下。
这个命题很奇怪,它居然谈论的是它自身——事实上,它说的是它不可证。
我们姑且称它为“命题A”。
现在假设命题A可证,那它就为假(因为它说它不可证),这就意味着证明了假命题——从而算术是不一致的。
好了,那我们就假设命题A不可证,这就意味着命题A为真(因为它断言的就是自己不可证),但这样就存在不可证的真命题——算术是不完备的。
因此,算术要么不一致,要么不完备。
注意这里的自指,这个命题也可以改成”我”,也就是”我(这个命题)是不可证的”。我们如果用数学语言来定义这个命题:
A:=A是不可证的
这个定义显然是循环定义的,也就是定义A需要已知A,这显然会陷入死循环。当然作者不理解哥德尔的证明过程,因此也不敢下什么结论。但是我们可以发现这类悖论经常与自指或者循环引用联系在一起。
本节讨论了很多计算的局限,但是并没有任何证据能证明人脑有什么地方能超越图灵机的表示能力。比如哥德尔的不完备性定理,证明的是数学系统的局限,这对于机器和人来说是一样的。所以它们并不能成为人工智能不能实现的证据。
量子力学
前面提到在牛顿之后科学家形成的决定论(宿命论)观点在20世纪20年代随着量子力学的诞生被决定性地改变了。
1927年维尔纳·海森堡( )对其做了系统阐述。
就如何同时测量粒子的位置和动量而言,这里存在一种不可还原的局限性(粒子的动量是其质量乘以速度)。
在其最常见的解释中,海森堡原则指明了建立宇宙的方式是任何粒子,例如光的一个光子或一个电子,无法同时具有一个确定的位置和一个确定的动量。
如果你确切地知道它的速度,相应地,它的位置就是不确定的,反之亦然。
这个原则并不是说当前仪器还不精确(这可以通过更好的技术来克服),相反,它表征了实在的真正构造。
宏观的重的物体(如我的那台红色迷你敞篷车)在高速公路上以一个确定的速度运行时,在空间上占据着一个精确位置。
但是微观事物(如基本粒子、原子和分子)则违反常识:你越精确地确定它们的位置,它们的速度就越不确定越模糊,反之亦然。
这个结论从根本上推翻了决定论:不管仪器多么先进,我们都无法准确的同时知道光子的位置和动量,因此也就无法完全准确的预测它的未来运动。
因此相信决定论的科学家似乎听到光子在嘲笑:别浪费力气了,你们永远也无法精确的测量我,连一个光子都无法准确预测,怎么可能准确的预测整个宇宙的运作呢?
这样的残酷现实爱因斯坦至死都不能接受,他绝不能相信”上帝会掷骰子”。虽然他对量子纠缠与波尔的争论,至今仍然没有定论,但看起来更多人认为是爱因斯坦错了。
量子力学让很多相信自由意志的人找到了救命稻草,既然世界是不确定的,那么我们就肯定有自由选择的权利。很多中国”传统”的”科学”似乎一下子咸鱼翻身了,上网随手一搜量子和易经都能找到很多”论文”。
作者完全不懂量子力学,因此不敢发表任何意见,只是想引用物理学家理查德·费曼(Richard Feynman)说过的话:“我想我可以有把握地说,没有人真正理解量子力学。”既然还没有理解,就先不要轻易使用这里的结论来做任何无关的衍生结论。
但是前面的论证过程是这样的,如果世界的运作是决定的,那么大脑也是世界的一部分,因此自由意志不存在。
640?=png,如果A不成立也不能说明B就一定成立。
而且前面那些论证自由意志不存在的方法亦然是有效的,比如心理学实验证实在我们意识到我们的结论之前大脑其实已经提取做出了决策,只是把决策结果告诉”我”而已。
作者认为,任何观测都有可能改变实验结果。
比如我们想测量某个光子在某个时刻的速度,我们显然需要用某个感觉器官来测量(不管是用显微镜还是望远镜,也不管经过多少中间处理步骤,但是最终肯定需要进入我们的感觉器官)。
从整体来看,观测者也是这个世界的一个部分,他的观测行为即使很细微,也可能影响整体状态的变化。
我们不能完全准确预测这个世界也并不能说明这个世界就不是决定的,它只是说明我们无法掌握所有的信息,因为观测者也是这个世界的一部分。
比如高考成绩公布之前,我并不知道自己得多少分,我当然可以估计一下。
但是老师可能估计的更准,因为他的水平(信息)比我更高。
对于我来说,我的成绩是不能很准确的预测,但是不代表我的成绩是随机的。
如果我们把整个宇宙看成一个巨大的人的话,我们每个人都是可能只是这个人大脑里的一个神经元,这一个神经元不可能获得这个宇宙的所有信息。
即使我这个神经元能与其他人交换信息,那也不可能是完整的最新的信息,因为在你获得A上一个时刻信息时,A也获得了B的信息,因此他的状态也发生了变化。
因此我不可能准确的预测这个宇宙的变化,但是并不表示这个宇宙的变化是不确定的。
以上就是人工智能究竟能否实现(因此它实现的肯定不是真正的智能)的详细内容,希望大家能够有所收获!更多请关注倾诉星球其它相关文章!