Greenplum:从大数据战略到实现 (19):ABC:人工智能、大数据和云计算 1.5.3

阅读数:3 2019 年 12 月 18 日 21:26

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

(图灵机和可计算数)

内容简介
这是一本系统剖析 Greenplum 开源大数据平台的书籍,也是大数据战略制定与落地的实战型指导书!
本书围绕数字原生和云计算、大数据、人工智能驱动的企业数字化转型的核心诉求,从商业和技术实战视角分享了业界领先企业大数据战略的深刻思考,并提供了大数据战略从制定到落地的全面指导。既有高阶数字化战略高度对大数据的解读,又有技术实战角度对使用 Greenplum 大数据和机器学习平台实现大数据战略的实践指南。
本书作者来自 Greenplum 核心研发团队,致力于以开源、开放的理念和先进的技术推进大数据产业生态,助力企业以更低的成本、更高的效率实现数字化转型,并基于 Greenplum 开源社区培养大数据产业更多人才。
本书分为四个部分。

  • 第一部分介绍大数据战略。其中,第 1 章将分享作者对于人工智能、大数据和云计算之间关系的理解以及对人和人工智能的思考。第 2 章将介绍进取型企业为什么需要大数据战略以及如何建立大数据战略。
  • 第二部分介绍大数据平台。其中,第 3 章将以数据平台演进历史和未来趋势为主题,描述三次整合的背景及影响,介绍选择大数据平台需要考虑的因素,以及为什么 Greenplum 是理想的大数据平台。第 4 章将介绍 Greenplum 数据库快速入门指南。第 5 章将介绍 Greenplum 架构的主要特点和核心引擎。第 6 章将介绍数据加载、数据联邦和数据虚拟化。第 7 章将介绍 Greenplum 的资源管理以及对混合负载的支持。
  • 第三部分介绍机器学习。其中,第 8 章介绍 Greenplum 的各种过程化编程语言(用户自定义函数),用户可以使用 Python、R、Java 等实现用户自定义函数,还可以通过容器化技术实现自定义函数的安全性和隔离性。第 9 章将介绍 Greenplum 内建的机器学习库 MADlib,数据科学家可以使用内建的 50 多种机器学习算法用 SQL 对数据进行高级分析,并介绍如何扩展 MADlib 以实现新算法。第 10 章和第 11 章将分别介绍 Greenplum 如何对文本数据和时空数据(GIS)进行存储、计算和分析。第 12 章将介绍 Greenplum 丰富的图计算能力。
  • 第四部分介绍运维管理和数据迁移。其中,第 13 章会介绍各种监控和管理工具及相关企业级产品。第 14 章介绍数据库备份和恢复。第 15 章和第 16 章将分别介绍如何从 Oracle 和 Teradta 迁移到 Greenplum。

图灵的论文《可计算数及其在可判定性问题上的应用》(《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 的字符串对应了一个数的二进制表示,所以它还是一个数。图灵在从事密码破译工作的时候,有机会去美国的贝尔实验室协调英美两国的合作。他在贝尔实验室遇到了两位大师(可见人生结交高质量的朋友多么重要)。作者猜测图灵从两位大师制作的编解码机器中大受启发,将他对世界万物都是数的信念往前推进了一步1:如果说人的五官能够感受到的世间万物都可以用机器转换成数字来表示,那么人的思考过程是否也能用机器转换成数字来表示?为帮助读者理解图灵的这个构思,可以用 iPhone 手机上的 Siri 语音助手来类比。Siri 是一个能思考和分析的程序,如果你用一个二进制编辑器打开它,它也是一个用二进制 0 和 1 表示的数。但是 Siri 对应成 iPhone 这个机器(本质上就是一个图灵机)上的一个数字后,在机器上的运作就能起到人工智能的效果。通过这个例子,读者也可以看到数字化是人类前进的一个新方向,相比人类在工程和物理领域的几千年的研究,数字世界的探讨从图灵等人在 20 世纪 40 年代开辟这个话题算起,到今天才经历了几十年。

1 作者猜测这是图灵做的最大胆的一步外推,当然无从考证。

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

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

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

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

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

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

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

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

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

图 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 的图灵机表示

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

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

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

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

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

2 通用图灵机的介绍可以参考图灵的论文《On Computable Number》。

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

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

Greenplum:从大数据战略到实现(19):ABC:人工智能、大数据和云计算 1.5.3

购书地址 https://item.jd.com/12668618.html?dist=jd

评论

发布