浅谈帝国理工计算机系的起源和现状

作者:Milo

随着这几年留学的人越来越多,来IC读计算机的朋友也渐渐的多了起来。本文试图以一个宏观的视角来展示IC的计算机系。

IC计算机系的起源:

在上世纪40年代,英国开始着手计算机的研究。当时的领军人物是图灵,图灵所带领的团队在曼彻斯特大学研发出了理论上世界上第一台现代意义上的计算机,这个计算机主要用于破解德国的Enigma密码机,为二战的胜利贡献了不可磨灭的功勋。而与此同时,在IC的数学系,这里也诞生了世界上第一台用于高级计算的计算机,名为Imperial College Computing Engine(http://www.macs.hw.ac.uk/~greg/icce/), 这台计算机诞生于1948年。该计算机总共有三位开发者:其中Keith Tocher曾经和图灵一起工作破解了德国人的密码,而Tony Brooker在1952年离开IC前往曼彻斯特大学接替了图灵的位置(图灵在1952年左右由于同性恋问题被迫接受治疗),组建了曼彻斯特大学计算机系,而Sidney Michaelson后来在1960年前往爱丁堡大学组建了至今依然熠熠生辉的爱丁堡大学计算机系。而在IC computing Enginer的建造过程中,一名叫做Meir M. Lehman的本科生也参与其中,该人在1958年完成博士学位后前往美国IBM公司参与360大型计算机的设计工作。

70年代,当时IC的校长Penny(这个人代表英国参加了美国曼哈顿计划,他是英国核子计划的领军人物)意识到了计算机作为一个单独研究学科发展的重要性,因此决定从数学系中抽调教员专门的成立一个计算机系。考虑到Keith Tocher已经前往工业界发展,而Tony Brooker和Sidney Michaelson已经离开,学校从美国请回来了当时已经功成名就的Meir M. Lehman,并任命其成为了计算机系主任。Meir M. Lehman是公认的软件工程先驱(被誉为”The father of software evolution”, 关于他的介绍可以在wiki找到)。不过很可惜,他前年去世了,原本他是IC最有可能获得图灵奖的教授。考虑到图灵奖只授予在世的科学家,因此IC的计算机的图灵奖估计又要过不少年了。

在20世纪的60-80年代,IC的计算机系在软件工程,人工智能方(得益于Bob Kowalski的加盟)面可以称之为具有世界领先的研究实力。但是很不幸的是,这两个偏理论的领域无法为IC的计算机系带来更多的资金支持。相反IC的电子系由于偏重于实际系统的开发所以获得大量的资金扶持,从而在计算机基础架构方面的研究一直形成了对计算机系的强大优势。而当时的IC要投资做计算机,首先想起的是EEE系,因为此时的Computing研究过于理论(因为定位于computer science,其中科学的成分更重一些),以至于无法独立做出实际的系统。而这个趋势直到最近10年才开始有所改变。

计算机系的复兴:

当时间进入了21世纪,IC终于醒悟过来,计算机系的势微正在将整个IC拖入衰败的深渊。新世纪的研究经费和突破更多时候来源于实际的需求驱动,而英国整体国力的衰落,更是让许多IC的研究人员空有研究梦想,而没有经费支持。而与此同时,剑桥却从校友捐款和剑桥“硅谷”中获得来自于工业界的大量支持,依然保持计算机研究世界一流的水平。此时的IC开始觉醒,首先加大了对计算机系的扶持(计算机系的教师团队在过去10年得到了飞速的扩充,而计算机系最近三届的系主任也被任命为了IC工学院的院长),并建立出孵化器来加速科学技术,尤其是信息科学技术转化为商业利益这一趋势。因此,我们看到,在过去的10年中,计算机系从全球各地挖来许多顶尖的研究者,这里面有功成名就的业内翘楚,也有许多青年才俊,Computing终于不用苦笑我们只有软件工程和人工智能可以拿出手了。尤其这几年,在IC经济非常困难的情况下,计算机系还在依然引入新的教师从而扩充研究的面。这充分反映出IC对于计算机系的重视(但是依然很“穷”,因为钱永远都是不够用的)。

在现在的计算机系中,比较具有国际影响力的研究组包括:

分布式软件系统研究分支:这个组是我目前所在的组,所以比较了解。总体上说,这个研究组是世界上少有的,同时具有3个IEEE, ACM双Fellow的研究组!要知道整个中华地区,包括香港,也只有香港中文大学有一个双Fellow。这三个人分别为Jeff Kramer(分布式软件工程的先驱), Jeff Magee(Kramer最出色的博士学生), Alex Wolf(提出了基于内容的互联网和新的软件工程方法学)。其中Alex Wolf还刚刚当选ACM协会全球副主席。另外,该分组还有Morris Sloman(移动计算)还有Kin Leung(通讯网络)这两个IEEE Fellow。一个小组里面有5个Fellow,这在全球都不多见。如今,这五个大牛都已经转入行政,而当前的研究主力由最近5年加入IC的青年教师担当。比较出色的是Peter Pietzuch(数据流处理,分布式系统),Cristina Cadar(软件可靠性测试),Paolo Costa(分布式系统), Sebastian Uchitel(Magee最出色的学生,肩负起IC未来软件工程领域研究的重任)。

人工智能研究组:这个研究组坦白说,是计算机系仅存的可能出图灵奖的小组(软件工程组受制于整个软件工程领域的争议性在图灵奖评选上一直受到限制)。在人工智能的逻辑推理,Multi-agent system方面,该小组是不容置疑的先驱。最近两年这个组诞生了两个ESPRC leadership fellows(自动机和机器创造学,这两个新分支均来自于人工智能逻辑的研究)。充分说明了这个小组在AI领域相关子领域的绝对权威的地位。

视觉信息处理研究组:这个小组在过去10年得到了飞速的发展。在医学图像处理(Daniel, Guangzhong Yang),机器人视觉(Andrew Davison),医学机器人(Guangzhong Yang),计算机感知交互(Maja Pantic),人脸情感识别(Maja),人体传感器网络(Guangzhong Yang)方面具有世界领先的研究水平。

高性能计算组:该小组由Wayne Luk和Paul Kelly领导,FPGA和编译器指令设计方面依然是世界一流水平。该小组有两位老师都被斯坦福邀请为客座教授,每年有4个月在斯坦福授课和进行研究方向的探讨。计算机界著名的Michael Flynn是这个小组的主要合作者之一(这个人在斯坦福提出了Flynn机分类法)。投资银行如摩根斯坦利等等都是这个组研究项目的资助方和客户。

编程语言研究小组:这个方向我不太了解,但是即使我这个门外汉也能看出这个小组的牛B。小组的header被微软剑桥研究院聘为编程语言方面首席科学家。在每年编程语言的顶级会议,PODL,该小组都有文章,小组中的几名学者都是C++标准委员会的常务委员。这个分支可以说是那个50年前建立计算机系创始人的血脉,在今日依然熠熠生辉。

系统性能测量分析小组:该小组由Peter Harrison带领。在这个领域上,这个小组的水平是全球顶尖的。另外在EEE系,也有个网络小组,那个小组的头: Erol Gelenbe 也是一个双fellow,来IC之前是duke university的计算机系的主任,是网络随机测量的先驱。这两个人在全球顶尖的性能测试会议上Sigmetrics都曾经担任过的general chair,其江湖水平可见一般。

还有就是IC非常有特色的一个研究分支:量化分析研究分支。这个可以说是IC计算机最有特色的分支。由于IC地处于伦敦这个世界金融中心,该分支的老师不仅仅有非常丰富的工业界工作和咨询经验,也有非常好的学术背景。这里面出来的博士,基本还没毕业就已经被各大投行用高薪挖走了。

从总体上说,我觉得很难具体将一个学校排出1,2,3的名次,但是如果说MIT, 斯坦福,CMU和伯克利是全球计算机研究的第一梯队(这些学校在几乎任何方向都是全球最顶尖的)。那么IC应该就是在第二梯队左右(大部分方向具有世界一流水平,个别方向全球顶尖)。可以说,IC计算机的复兴可以认为是整个欧洲计算机研究复兴的缩影。近些年来,欧洲中的德国(马克思普朗克研究所,Saarland),瑞士(苏黎世理工,洛桑理工),荷兰(戴尔福特理工),法国(INRIA),以及以色列(Technion,我知道在中东,但是这个国家一般研究风格是划归于欧洲的)的崛起,将一个曾经以美国为主导的单极世界推向了一个多极世界。这一方面反应出了美国经济领先地位的丧失,也反应出了欧洲经历二战后的重新崛起。而一般普遍认为比较薄弱的亚洲,也进步飞速,如中国的清华复旦,香港的科大中文,韩国的KAIST,新加坡的NUS都已经跃升为世界计算机研究的第二梯队。因此,在以后的PhD深造的选择中,我们应该更加关注于所在研究组的研究水平,而不是单纯为了出国而出国。

21 thoughts on “浅谈帝国理工计算机系的起源和现状

    • 我本人是研究分布式系统的,对于ML不是非常了解,所以仅能做一些比较浅显的分析。

      所谓机器学习,就是让机器学习出一组输入和输出的关系。这里面全球有两大流派,一个是以美国MIT为首的统计机器学习流派,还有一个就是以IC为首的逻辑机器学习流派。在上世纪80年代以后,全球的研究重心基本聚焦于前者。在最近5年,基于统计的机器学习流派遇到了极大的瓶颈。这是因为前者往往把一个“被学习的系统”当做是一个black box。那么,学习这一个系统的行为必然导致无法洞察出系统输入和输出的内在联系。因此,机器学习的性能得不到本质性的提高。

      而后者,也就是IC一直不愿放弃的,是将数据表示为知识和论断,并利用推理逻辑来构建输入和输出的关系(系统可以认为是一个white box)。显然,这么做的难度非常高(形象点说,语言从耳朵进入,嘴巴出来,语言本身的表示可以看做知识的表达,而大脑内部依然未知的结构可以看做IC在追求的逻辑推理结构)。因此,我不认为在可见的20年内可以构建出一种普适的架构来表达世界上的知识和方法。这也是为什么IC孜孜不倦的坚持了30年,依然没有非常大的突破的原因。不过需要指出的是,这个方向更加符合人工智能的原始定义(也更加值得研究!),因为一旦机器知道如何去表达知识,并进行推断(即使是初步的),它才能获得学习的能力,从而实现自我的进化。

      其实在80年代以前,MIT和IC基本在坚持同样的研究方向,后来美国人发现这个实在研究不动了,因此他们选择牺牲系统的精度和普适性,来换取系统的可用性。在这一点上,我们可以看出美国人的务实和英国人的古典科学研究的性格。其实在计算机方面,我更加喜欢前者的研究风格。系统不用太复杂,但一定要能用。而英国的这种方式在数学和物理研究上更加具有优势,因此最近10年的重大物理发现,基本都集中在了欧洲。

      现在,这两个流派都开始认识到了自身的不足,开始走向融合。即系统被当做grey box来学习。两个分支的老师也基本都互相比较熟悉,去年一个IC的本科生就凭借IC一位老师(Logic Programming的提出者)的推荐信,拿到了斯坦福,MIT,剑桥的全奖。前面两所学校就是统计学习流派的重镇。

      对于现在的IC而言,基于逻辑的机器学习是由人工智能组在坚持。而基于统计学习主要由视觉信息处理组在研究(其实更多是应用,改进,而不是提出创新性理论)。

      关于Prolog,我不好说什么。用IC老师自己的话说:“1974年,他临时有事没去爱丁堡开会制订Prolog语言的标准,因此这个语言就被爱丁堡那帮人给毁了。”当时的Prolog和C同样具有5%的份额,要是Prolog成功胜出,我想历史会完全重写了。

      • 学长果然学识渊博,不是自己研究的方向也懂得这么多历史。。。我现在只是觉得统计学习方向更加有趣而已,人类的rule太多了,每个rule条件前提都太多,有一些还是矛盾的, hard code那么多rule不现实,而统计学习方法只是需要更多数据。你说的grey box貌似是条正道,就是不知道怎么融合, 我觉得可能主要靠statistical辅以几条简单的rule比较可行,或者rule可以encode在模型的结构里。

        当年大二写prolog程序很痛苦,半天憋出来几句,特别是语句的执行顺序要很小心,debug也不方便。我准备去读MAC的program,不知道能不能跳过prolog这个坎, 学长对选课有什么好建议吗?

        • MAC是IC研究生里面的王牌专业,恭喜你拿到了offer。选课的话,这个看你的兴趣吧。我比较喜欢的课程有Software Engineering (讲课的老师都是工业界的开发主管,有HSBC还有瑞士信贷的,学的东西非常非常实用)。还有一门课时advanced object-oriented programming。讲课的人本身是C++标准委员会的人,我没听过,但是觉得应该比较有用。MAC能选修IC四年级全部的课程。不过有一点不好的是,很多2,3年级的课程你是不能选的。其实,有时候3年级的课程我觉得更有意思。例如说, pervasive computing。

          如果你对hardware感兴趣,那你确实来对地方了。paul kelly和wayne luk的组有非常好的资源让你使用。

          • 完全同意啊,我昨天看也觉得那个pervasive computing 很有意思,可惜貌似不能选。那个adv. oo programming我看大纲好像非常理论的样子。估计里面有关oo的tricks 和 pitfalls会很多。可惜我对硬件不是很感兴趣,原来学digital system的时候就觉得自己不适合学硬件。

            目前准备选 424, 475, 477, 493; 421, 422, 491, 436 (这门貌似很理论,但是不知道选其它什么了, 看介绍内容是概率论的东西). 不知道这几门能不能跳过prolog…

        • IC所有的研究生都会基础的prolog。然后,还有后续课程专门教授prolog。因为IC以逻辑,推断,人工智能为傲。而prolog是这方面研究的基础语言。这个prolog的后续课程是以上机考试为主,难度极大。

          我今年认识的一个朋友,也是MAC,国内ACM银牌得主,只做出了60%的题目。

发表评论