亲手设计现代算法架构,女图灵奖得主Barbara Liskov的坎坷编程路

发布时间:2019-11-29 09:28:26   来源:IT之家   点击:
[db:简介]

好的代码既有内容又有风格。它提供了所有必要的信息,没有额外的细节。它绕过了低效和bug,准确、简洁和雄辩,足以被人类阅读和理解。

但到了20世纪60年代末,计算能力的进步已经超过了程序员的能力。许多计算机科学家在没有考虑设计的情况下创造了程序。他们编写了冗长、不连贯、充斥着“goto”声明的算法——如果满足某个条件,机器就会跳转到程序的新部分。早期的程序员依赖这些语句来修正他们代码中不可预见的结果,但它们使程序难以阅读、不可预测甚至带来了危险。糟糕的软件最终夺去了生命,就像Therac-25电脑控制的辐射机向癌症患者传送大量过量的辐射一样。

1968年,Barbara Liskov在斯坦福大学获得计算机科学博士学位时,她羡慕电气工程师,因为他们使用的是通过有线连接的硬件。该体系结构自然允许他们分解问题,并将其划分为模块,这种方法使他们能够独立地对离散组件进行推理,从而给予更多的控制。

作为一个思考代码的计算机科学家,Liskov没有可以使用的物理对象。像小说家或诗人一样,她盯着一张空白的纸。

Liskov曾在加州大学伯克利分校读过数学本科,她想把编程作为一个数学问题来研究,而不是作为一个技术问题,一个可以由逻辑原理和美学指导的问题。她想把软件组织起来,这样就可以对它进行控制,同时也能理解它的复杂性。

当她还是麻省理工学院的年轻教授时,她领导的团队创造了第一种不依赖goto语句的编程语言。这一名为CLU(“cluster”的缩写)的语言依赖于她发明的一种方法——数据抽象——将代码组织成模块。今天使用的每一种重要编程语言,包括Java、C++和C#,都是CLU的后代。

Liskov说:“这么早就出征的一个好处是,那里有很多大问题。你所要做的就是找到这些问题并解决。”2008年,Liskov因“对编程语言和系统设计的实践和理论基础的贡献,特别是在数据抽象、容错和分布式计算方面的贡献”而获得图灵奖——这一奖项通常被称为计算领域的诺贝尔奖。

Quanta Magazine在Liskov的家中采访了她,当时她刚刚参加了海德堡获奖者论坛。这是一个由计算机科学家和数学家组成的私密聚会,只有受到邀请才能参加,他们在各自的领域获得了最具声望的奖项。Liskov已被邀请到海德堡,但由于个人原因需要在论坛前几周取消这一行程。

以下为经过编辑整理的访谈实录。

Quanta Magazine(以下简称为Q):在人工智能的发展过程中,你已经拥有很成熟的职业了。在你的职业生涯中,对人工智能和机器学习的思考发生了怎样的变化?

Liskov(以下简称为L):我和John McCarthy在人工智能领域取得了博士学位。我写了一个下棋的程序。John提出这个话题是因为我不下棋。我阅读了《国际象棋》的课本,并将那些算法翻译成计算机科学。在那些日子里,人们认为明智的做法是让程序按照人类的方式运行。但现在不是这样了。

今天,机器学习程序在大多数时候都做得很好,但它们并不总是有效。人们不明白它们为什么工作或不工作。如果我正在研究一个问题,并且需要确切地理解算法的工作原理,我就不会去应用机器学习。另一方面,我的一位同事正在用机器学习分析乳房X光片,寻找癌症可以更早被发现的证据。

人工智能是一种应用,而不是一门核心学科。它总是被用来做某些事情。

Q:你对它作为一门核心学科更感兴趣吗?

L:老实说,那时候我做不了什么。我对基础工作很感兴趣。“你如何组织软件?”这是一个非常有趣的问题。在设计过程中,你需要弄清楚如何实现应用。你需要通过将代码分解成块来组织代码,数据抽象有助于此。这很像证明一个定理,你不可能一下子就证明一个定理。相反,你会发明一些引理并分解问题。

在我的计算思维中,我想象一个抽象的机器,它只有我想要的数据类型和操作。如果这台机器存在,那么我就可以写出我想要的程序了。但事实并非如此,相反,我引入了一堆子问题——数据类型和操作——我需要弄清楚如何实现它们。我一遍又一遍地做,直到我使用一台真正的机器或一种真正的编程语言。这就是设计的艺术。

了解方法论并不意味着你擅长设计。有些人能设计,有些人则不能。我从来没有觉得可以教我的学生如何设计。我可以向他们展示设计,解释设计,谈论数据抽象,告诉他们什么是好的,什么是坏的。但有了太多花哨的东西,事情就变得复杂了。如果太少,则就会出现效率低下。设计一些足够强大的东西是一门艺术。

Q:如果你有一根魔杖,可以引导计算机科学的发展向前迈进,那会是什么样子?

L:我很担心互联网。我们有大量的问题,包括假新闻和安全问题。我很担心那对离婚的夫妇,丈夫发表了对妻子的诽谤,包括她住在哪里的信息。有一些可怕的事情正在发生。部分原因是80年代的一种态度,在那些日子里,我们有15所大学和几个政府实验室通过互联网连接在一起,我们都是好朋友。他们的态度是,网站不应该对内容负责。这将扼杀他们的发展。你看,这种态度还在继续。

Q:这是学术自由的延伸吗?

L:不,这是实用主义,根本不知道我们最终会走向何方。如果接手,他们将不得不考虑一些棘手的问题。他们在没有增加安全措施的情况下进行了调查。解决我们当前的问题需要的不仅仅是技术。我们需要法律来解决人们行为不端的问题。我们需要解决隐私与安全的问题。有些是技术性的。例如,Facebook有一个传播信息的算法。他们可以更缓慢地传播信息,或者识别哪些信息不应该传播。社会总是很难处理新事物。我们可以期待自己的成熟。但如果我有一根魔杖,我就能让这一切消失。

Q:谈谈你作为一名女性在计算机科学领域的个人经历。

L:我被鼓励在学校好好表现。我不知道我的母亲是否公开鼓励过我,但她没有当面对我说:“哦,不,这样做不好。”我修了所有的数学和科学课程,而学校不鼓励女生这样做。在伯克利,我是100人班的一两个女生之一。从来没有人说过:“嘿,你做得很好,为什么不和我一起工作呢?”我不知道发生了这样的事。我在斯坦福读的研究生,毕业时,没人跟我谈工作。我确实注意到,像我的朋友Raj Reddy这样的男同事被招聘到学术职位。但没有人招募我。

当时,顾问们通过与全国各地的部门达成协议,为毕业生安排职位。

是的,但是没有人为我达成交易。在20世纪90年代,我回到斯坦福参加部门庆祝活动。一群老教授,不知道他们在做什么,描述了这个老男孩网络。他们说:“哦,那边的朋友告诉我,我有一个你应该雇用的好年轻人。”事实就是这样,他们一无所知。他们谈论的是一位年轻女士,因为她嫁给了一位教授而做得很好!你真的无能为力。另一位同事在他的办公室里贴了一张海报。我问他:“你办公室里的那个是什么?”

我申请了麻省理工学院,但他们不考虑让我担任教职。当这种情况发生时,你会想:“我不够好。”你忍不住。但我也认为,“计算机科学是完全开放的。”我在Mitre的行业工作是一份很好的研究工作。在那里,我研究了编程方法,并进行了研究,这让我获得了一等奖论文。然后在1971年,我做了一次演讲,之后Fernando Corbato邀请我申请麻省理工学院。我还被邀请去伯克利申请。一切都改变了。

Q:即便如此,你刚进入麻省理工学院时,大约有1000名教员,其中只有10名是女性,对吗?

L:那是我的回忆。

所以有了进步,但是…

《第九条》还没有成为法律,但压力越来越大。麻省理工学院校长Jerry Wiesner对此表示支持。压力必须来自上层,它不会从底部冒出来。在麻省理工学院有很多杰出的女性不在教职人员之列。大约在那个时候,她们中的一些人突然被邀请加入了教员队伍。当然,数学系从来没有,数学系真的很差。

我的感觉是,所有的科学领域都没有认识到女性的一些基础性贡献。

在我担任麻省理工学院计算机科学系主任之前的10年里,该部门只发现了一位值得聘用的女性。当我(2001年至2004年)担任主管时,我聘用了7名女性。我雇佣的三个女性都很优秀。有很长一段时间,女性根本不被考虑。

Q:在你获得图灵奖之后,网上出现了一条评论说:“她为什么会获得这个奖?她没有做任何我们还不知道的事情。”这种轻蔑的评论可能与你是女人的事实有关,也可能无关。

L:哦,我打赌是的!还有另一条我从未说过的评论说:“哦,她没有做这项工作。(一位男同事)代替了。”这完全是一派胡言。我没有看评论,我丈夫也是。我有时会在对我有敌意问题的地方发表演讲,但你必须做好准备,无论是因为我是一个女人,还是因为人们想要出风头。

Q:挑衅图灵奖得主?

L:是的!我当时没有意识到我们部门有人支持我。当我四处出差的时候,我已经很出名了。但这是一个谜:为什么有些女性能够坚持下去?

Q:你对新兴的女科学家有什么独到的见解吗?有没有某种方法,女性可以用来防止歧视或骚扰?

L:要是知道怎么用就好了。直到我在麻省理工学院呆了一段时间,我才拥有在公共场合提问的能力。培养这种自信花了很长时间。

Q:这是很微妙的。你的故事揭示了一个“低调后发优势”。

L:是的,也许那是我的策略。再加上不需要取悦别人,女性被社会化大多是为了取悦他人。

Q:这是一个具体的建议:不必再去取悦别人了。

L:你知道现在的情况并不比那时好。也许我是幸运的。如果我大学一毕业就结婚,我可能会在一个完全不同的地方生活着。

Q:你真的这么想吗?你的贡献改变了计算机和社会。

L:你知道自己走了这条弯路,但又有谁会知道呢?

------分隔线----------------------------