只有了解了计算的历史,才能真正理解计算的未来

阅读: 评论:0

只有了解了计算的历史,才能真正理解计算的未来
当今这个世界,随着计算机普及到我们⼯作⽣活的每⼀个⾓落, 「计算」这个概念也是⽿熟能详,但是,我们真的理解什么叫计算吗?我们中国⼈经常说,「了解历史才能展望未来」, 我认为,这个道理对于计算同样适⽤,也就是说:「只有了解了计算的历史,才能真正理解计算的未来」。我相信,这本书不只适⽤于计算机的从业者,也适合任何能对⼈类社会发展有帮助的⾏业的⼈。
在这本《计算进化史》中,作者⾮常巧妙地利⽤了⼀些故事,来阐述深刻⽽抽象的数学原理。⽐如,在讲到 「谓词逻辑」的时候,作者讲了⼀个故事:⼀个法国探险家在南太平洋上发现了⼀个与世隔绝的⼩岛,岛上的居民居然会讲法语,探险家推断这些居民是法国船只在海难后幸存者的后代,所以会说法语。但是,探险家在和岛上居民交流过程中,听居民说他们会捕捉天上飞的鱼来当⾷物,这些鱼有两个翅膀、两个⽖⼦和⼀个尖嘴,探险家就懵了,怎么可能有这种鱼?但是,随着和居民的进⼀步沟通,探险家明⽩了,当地居民说的「鱼」,其实就是「鸟」,只不过因为这些居民使⽤的语⾔发展和法语的语⾔发展⾛了不同的轨迹,所以对⼀个名词的含义发⽣了南辕北辙的偏差。名词只是符号, 有了「有两个翅膀、两个⽖⼦和⼀个尖嘴」这样的谓词逻辑,就能够表述清楚这个名词真正的含义。书中还有很多类似通过故事讲道理的⼿法,⼤家阅读的时候可以⼀⼀体会。
在《计算进化史》中,还出现了很多历史⼈物,有些⼈名⽿熟能详,⽐如亚⾥⼠多德、阿基⽶德,他们尼龙扣
奠定了数学的基础;有的是普通⼈不熟悉,但是在⾏业中⿍⿍⼤名的⼈物,⽐如阿隆佐·邱奇和阿兰·图灵,这两位是我们计算机学科的祖师爷;还有很多其他数学家,他们的贡献也许不为⼤众所知,但是因为他们每个⼈的努⼒,才构建起当今数学的⾼楼⼤厦。阅读这本书,可以让我们随着计算的发展史,重温这些历史⼈物的⼼路历程。
接下来,让我来介绍⼀下这本书的要点,可以总结为三个部分:
第⼀个要点,推理和计算的关系。
第⼆个要点,计算和算法的关系。
石墨舟
第三个要点,计算能否实现数学证明。
我们先来讲第⼀个要点,推理和计算的关系。
数学史的开端,通常被认为是公元前 5 世纪,古希腊数学家创建了算术和⼏何,奠定了古代数学两⼤分⽀的基础。但实际上,最早有迹可循的「数学」活动在公元前 2500 年的古巴⽐伦时代就发⽣了,现古学家在巴⽐伦⽂明所在的美索不达⽶亚发现了⼀块泥板,泥板上记录了这样⼀份账:如果有 1,152,000 份粮⾷,每⼈分 7 份,可以分给多少⼈?结果是 164,571。可见,古巴⽐伦⼈已经能够在社会活动中运⽤除法这样的计算了,考古学家进⼀步发现,其实这还只是冰⼭⼀⾓,实际上古巴⽐伦
⼈不仅掌握了加减乘除这些运算,还掌握了解⼆次⽅程、丈量三⾓形、圆形⾯积的能⼒。
电子定时器既然古巴⽐伦⼈的计算能⼒这么强,那为什么依然是两千年后的古希腊才被认为是数学史的开端呢?
因为古巴⽐伦⼈并没有解决「⽆穷」这个问题。书中举了这么⼀个例⼦:有这么⼀个问题,要求画出⼀个等腰直⾓三⾓形,让这个三⾓形的三条边的长度都是⾃然数。如果按照古代巴⽐伦⼈的计算⽅法,当然可以通过丈量和计算的⽅法,来判断⼀个等腰三⾓形的三条边是否满⾜「都是⾃然数」的条件。如果真的这么做,运⽓好的话,很快遇到⼀个满⾜条件的直⾓三⾓形,那就到了答案,如果不到的话,那么,就另⼀个直⾓等腰三⾓形来计算。如此周⽽复始,直到到那个答案,当然,还有⼀个可能,就是不到匹配条件的等腰直⾓三⾓形,那就⽆穷尽地尝试下去。
问题就在这⾥,我们可以画出⽆穷多的等腰直⾓三⾓形,⽽计算⼀次只能判定⼀个三⾓形,那么我们能够⽤计算来实现证明吗?要是对于⼀个结果是正确的定理,⾜够多次的计算也许能够到答案;但是,如果这个定理也许根本就不成⽴,计算也就永远⽆法下结论。
古希腊的毕达哥拉斯学派从另⼀个⾓度思考了这个问题。他们利⽤推理,⽽不是计算,证明了⼀个等腰直⾓三⾓形不可能三条边都是⾃然数。这个证明过程并不复杂,不超过两页的描述,就能避免⽆数次⽆谓的计算验证。
从这个简单的例⼦就可以看出,相对于计算,推理拥有⽆与伦⽐的优势,因为它能够解决通⽤的问题,⽽通⽤的问题具备⽆穷种可能。这是推理的⼀个巨⼤优势。所以,虽然计算在⼈类历史中由来已久,但在古希腊之后,计算在数学领域中就难有⽴锥之地。
在这⾥值得⼀提的是,和古希腊数学家正好相反,我国古代数学家的兴趣集中在计算上。中国古代数学问题的核⼼,就是对实际问题的解释和再利⽤。注意这⾥的「解释」往往不包括证明和推理。正因为缺少推理,我国古代数学体系发展始终没有超出初等数学的范围,不能不说是⼀个遗憾。
好的,上⾯为你讲的是第⼀个要点 「推理和计算」的关系,接下来我们来说第⼆个要点,就是计算和算法的关系。 算法的英⽂是 Algorithm,这
个词源其实是⼀个⼈名。这⾥要说到⼀个有趣的故事,在公元前九世纪,阿拉伯阿拔斯王朝诞⽣了⼀位伟⼤的数学家,名叫穆罕默德·本·穆萨·阿尔·花剌⼦模(Muhammad ibn Msa al Khwarizmi),他出版了⼀本名为《代数学》的书,这本书⾥介绍了印度⼈发明的⼗进制计数法,以及以此为基础的算数知识。后来,意⼤利数学家斐波那契将这本书引⼊欧洲,印度⼈发明的 0 ⾄ 9 这⼗个符号的计数法从这⾥开始,就被误认是阿拉伯⼈所创造的。意⼤利⼈在翻译阿拉伯⼈花剌⼦模的著作时,把作者的名字⾳译成了拉丁语 Algorismus,同时就将书中讲解的算数⽅法也叫作了 Algorismus。后来,这个词被英语吸收,就成为了 Algorithm,含义就是算法。从这个故事可以看出,计算和算法天⽣就有很强的关联。
那么,计算和算法是不是⼀回事呢?
其实并不完全⼀样,⾄少现代意义上的算法和计算是有差别的,这还是要从计算在 20 世纪初的发展说起。中波塔
虽然最近两千多年间,推理⼀直都压制着计算,但是,我们都知道,随着计算机的发展,计算在⼈类社会的影响达到前所未有的地位,⽽这⼀飞跃,就开始于 20 世纪初。
20 世纪 30 年代,有两个⼈⼏乎同时独⽴缔造了可计算性理论,从⽽奠定了现代计算理论的基础,这两个⼈就是阿兰·图灵和阿隆佐·邱奇。 图灵创造了图灵机,邱奇创造了兰布达演算。⽤通俗的语⾔来表达,图灵机就是⼀个打孔机根据⼀个指令来运作,如果根据这组指令最终能够解决⼀个问题,那么这个问题就是「可计算的」;邱奇的兰布达演算则是从另⼀个⾓度考虑,他认为⼀个问题如果能够⽤函数表达式的⽅式来表达,那么这个问题就是 「可计算的」。
⽆论是图灵机,还是兰布达演算,其实都是⼀种算法的表达形式,这就引出了我们的问题:计算和算法有什么关系?
算法是⼀系列运算,和计算很类似。但是,算法和计算有⼀个很显著的区别,就是算法必须是要能结束的。如果⼀个计算过程会⽆穷尽地继续下去,这就不叫⼀个算法。 图灵机和兰布达演算都⽐较偏理
论,不容易理解,如果你去阅读计算机界泰⽃⾼德纳的著作《计算机编程艺术》,可以到对算法的通俗描述:算法由若⼲有限序列的指令组成,必须满⾜下⾯四个性质:第⼀,它有输⼊,由外部提供数据给这组序列;第⼆,它有输出,也就是说算法⾄少产出⼀个数据返回给外部;第三,它有确定性,组成算法的每条指令都是明确的、清晰的、⽆歧义的;第四,它具备有限性,算法中每条指令的执⾏次数是有限的,所有指令执⾏的时间也是有限的。
体会⼀下上⾯这四个算法的性质,可以注意到「有限性」是⾮常重要的⼀条,也就是说,算法⼀定能够「完结」,⼀个可能永不停⽌的运算过程,并不是⼀个算法。
也正因如此,并不是所有程序,都符合算法的要求。有些程序是永远不停⽌运⾏的,⽐如⽼⼀代的操作系统,除⾮切断电源,不然会永远⼀直运⾏下去。不过,操作系统中每⼀个⼩的具体任务依然是算法的体现,⽐如展⽰具体某个⽬录内容。新⼀代的操作系统接受指令关闭⾃⼰,只不过⼀个⼩⼩的修改,就满⾜了算法的定义,可见,程序和算法并没有绝对的对⽴。
二氧化碳制冷算法是现代计算机科学的基础之⼀,我们在⽤计算机解决⼀个问题的时候,其实都应⽤了某种算法。但是我们要清楚,并不是所有的问题都可以被算法解决。
举个例⼦,著名的哥德巴赫猜想,⽤⽂字表述就是:「任⼀⼤于 2 的偶数,都可以写成两个质数之和。」
怎么⽤算法证明或者推翻这个猜想呢?我们可以设定运算,从 3 开始,到相加为 4 的两个质数,然后处理 6 ,然后处理 8 ,依次类推……给定⼀个数字 N,到相加之和为 N 的两个质数,这是⼀个算法,因为 N 的⼤⼩是明确的,需要寻的质数个数不超过 N,这个算法肯定可以结束。但是,哥德巴赫猜想的证明过程却不会完结,就算你到⼀个超级⼤的偶数 N 的两个质数和,那也还有 N+2 呢,等你到了 N+2 的质数和,还有 N+4 呢……永远没有穷尽,所以,算法是不可能证明哥德巴赫猜想的。
我们需要知道,算法并不是万能的。
上⾯为你讲的是第⼆个要点「计算和算法的关系」,接下来我们来说第三个要点,也就是最后⼀个要点:计算能否取代推理。
早些年的时候,「⼤数据」也是⼀个被经常炒作的词汇,似乎「⼤数据」可以彻底改变⼈类⽣活;这⼏年,⼈⼯智能(AI)的风头很劲,甚⾄有⼈预测,未来⼈⼯智能会让⼤部分⼈都失业。其实,「⼤数据」也好,⼈⼯智能也罢,归根结底,都是计算,都是利⽤电脑在进⾏计算,⽽不是进⾏推理。
简单说来,现在的⼤数据和⼈⼯智能,并不能像公元前 5 世纪古希腊毕达哥拉斯的⼀个学⽣那样,⽤三⾔两语证明⼀个等腰直⾓三⾓形三条边不可能都是⾃然数。⼤数据和⼈⼯智能所能够做的,是通过消耗⼤量的电能和运算能⼒,经过长时间计算,最后得出这么⼀个结论:「嗯,从 A 到B 范围内,我
们没有发现⼀个等腰直⾓三⾓形的三条边都是⾃然数,但是 A 和 B 范围之外的,我们还没有计算,所以我们不确定。」
当然,对于实际情况,通过⼤量计算得出局部范围的结论,也已经⾜够了,但我们决不能被这点成绩蒙蔽了双眼,觉得只要计算能⼒⾜够强⼤就可以⽆所不知⽆所不晓了。
从《计算进化史》中描述的数学发展史可以看出,在过去⼏千年间,数学家们反复论证计算和推理的关系,不断有突破性发现。但是,直到现在,还没有任何基础理论证明,计算可以完全取代推理。注意,这⾥说的是「完全取代」,⽬前计算机科学中的⼈⼯神经⽹络,可以说部分代替推理。
所谓⼈⼯神经元⽹络,就是模拟⼈类⼤脑中的神经元构成的计算系统。⼈脑中包含⼤量的神经元,每个神经元都只是⼀个细胞,只能做很简单的应激反应,但是,这些神经元细胞会伸出⼀些⼩⽖⼦,称为突触,神经元之间通过突触连接起来,每个神经元通过突触,从其他神经元接收到信号之后,再把信号传给其他神经元。不同神经元对信号的处理不⼀样,这样⼀个巨⼤的⽹络结构,就是我们⼤脑的运⾏机理。
你可能会问,那怎么保证这个巨⼤⽹络功能正常呢?
靠的是对这个神经元⽹络的训练。实际上,⼈类的成长过程就是训练⾃⼰⼤脑神经元⽹络的过程,我
们从婴⼉时期学习⾛路,信号穿过⼤脑中的神经元细胞来协调我们的肢体,如果我们⾛得稳了,那么就是正向反馈,会加强对应神经元之间的链路;如果我们摔倒了,那就是负向反馈,会削弱对应神经元之间的链路,通过这样反复的训练,最终神经元之间的关系越来越优化,最终我们熟练掌握⾛路的技巧。简单的⾏⾛技能是这样训练的结果,复杂的技能,⽐如写作和驾驶汽车,⼀样也是训练神经元细胞构成的⽹络的结果。
⼈⼯神经元⽹络,就是⽤电脑去模拟⼈脑的神经元⽹络所得到的结果,通过⼤量数据反复训练,让⼈⼯神经元⽹络⾃我进化,从⽽也能够「学习」到某种技能。这种训练过程有两个特点:第⼀,需要⼤量的计算能⼒,对电脑的训练的过程,就是计算的过程;第⼆,最终训练的结果并不是传统算法概念上的⼀组指令,换句话来说,最终结果是不包含「推理」的,没⼈能够解释清楚为什么最终神经元⽹络是这样的结构。
我们可以根据两个维度来划分⼈类⼤脑需要解决的问题,⼀个维度从是否需要统计计算能⼒,可以分为「可统计计算」和「不可统计计算」;另⼀个维度从是否需要推理能⼒,可以分为「可推理」和「不可推理」。
这样⼀来,⼈类知识可以分为四个象限:第⼀象限「可计算」⽽且「可推理」,第⼆象限「可推理」但是「不可计算」,第三象限「可计算」但是「不可以推理」,还有第四象限既「不可以计算」也「不可推理」,总共四种。
先说第⼀象限,「可计算」⽽且「可推理」的这种问题。这种问题是⾮常传统的问题,现在的计算机已经完全可以胜任这部分⼯作。
第⼆个象限,「可推理」但是「不可计算」的问题。虽然还有传统的机器学习研究者在这个⽅向上努⼒,但是发展不温不⽕,因为不能利⽤计算能⼒,需要推理的话离不开⼈脑,在没有重⼤理论突破之前,这个⽅向的计算机化不会有什么起⾊。
第三个象限,「可计算」但是「不可以推理」的问题。深度学习和⼈⼯神经元⽹络近⼏年有很⼤突破,像 AlphaGo 这样的超级⼈⼯智能,重点不是它对围棋的精髓道理有多深的认识,⽽是通过反复训练,它就是知道下哪⼀步棋胜率更⾼,这没有任何推理可⾔,完全得益于计算。
第四象限,既「不可以计算」也「不可推理」的问题。⼀个很好的例⼦就是艺术创作,虽然现在有⼀些⼈⼯智能宣称也能进⾏艺术创作,但是本质上是利⽤计算和统计能⼒来「照虎画猫」,说到底依然是模仿,不可能取代⼈类的创造。
由此可见,所谓⼤数据和⼈⼯智能会取代⼈类⼯作,实在是杞⼈忧天,就像⼈类在发现原⼦核的秘密之前不可能造出原⼦弹,数学界如果没有基础理论的重⼤突破,计算⽆法取代推理,⼈⼯智能就不可能在智⼒上取代⼈类。
不过,《计算进化史》也讲得很明⽩,我们不能断⾔,在未来计算也不会取代推理。⾃动化证明兴起,相对于⼏⼗年前,已经有长⾜进步。虽然⾃动化证明不能做到⼀切,但是就在⽬前阶段,不必奢求让机器完全取代⼈类的思维,⽽是寻求机器和⼈类的合作。⼈类来作证明,机器来验证其中可能存在的微⼩错误,这可能才是推理和计算和谐相处的道路。
数学家们依然在努⼒,也许有⼀天,计算可以取代推理,那就真是⼀个巨⼤的⾰新,会不会有那么⼀天呢?让我们拭⽬以待。
这就是我跟你分享的最后⼀个要点。
好了,《计算进化史》这本书讲得差不多了,接下来,让我们总结⼀下。
我们⾸先了解什么叫作计算,进⽽探讨了计算和推理这两个数学问题的关系。然后,我们讲述了⼀种特殊的计算——「算法」的作⽤,算法存在局限性,但是能够解决现实中很多问题。最后,我们说到了计算能否取代推理,由此讨论了⼈⼯智能对⼈类的影响。
负压引流球
我想起我有⼀个研究算法的朋友,他对数学研究很深,也需要对计算机⾮常了解,他曾经对我说:「搞计算机是⽤具象思维来思考抽象的东西,但是数学做深了的话,就必须能⽤抽象的思维思考抽象的东西。」
这个朋友的话让我深有感触,因为我的职业是软件架构师,经常需要和别⼈讨论计算相关的设计问题,当需要表述⼀个复杂问题的时候,三⾔两语讲不清楚,怎么办呢?这时候,我们就会画⼀张图,所谓⼀图胜千⾔。但是,对于涉及到数学的算法问题,画图往往就不⾏了,我们只能利⽤公式来表达,那些矩阵、向量、公式,在现实世界中没有可以⽤来⽐喻的图形,就像我朋友说的,数学的语⾔本⾝就是抽象的,⽽不是具象的。这本《计算进化史》最精彩的⼀点,就是能够把抽象晦涩的数学概念⽤⽣动的故事来讲清楚。
当读完了这本书后,我个⼈的感受,可以归结为⼀句话:路漫漫其修远兮,吾将上下⽽求索。
我对这本《计算进化史》的推荐,就讲到这⾥。
以上的讲述内容,是基于 2017 年 2 ⽉⼈民邮电出版社出版的《计算进化史》,希望我的推荐,能够帮助你更好的理解这本书。
愿每⼀本好书都能让我们成长。

本文发布于:2023-07-26 00:38:38,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/192338.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计算   算法   推理   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图