AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

2018-12-24 10:44:39 来源: 网易智能 举报
0
分享到:
T + -

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

出品| 网易智能(公众号 smartman163)

期号| AI英雄-第113期

选自| The New York Times

译者| 乐邦

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图1-高德纳(Donald Knuth)在其位于加利福尼亚州斯坦福市的家中。他是出了名的完美主义者,任何在他的书中发现错误的人,他都会给予奖励。

《纽约时报》最近采访了硅谷的尤达大师、算法和程序设计技术的先驱者高德纳(Donald Knuth)。高德纳在采访中谈到了其对算法的看法,并回顾了倾注其毕生心血的巨著《计算机程序设计艺术》(The Art of Computer Programming)。

半个世纪以来,斯坦福大学计算机科学家高德纳一直是算法领域的精神导师。他看起来有点像尤达大师——身高6英尺4英寸,戴着眼镜。

他是《计算机程序设计艺术》一书的作者,这部四卷本的作品可谓是他毕生的心血。第一卷出版于1968年,整部作品(作为一套盒装出售,售价约250美元),在2013年被纳入《美国科学家》(American Scientist)评选的对上一世纪科学界最具影响力著作的榜单——其它入选的著作包括《查尔斯·达尔文自传》的特别版、汤姆·沃尔夫(Tom Wolfe)的《真材实料》(The Right Stuff)、雷切尔·卡森(Rachel Carson)的《寂静的春天》(Silent Spring)以及阿尔伯特·爱因斯坦(Albert Einstein)和约翰·冯·诺依曼(John von Neumann)和理查德·费曼(Richard Feynman)的专著。

《计算机程序设计艺术》出版了100多万册,堪称计算机编程领域的圣经。“就像一本真正的圣经一样,它很长很全面。其它的书都没有它那么全面。”谷歌研究主管彼得·诺维格(Peter Norvig)表示。在读完652页之后,第一卷的封底上印着比尔·盖茨(Bill Gates)的一句话:“如果你能看懂全部内容,那你绝对应该给我发一份简历。”

第一卷的开篇摘自《McCall’s Cookbook》:

这是你的书,是成千上万封来信要我们出版的那本书。我们花了很多年的时间去做,反反复复检查了无数的食谱,只为给你带来最好的、有趣的、完美的食谱。

书里面是算法,是数字时代的“食谱”——不过,正如高德纳喜欢指出的那样,算法也可以在3800年前的巴比伦陶板上找到。他是一位备受尊崇的算法专家;他的名字与该领域最重要的一些算法联系在了一起,比如Knuth-Morris-Pratt(简称“KMP”)字符串查找算法。该算法是在1970年发明的,它能找到文本中出现的所有特定单词或字母组合——正如你在键盘上按下Command+F来搜索文档中的某个关键字那样。

现年80岁的高德纳通常会穿得像当年踏上这趟奥德赛之旅时的那个年轻极客:里面穿着长袖T恤,短袖T恤外穿,配牛仔裤,至少在每年的这个时候是这样。早年,他与计算机形影不离,整天捣鼓“0”和“1”。

诺维格博士说,“高德纳明确表示,系统实际上可以一直理解到机器代码层级。”当然,如今,随着算法占据主宰地位(并削弱我们的作用),普通程序员不再有时间来操纵二进制代码,而是使用抽象层次结构和一层层的代码——而且常常是借用代码库中的代码链。但精英工程师们偶尔仍会进行深度探究。

“在谷歌,有时我们只是把东西混在一起。”诺维格博士在谷歌Trips团队在加州山景城的一次会议上说,“但在其他时候,如果你要为数十亿用户提供服务,有效地做到这一点非常重要。10%的效率提升能够带来数十亿美元的收益,要达到终极的效率水平,你必须得将事情彻底搞清楚。”

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图2-加利福尼亚理工学院,高德纳1963年在这里获得博士学位

或者,正如谷歌的杰出科学家安德烈布罗德(Andrei Broder)在会议上解释的那样:“我们希望为我们正在做的事情提供一些理论基础。我们不想要提供一个轻率的二流算法。我们不希望让其他的算法专家说,‘你们这些家伙都是笨蛋。’”

谷歌Trips应用创建于2016年,属于“定向越野算法”,可以绘制出一天推荐的旅行活动。该团队致力于“最大限度地提高最糟糕一天的质量”——例如,避免让用户回到同一个社区观看不同的地点。他们从来自瑞士数学家欧拉莱昂哈德·欧拉(Leonhard Euler)的有300年历史的算法获得灵感,欧拉想绘制一条穿越普鲁士城市柯尼斯堡的路线,这条路线只穿过柯尼斯堡的七座桥各一次。高德纳在他的专著的第一卷中论述了欧拉的经典问题。(他曾将欧拉方法应用于编码让计算机控制缝纫机。)

遵循高德纳的理论很有助益。众所周知,他提出了“文学化编程”的概念,强调编写人类和计算机都能读懂的代码的重要性——这个概念在今天看来几乎有些矫情。高德纳甚至认为,跟伊丽莎白·毕晓普(Elizabeth Bishop)的诗歌和菲利普·罗斯(Philip Roth)的《美国牧歌》(American Pastoral)一样,有些电脑程序是配得上普利策奖的文学作品。

他也是出了名的完美主义者。美国最热门科普漫画网站xkcd创始人、《事物解释者》(Thing Explainer)作者兰德尔·门罗(Randall Munroe)第一次听说高德纳是通过计算机科学界的人,后者跟他说高德纳奖励那些找出其著作中错误的人。门罗回忆道,“人们谈论拿到他的奖赏,就好像在谈论它是计算机科学的诺贝尔奖一样。”

高德纳在学术及其它方面极其严苛的标准,或许可以解释为什么他毕生的工作还远远没有完成。他和谷歌联合创始人谢尔盖·布林(Sergey Brin)打了一场赌,赌的是布林能否在高德纳完成他的作品之前完成博士学位。布林曾是高德纳的学生。

算法的曙光

19岁时,高德纳在《疯狂》(Mad)杂志上发表了他的第一篇技术论文《普茨比度量衡体系》(Potrzebie System of Weights and Measures)。在计算机科学学科出现之前,他就成为了一名计算机科学家,在如今位于克利夫兰的凯斯西储大学学习数学。他查看了学校的IBM 650大型机(十进制计算机)的样例程序,发现了一些不足之处,于是重写了那些软件和课堂上使用的教科书。在一个业余项目中,他为学校的篮球队进行数据统计,编写了一个帮助他们赢得联赛冠军的计算机程序。

在暑假期间,高德纳通过编写编译器赚的钱比教授一年挣的钱还多。编译器就像一个转换器,将高级编程语言(类似于代数)转换为低级编程语言(有时是晦涩难懂的二进制),并在此过程中对其进行改进。在计算机科学中,“优化”是一门真正的艺术,这一点在高德纳的另一句箴言中得到了阐述:“过早的优化是万恶之源。”

最终,高德纳自己成为了一名编译人员,无意中创造了一个新的领域,他把这个领域称为“算法分析”。一家出版商雇佣他写了一本关于编译器的书,但后来这本书变成了一本汇集他所知道关于如何为计算机编码的一切的书——一本关于算法的书。

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图3-1981年,高德纳在阅读1957年的《疯狂》杂志。该杂志有他的第一篇技术论文,论文发表时他才19岁。

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图4-《计算机程序设计艺术》第1-4卷。“如果你能读懂全部内容,就给我发一份简历。”比尔盖茨在推介语中写道。

“到了文艺复兴时期,算法一词的起源受到了质疑。”书的开头写道,“早期的语言学家试图通过进行像algiros(意指痛苦)+ numermos(意指数字)这样的组合来猜测它的来源。”事实上,高德纳继续说道,该词来自9世纪波斯教科书作者al-Khwārizmī’的书,其拉丁语为Algorithmi。

一开始,高德纳本打算写一部作品。不久之后,计算机科学经历了它的“大爆炸”(Big Bang),所以他重新进行构想,并将该项目重新塑造成七卷本。现在他又分了几卷,叫做“分册”。下一部作品“卷4分册5”原本计划在圣诞节前出版,讲述“回溯”和“舞蹈链接”等问题。由于他不断发现无法拒绝的问题,所以出版计划推迟到下一年的4月。

为了尽可能确保自己能完成任务,高德纳一直以来都非常珍惜时间。他55岁退休,很少出席公开活动,并且停止使用电子邮件。安德烈·布罗德(Andrei Broder)回忆说,即使在上世纪80年代初,时间管理也是他的一个标志性特征。

高德纳通常会在周五上午与学生会面,直到他开始在人工智能创始人约翰麦卡锡(John McCarthy)的实验室过夜,以便在电脑空闲时使用它们。麦卡锡是人工智能的创始人之一。随着数字出版的到来,他心爱的书呈现在书页上的样子令他感到惊恐,于是他开始了一项任务:创建TeX计算机排版系统。该系统如今仍然是所有科学交流和出版形式的黄金标准。有人认为这是高德纳对世界的最大贡献,也是自古腾堡以来对印刷术的最大贡献。

这一长达十年的迂回转折发生在用户共享电脑,而电脑在大多数人都在睡觉的晚上运行得更快的时代。于是,高德纳把白天换成了晚上,把自己的课程表调了12个小时,把学生的预约时间调到了周五晚上8点到午夜。布罗德回忆说,“当我告诉我的女朋友,周五晚上我们什么也做不了,因为周五晚上10点我必须和我的导师见面时,她想,‘这件事太蠢了,它肯定是真的。’”

然而,当高德纳选择亲临现场时,他是百分之百专注投入的。“和他在一起,你会觉得很开心。”微软研究院常务董事詹妮弗·蔡斯(Jennifer Chayes)说道,“他是这个社区里的权威人物。如果说你有一个优化函数在某种程度上是兼具温度和深度,那么它就是我们的这位导师。”

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图5-高德纳与字体设计师赫尔曼·察普夫(Hermann Zapf)讨论字体。许多人认为高德纳在TeX计算机排版系统上的工作是自古腾堡以来对印刷术最大的贡献。

与高德纳的周日时光

高德纳住在斯坦福,访客周日可以来访。他能抽出一整天时间来是很例外的——通常他的空闲时间是从下午1点到4点的午睡时间。他很早就出门到帕洛阿尔托的第一路德教教堂,在那里给人们上主日学校的一节课。开车回家时,他有了一些关于数学的哲学思考。

“我永远不会知道一切,”他说,“如果我什么都不懂,又或我什么都懂,我的生活都将会变得糟糕得多。”然后,他提出带记者参观他和妻子吉尔(Jill)于1970年建造的“加州现代”住宅。他的办公室里堆满了U盘,并且装饰着来自做平面设计师的吉尔的情人节心形图案。最令人印象深刻的是音乐室,它围绕着他定制的812支管风琴而建。最后,我们一边喝酒,一边玩解谜游戏。

谜题和游戏——以及写一部关于超现实算术的中篇小说,创作时长90分钟的多媒体音乐作品《Fantasia Apocalyptica》——才是真正让他感到兴奋的事情。他的书有一部分的标题是“谜题与现实世界”。他通过电子邮件向麻省理工学院的艺术家马丁·德梅因(Martin Demaine)和计算机科学家埃里克·德梅因(Erik Demaine)发送了一段摘录,因为高德纳采纳了他们的“算法谜题字体”。

“我很激动,”埃里克·德梅因说,“能上这本书是我的荣幸。他提到了高德纳的另一句名言,这句话是“算法带来的乐趣”(FUN with Algorithms)大会鼓舞人心的口号:“乐趣可能一直都是主要目标。”

但后来,德梅因博士说,这个领域开始变得实用起来了。工程师、科学家和艺术家们正联手解决现实世界中的问题——蛋白质折叠动力学、机器人技术、安全气囊——利用德梅因父子的数学折纸设计,研究如何将纸和连杆折叠成不同的形状。

当然,算法上种种冗长复杂的过程也会带来现实世界的问题。人类编写的算法——解决越来越难的问题,但产生嵌入错误和偏见的代码——已经够麻烦的了。或许更令人担忧的不是由人类编写的算法,而是机器在学习过程中编写的算法。

程序员仍然会对机器进行培训,最重要的是为后者提供数据。(数据是一个有关偏见和错误的新领域,在这里面,错误和偏见更难找到和修复)。然而,正如麻省理工学院媒体实验室的附属研究机构的凯文·斯莱文(Kevin Slavin)所言,“我们现在正在编写我们无法理解的算法。因而这成为了历史上一个独特的时刻,因为我们受制于一系列物理方面的思想、行动和努力,它们起源于人类,却不为人类所理解。”正如斯莱文经常指出的那样,“如果你是一个算法,那么你有一个光明的未来。”

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图6-1999年,高德纳在家里的办公桌前办公

AI英雄 | 硅谷尤达大师高德纳:算法领域的精神导师

图7-一些笔记

如果你是一个包含高德纳的智慧的算法,那么你的未来会尤其光明。谷歌的诺维格博士指出,“今天,程序员们会把高德纳和其他人已经完成的东西作为他们算法的组成部分,然后把它们与他们需要的其他东西结合起来。”

“人工智能也是如此。只是整合工作会根据数据来自动完成,而不是由程序员手动完成。你希望人工智能能够结合组件来研究数据得到一个好的答案。但是你必须决定那些组件是些什么。可能每个组件都是高德纳的一页书或一章书,因为这可能是完成某些任务的最佳方式。”

幸运的是,高德纳一直在坚持他的工作。他估计还需要25年才能完成《计算机程序设计艺术》,尽管这一时间框架自1980年以来一直保持不变。也许算法的算法可能会有专门的章节,亦或是结尾的一页?“当然不是。”高德纳说。

“我担心算法变得太过重要了,”他补充说,“一开始,计算机科学家们担心没有人在听我们说话。而现在我担心太多的人在听了。”

姚怿立 本文来源:网易智能 责任编辑:王超_NT4133
分享到:
跟贴0
参与0
发贴
为您推荐
  • 推荐
  • 娱乐
  • 体育
  • 财经
  • 时尚
  • 科技
  • 军事
  • 汽车
+ 加载更多新闻
×

"上大学才懂,多读书是多数人捷径"

热点新闻

态度原创

精彩推荐
海淘品牌
阅读下一篇

返回网易首页 返回科技首页