我于2018年8月27日至2019年6月23日在美国麻省理工学院交流,共计300天。我在大二就提前修完了所有的专业必修课程,并且基本确定以自然语言处理为之后的研究方向。于是赴MIT交流学习的主要目标就是修读自然语言处理所需的专业选修课程,并进入教授的实验室进行相关的研究。同时,也希望锻炼自己独立在异国他乡生活的能力,深入感受MIT的校园生活,与同学多交流各方面的见解。
一、专业选修课程
秋学期最初的选课意向是6.034人工智能,6.035计算机语言工程,6.806自然语言处理,和6.840计算理论。很遗憾这一学年自然语言处理没有开课,于是将其换成了6.036机器学习导论。
人工智能和机器学习导论这两门课是MIT计算机科学与工程专业培养方案里二选一的必修课,相较于我校面向高年级本科生或者研究生的对应课程来说,没有课程设计,编程作业主要是为了加深对算法的理解,只要实现模板里给定的函数即可,测试点也全部公开,我比较容易就获得了满意的成绩。人工智能这门课最大的亮点当属前沿讲座,邀请了MIT不同系的教授及工业界的研究人员,内容涉及神经科学、语言、可穿戴智能设备等,使我更深刻地感受到人工智能的研究与对人类智能的理解是相辅相成的。机器学习导论采用实验课来尽力避免大规模课堂与在线作业的弊端,注重表达,要求学生向助教当面解释一些概念性的问题,确保大家真正理解课程内容。最开始我很难快速组织并向助教表达自己的想法,但是后来渐渐习惯了,还能给同组的硕士生队友讲解她不理解的概念。
一开始选计算理论是因为当时是培养方案里的必修课。非常不适应的是每次作业所覆盖的内容可能在截止日期前两天才在课上讲完,由于我偏向于在课前不预习,对课上的内容保持新鲜感从而集中注意力,而在课后花时间回顾,时间就比较紧。所幸及时进行了调整,随时完成已经讲完的部分所对应的题目,比较艰难但也靠着想回上科大当助教的信念撑了下来。
计算机语言工程是另一门让我压力很大的课程。教授讲课比较风趣,概念我都学得非常清楚,写编译器项目的时候却碰到了很多问题。我从来没有用过Java,自己学会了语法也欠缺写大型项目的经验。而队友都修读过基于Java的软件工程课程,没有语言上的问题,也掌握很多设计、调试的方法。于是我花了很多时间和队友讨论,向队友请教各种问题,边写边学,一起完成了整个编译器和许多优化,在期末竞速中排到了前几名。
春学期因为选课限制没有选到研究生的随机过程课程,也没有选到人工智能课教授的另一门关于人类智能的课程。但是终于能够选修与自然语言处理相近的9.19计算心理语言学,结合自然语言处理的算法来探究人类是如何理解语言,如何习得语言。
18.065数据分析、信号处理和机器学习中的矩阵方法是我校线性代数课程教材的作者Gilbert Strang教授开的。教授虽处于耄耋之年,仍然精神矍铄,而且紧跟机器学习的理论前沿,今年一月才出版了用于这门课的新书。作业部分是教材中的理论题,部分是利用Julia的计算题,没有考试,课程设计的选题也完全自由。
6.050信息,熵和计算是机械工程系和电子工程与计算机科学系联合开设的面向一年级本科生的课程。据说只有在MIT有这样向低年级本科生介绍信息论的课程,带给我更多的感触是如何将看上去属于高阶课程的内容传达给刚入门的学生。教授也别出心裁地从量子角度讲熵、能量以及热力学里的卡诺循环之类的话题。
虽然春学期的这些课程分布在不同的院系,却还是偶尔会在不同的课上接触到同一个知识点:随机线性代数和最大化熵都用到了优化理论中的拉格朗日乘子,而信息论中的噪声信道模型能用来为语言理解建模。这也让我更加体会到学科的交叉和融会贯通。
二、人文通识课程
完全不在我计划之中但却对我影响极大的经历是在Claire Conceison(康开丽)教授编剧、导演的《灰阑记再续》中担任舞台监督助理。自从我在戏剧系的开放日上认识了康老师,便折服于她对于中国文化和戏剧的了解。这部融合了元杂剧《灰阑记》、布莱希特的《高加索灰阑记》和真实的中美夫妇监护权之争的剧作,让我对母亲这个主题有了很深的思考,也认识到了MIT在人文艺术上的成就。这是我第一次参与一部正式的舞台剧,见证它在一个月之内从剧本到上台演出,是一件非常奇妙的事情。作为一月短学期戏剧实践课的一部分,我跟随剧组将这部剧带到了上海戏剧学院冬季学院演出,除了负责道具之外,还参与了至少三分之一的字幕翻译。
春学期另外选修了一直很感兴趣的语言学导论课程。课程作业除了技术性的练习,还要求我们对一门陌生的语言进行田野调查。我找了一个来自韩国的化学博士生做我的咨询对象,从收集语料数据开始,初步体验了形态、句法、语音分析的全过程。当初面试交流项目时印校长曾经问我,在国外学习自然语言处理是否能够用到中文处理上。我想语言学就是其中非常重要的一环,希望以后能对独立于语言种类的自然语言处理算法作出贡献。
三、课外学术活动
我进实验室其实是非常不顺利的。秋学期最开始觉得自己完全不具备相关知识,想通过一个自己很想做的自动化形态学分析的项目来学习一些知识。然而课业压力太大,加之自己性格上的一些问题导致与作为我导师的硕士生沟通不是很顺畅,项目并没有太大的进展。自己也意识到独立项目所能带给我的提高不如加入现有项目,与导师利益直接相关,所能获得的指导更有效更有针对性,于是在春学期初决定放弃那个项目寻求别的机会。而此时聊了几个博士生、博士后都觉得我在MIT所剩的时间太少,不足以开展多少工作,不值得他们指导。最终放弃了这个念想。
尽管如此,秋学期在自然语言处理组,春学期在计算心理语言学实验室参加了不少组会,跟着读了一些论文,也听了很多组里或是来交流的学者的研究进展。春学期发现了计算机科学与人工智能实验室的邮件列表后,也听了一些报告。另外还参加了几次语言学系的研讨会。
在机器学习导论结课后我收到了春学期实验课助教的邀请,可惜后来因为签证限制没能当成。春学期得知我校首次开设的计算理论课可能还需要助教,便主动联系宋富教授成了第一个远程助教。在征求我所上的计算理论课Michael Sipser教授的同意后,借鉴、改编了很多MIT的课程资料,尽我所能帮助了我校的同学们。
访学交流这一年来最大的感受是要包容别人的不同,更要包容自己的不同。曾经自己经常会与别人做比较,总觉得自己会得太少,追不上别人的步伐。而交流的这一年,更多的是自我定位,明白了自己无需跟别人比较,只要按自己的节奏有一定的收获就足够了。希望自己不要忘了在MIT的种种经历,也带着MIT给我的改变一路走下去。