热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

带你深入理解图灵机天才所在的时代

来源:人机与认知实验室这几年由于区块链的大热,以太坊独特的solidity语言实现智能合约功能,图灵完备这个词走进大家的视线。没有计算机专

640?wx_fmt=jpeg

来源:人机与认知实验室


这几年由于区块链的大热,以太坊独特的solidity语言实现智能合约功能,图灵完备这个词走进大家的视线。


没有计算机专业知识的同学其实很难理解这个词的意思,其实计算机专业的同学都没有深入理解图灵机,图灵完备,图灵测试等概念包含的内涵。为了方便理解区块链技术,理解智能合约,笔者准备分几篇文章来带大家从浅入深,一步一步带你深入理解图灵机,相信通过这几篇文章能就能够理解什么是图灵完备。

大家知道任何伟大艺术的诞生背后都有迷人的时代背景,伟大的科学思想也是一样。从达芬奇到蒙拉丽莎的微笑;从牛顿到万有引力;从爱因斯坦到相对论;伟大的天才图灵和这些大师一样有同样让人着迷的时代和故事。


图灵的生平


艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学理论之父,人工智能之父。


1931年,图灵考入剑桥大学国王学院,由于成绩优异而获得数学奖学金。1936年5月,年仅24岁的图灵发表一篇题为《论数字计算在决断难题中的应用》的论文,论文中提出一种计算装置,后被称为“图灵机”,图灵机不是具体的计算机,而是一种计算概念、计算理论。1938年在普林斯顿获博士学位,其论文题目为“以序数为基础的逻辑系统”,在数理逻辑研究中产生了深远的影响;同年图灵回到英国,在剑桥大学国王学院任研究员。第二次世界大战期间,1939年图灵到英国外交部通信处从事军事工作,主要是破译敌方密码的工作。由于破译工作的需要,他参与了世界上最早的电子计算机的研制工作。他的工作取得了极好的成就,破译了德国人Enigma密码,于1945年获政府的最高奖——大英帝国荣誉勋章。


图灵破解密码


1945年,图灵结束了在外交部的工作,他试图恢复战前在理论计算机科学方面的研究,具体研制出新的计算机来。


1950年他发表论文《计算机器与智能》( Computing Machinery and Intelligence),为后来的人工智能科学提供了开创性的构思。提出著名的图灵测试。


1950年,1950年10月,图灵发表论文《机器能思考吗》。这一划时代的作品,使图灵赢得了“人工智能之父”的桂冠。此时,人工智能也进入了实践研制阶段。随着这几年AI技术的不断成熟,人们越来越认识到图灵思想的深刻性:它们至今仍然是人工智能的主要思想之一。


1954年6月7日,年仅41岁的图灵被发现死于家中的床上,床头还放着一个被咬了一口的苹果。这就是现在大名鼎鼎的苹果电脑公司logo的来源。


时代背景


从图灵的生平中,我们知道,他出生在20世纪初,1912年。

在世界国家格局上,这个时候刚刚爆发第一次世界大战(1913~1921),紧接着1939年至1945年第二次世界大战,大家知道,这两次世界大战倒逼了很多科技的发展,二战期间恰好是图灵青年时代。


在科技文明发展上,由于逻辑的数学化,促使了数理逻辑学科的诞生和发展。但同时这个时期数学上发生了第三次数学危机,具体介绍在下方。图灵在剑桥读大学期间,修读了“数学基础”课程,授课人是纽曼,纽曼整个课程包含对哥德尔不完备性定理的证明和尚未解决的判定性问题。


这些科技事件的背后,其实是人们在认知上,对可计算性理论的研究,图灵正是这个问题终结者。


随便提一下,爱因斯坦1905年提出狭义相对论,1927年年仅15岁的图灵为了帮助母亲理解相对论,还写过论文的摘要。


可计算性理论


在20世纪以前,人们普遍认为,所有的问题类都是有算法的,人们的计算研究就是找出算法来。1900年,当时著名的大数学家希尔伯特在世纪之交的数学家大会上给国际数学界提出了著名的23个数学问题。

其中第十问题是这样的:

存在不存在一种有限的、机械的步骤能够判断“丢番图方程”是否存在解?


“丢番图方程”指:有一个或者几个变量的整系数方程,它们的求解仅仅在整数范围内进行。

上面这个问题简单点解释是:随便给一个不确定的方程,是否通过有限的步骤运算,判断这个方程是否存在整数解。


这个问题在1970年,苏联一个数学家证明了其实很多数学问题,是没有答案,甚至没有答案的问题比有答案的问题还要多。


这里就提出来了有限的、机械的证明步骤的问题,其实就是算法。但在当时,人们还不知道“算法”是什么。实际上,当时数学领域中已经有很多问题都是跟“算法”密切相关的,因而,科学的 “算法” 定义呼之欲出。之后到了30年代的时候,终于有两个人分别提出了精确定义算法的方法,一个人是图灵,一个人是丘奇。而其中图灵提出来的图灵机模型直观形象。


图灵思考这个问题的方式和常人不一样,在写前面提到的论文《论可计算数及其在判定性问题上的应用》的时候,图灵在思考三个问题

  1. 世界上是否所有的数学问题都有明确的答案?

  2. 如果有明确的答案,是否可以通过有限步骤的计算得到答案?

  3. 对于那些有可能在有限步骤计算出来的学习问题,是否有一种假想的机械,让它不断运行,最后机器停下来的时候,那个数学答案就计算出来了?

图灵这样的天才考虑问题的认知是高屋建瓴的。


图灵首先考虑的是是否所有数学问题都用解,如果这个问题不解决,辛辛苦苦解题,最后发现无解,一切的努力都是浪费时间和精力。


对于存在答案的数学问题,只有部分是可以在有限步骤内完成,这样把计算机的边界确定下来了。


确定了边界之后,就要设计一种通用、有效、等价的机器,保证可以按照这个方法做事,最后得到答案。而图灵机就是图灵设计出来的这样的一个机器,严格来讲是一种数学模型、计算理论模型。


从图灵机提出到现在已经过去了80多年,今天所有的计算机,包括量子计算机都没有超出图灵机的理论范畴。


第三次数学危机与停机问题


第三次数学危机产生于十九世纪末和二十世纪初,当时正是数学空前兴旺发达的时期。首先是逻辑的数学化,促使了数理逻辑这门学科诞生。


早在19世纪末的时候,康托尔为集合论做了奠基性的研究。人们发现,运用集合这个概念可以概括所有的数学,也就是说集合是一切数学的基础。然而就当这座大厦即将完工的时候,一件可怕的事情发生了,罗素提出来的罗素悖论粉碎了数学家的梦想。


关于罗素悖论的一个通俗化版本是:

“村子里有一个理发师,他给自己定了一条规矩:‘不给那些所有给自己理发的人理发’。
现在就要问,这个理发师该不该给自己理发?”。
如果你尝试回答这个问题就会发现奇怪的事情:这个问题本身似乎是不可能的!

为什么要第三次数学危机呢?

因为有个很重要的概念:停机问题,停机问题是逻辑数学中可计算性理论中很重要的问题,也是第三次数学危机的解决方案。

停机问题通俗地说,停机问题就是判断任意一个程序是否能在有限的时间之内结束运行的问题。该问题等价于如下的判定问题:是否存在一个程序P,对于任意输入的程序w,能够判断w会在有限时间内结束或者死循环。


有人猜测图灵机模型是图灵在思考停机问题而顺带设计出来的,是很有道理的。


人工智能


图灵在剑桥大学国王学院期间,研究过一本叫做《量子力学的数学基础》的新书,这本书由年轻的匈牙利数学家约翰·冯·诺依曼所著。图灵意识到计算可以用确定性的机械运动来进行表示。其实我们现在的电子计算机虽然不是我们传统意义上的机械,但是CPU内部的电子运动等价于机械运动。


同时图灵也意识到人的思想、意识来自于量子力学中的测不准原理,这不光是微观世界,同时也是这个宇宙本身的规律。所以图灵意识到计算是确定性的,可判定的,而意识是不定的,不可计算的。


在AI人工智能有巨大发展的今天,很多人担心计算机是否会和人一样有意识,其实图灵在80多年前已经考虑过这个问题了。


前面提到,图灵在1950年写过一篇论文《计算机器与智能》,在这篇论文中,图灵测试一词被提出来:

指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能

这个测试有多难?目前我们所有的人工智能都没有完成这个测试。最近2018年3月份的谷歌I/O大会上演示的AI产品,据说“部分通过图灵测试”。这个部分到底有多少也未可知。


总结与启示


从人类科技发展的历史上来看,19世纪末到20世纪中期,是第二次工业革命和第三工业革命过渡的时期。第二次工业革命主要电和磁、内燃机的发明和使用,发展到这个时候科学家对世界的认知越来越多,越来越清晰,物理学和数学等自然科学发展迅速。这个时候的数学家发现很多现象可以用数学模型来表示,从物体的运动到星球的运动、从热能到动能的转换、从电到磁的转换等等。那问题来了是否所有的现象都可以用数学模型来表达呢?真是这个问题,让人们对数学很多根本性问题进行思考和研究。


中国有句古话说:乱世出英雄。在图灵的时代,在科学历史上出了很多的科学英雄,包括爱因斯坦、冯诺依曼、图灵、哥德尔等等,一方面是时代背景使然,一方面真是他们的天赋和努力让以信息化为代表的第三次工业革命的进程大大加快了。


从这些巨匠的思考问题,解决问题的方法和认知来看是超出常人的。从对可计算性理论的思考,给了我们很大的启示:


  1. 要学会抽象,看问题高屋建瓴,学会从上帝视角看问题

  2. 知道做事情的边界是非常重要的,可以指导人们在正确的范围内做事情,可以减少很多无谓的付出。

  3. 做事情要有方法论,理解计算的等价性

  4. 要学好数学


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。


  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


640?wx_fmt=jpeg



推荐阅读
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了如何在Mac上使用Pillow库加载不同于默认字体和大小的字体,并提供了一个简单的示例代码。通过该示例,读者可以了解如何在Python中使用Pillow库来写入不同字体的文本。同时,本文也解决了在Mac上使用Pillow库加载字体时可能遇到的问题。读者可以根据本文提供的示例代码,轻松实现在Mac上使用Pillow库加载不同字体的功能。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
author-avatar
牛牛的牛66_674
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有