写在前面
「 开始写这边总结的时候是三月,纽约成了疫情震中,看着新闻报道里的中央公园,中国城,第五大道,往事浮现,于是开始写这篇回顾。。陆陆续续一直没写完,转眼年底了,加州疫情更糟。。前几天看新闻说Cathedral教堂发生枪击案,震惊。。这教堂就在我当时住的学校公寓旁边,每天出门都可以看到。。遂又忆起每天上学的时光,于是决定把这篇总结写完,会分几个part放出来。快圣诞了,希望疫情早日控制住,一切安好 」
刚上大学时,听过不少学长学姐分享会;申请博士时,读了不少留学申请总结。都收获很大,让当时啥也不懂的我,了解了每场游戏(如何度过一个充实的本科;如何拿到心仪的PhD offer)的principles:有啥规则,有啥技巧,等等。
开始读博时候,我也去找类似的读博经历分享,令我收益良多的,如熊辉老师,田渊栋和李沐大牛的总结,林达华老师的blog;但可惜只有这寥寥几篇,读博又是一个复杂的事儿,当时的我并不能清晰地看见前面的路,遇到一些事亦因缺乏经验借鉴,走了弯路。于是当时便想着,等我毕业了,也得记下我学到的经历,希望能帮助到刚开始读博,像我当年一样迷茫的科研新人。也借此记录和感恩一路走来,所有帮助过我的人,best of luck。
因为篇幅限制,有的问题难以讲得完善全面,或跟您意见不合,全当看小说,寻个乐子罢了。
1.1 初到纽约
2014年夏天,在北京国际机场,我安慰我妈说,“没事,明年暑假我就回来啦”,万万没想到,一直忙忙碌碌,一去就是5年……可能是初次留学的兴奋,十几个小时的飞行,感觉很快就过了,到了JFK机场,坐上纽约特色的黄色的士。去学校路上,先是皇后区的平房,后来到了曼哈顿,深砖红色的高楼,跟想象中的国际大都市并不大一样,倒很有历史厚重感,日后想想也是,纽约也不能到处都如时代广场那般呀。
接着,办入住,搞卫生,小憩了一会儿,傍晚出去门口的超市买点吃的;第一次从112街,走到Broadway上,看着熙熙攘攘的外国人面孔,很傻的竟然笑了出来…那会儿自然是极开心的,就是一个毛头小子,充满了对未来生活期待的样子(哎,回不去的青春啊);当然了,怎么也没想到,接下来的一年,会如此艰难……
1.2 差距
开学后一系列事情,一下子让我清清楚楚地,看到自己跟师兄们比,各个方面有着很大的差距。且不说核心业务能力了,首当其冲自然是语言环境的变化。
一天路上,一小哥对着我说:How are you?我想,这不是新概念英语上的经典对话吗,难道我真要回传说中的I’m fine, thank you, and you?从那儿之后,我知道了,how are you就相当于,吃了么您呐,并不是真的问什么,而是打招呼,跟say hi差不多,一般回good good就可以了,甚至不回,直接也回对方how are you都行。
然后到了第一天来lab,正好Y来面博后,老板让他给个talk,Y希腊口音的英语,再加上讲的内容涉及一些专业术语,几十分钟我几乎完全没听懂他说什么;会后跟他一对一meet,更是尴尬的很…后来18年来FB实习,巧了Y是我mentor之一,第一天带我吃的午饭,我们交流完全无障碍了,他也不记得当年还见过我……我有个朋友总结,刚来时候,跟外国人的交流,是三分靠听,七分靠猜……现如今,即使是印度口音,只要不是说的特别差的,或者我特别不熟悉的东西,都能通畅交流了。感觉这没啥技巧,首先要敢说,然后多跟不同的人聊天练习,慢慢就好了,倒不必太过担心,徒增压力。但是如果英语不好的话,难以跟外国专家合作,融入核心科研圈子,对长远的发展耽误很大,尽量在1-2年内做好这个提升。
1.3 让老板知道你在干活
因为我是本科毕业直博,刚读博那会儿,思维里还是默认,导师是教育培养学生的角色,指导学生做出成绩;明白但没有深刻认识到,博士生与导师还有雇佣关系。第一个学期,我主要是跟着师兄们做,跟导师大概一个月meet一次,每周有weekly report。开学时,老板把我分给一个师兄带,参与他的项目A,是个很好的学习机会,但是发不了paper。
11月,CVPR投稿的季节,另一个师兄找到我帮忙做项目B,这个项目准备投CVPR,做出来的话可以co-author。于是我那段时间都扑在做B上,终于实现了其中一个核心的模块。CVPR投稿完的那周,正好导师约meet,我想B的事情做完了,下面精力就都是做原本的A了,meet对我来说,主要目的是确定下接下来的plan呗。
正好搞CVPR之前,项目A的师兄让我reproduce一篇nips文章的方法,用到项目A的data上,于是,我准备的slides主要介绍那篇nips和怎么用到项目A上。结果meeting结束,导师很不高兴,觉得我这几周没有progress。记得那天导师办公室没开灯,冬天下午五点的纽约,天已经黑了,周围一片黑压压的,更显压抑。
我当时挺惊讶的,因为原还以为在导师印象中,是我参与了B的CVPR投稿,很impress呢。我后来仔细反思了下,虽然这几周我对B也算是呕心沥血,weekly report里也有提,但是,一来我只是coauthor,对于B工作整体而言算不上main contributor;二来导师很忙,不能assume对方完全了解并且记得你做过的一点一滴。同时,我也明白了这个meeting的目的既是讨论research ideas,但也是review progress,我首先得让导师明白,我这段时间有在好好干活。现在的我,不会只提项目A之后我想怎么做,会同时准备一页slide总结下我对B的贡献。
1.4 自己的感受没那么重要
我们系第一个学期末就要博士资格考试。这个考试,各个学校称呼不同,大概就是博士生通过这个考试,才证明有能力,qualify继续读博士。我们系给大家两次机会,第一学期末第一次考,没通过的第三学期末再考一次,要是还没考过,就只能卷铺盖走人了。而且这考试还真不是走过场,每次大概挂三分之一的人,所以真真切切见到周围有人因为qualify没过走人的。
我本科学的CS,博士因为fellowship是EE发的,所以在EE系。这可愁坏我了,因为考的是EE的基础topics,电路,DSP,网络啥的我大都一窍不通。于是第一个学期的课,我选了门DSP,准备好好从头学。这是硬课,再加上平常主要精力还得放在lab的项目上,第一学期压力巨大。记得有一天,晚上睡觉做了噩梦,梦到不知什么怪物,惊醒,醒来想到各种tasks各种due,顿时只想继续回到梦中,相比而言,还是怪物比较可爱……这时候,只好把自己的感受搁置一边,累、苦,想这些又有什么用呢,只能更加平添烦恼。该做什么就去做,告诉自己干就完了,结束后反而发现,过程其实也就那样,有时候我们只是过度看重了自己的感受,夸大了困难的程度,其实自己的感受没那么重要,只要身体本身还撑得住。
qualify考试在1月初。12中旬,忙完了期末考试,去Chinatown吃了顿好的,回家看了部电影,然后跟导师请好假,专心复习qualify。大概有三周的复习时间,除了DSP,其他的topics完全从零开始学。后来觉得,这考试的目的,不是考的知识本身,而考的是学习能力。复习的过程是很惨了,时值圣诞节假期,朋友圈各式各样在佛罗里达坐游轮的,迪士尼看烟花的,回国火锅小烧烤的;而那年的纽约还尤其的冷,家里的暖气开到最大,还是冷的不行,我只能早出晚归的去图书馆;路面冻得白花花的,公车开过扬起白沙,从家里112街到图书馆114街只有5分钟,但却那么漫长;每天几条裤子叠着穿,有天开始一度冷到零下负十几度,我刚出门一会儿就赶紧回来,在牛仔裤外面又套了件运动裤……所幸最后考试通过了,小秘告诉我竟然考了第三,震惊,真是功夫不负有心人讷……
1.5 上课没那么重要
第一学期,选DSP,纯为了考qualify exam修的,跟我日后的研究,基本不搭噶。我第一学期还修了机器学习,机器学习我之前没有系统学过,学完还是受益良多。但为了达到学分要求,我博士期间,被迫修了14门课,第四年还在上课……我的感觉是,AI是实践科学,上课没那么重要,很多时候甚至是浪费时间。我觉得值得选课去学的,可能就是机器学习,算法,就够了。搞CV方向的,与其上门CV,还不如自学网上教程,亲身参与几个项目,学的更快,对书上的知识有更深刻的理解。我觉得上课最大的作用,就是去了解这门学科,有哪些基本的概念和算法(所谓把unknown unknown变成known unknown),哪天你要用到他们了,需要把known unknown变成known known的时候,知道在Google里输入啥关键词去搜。
当然如果有时间,上些基础型的硬课,自然没啥;但对于博士生,时间本就紧张,就得做做平衡了,选些seminar的课比较好,一般主要就是读论文,做project。我后面陆陆续续带了很多低年级的学生,很多人学期伊始,觉得要多学些知识,选的都是硬课,学期过半,发现作业做不完,科研没时间,两头耽误,都是后悔不已…
2.1 PhD选题
第一学期在课业,科研,qualify考试,适应国外环境,种种碾压之下,总算过去了……虽然痛苦,但只是工作量大,努力使劲就好了……第二个学期开始,2015年于我,关键词是迷茫,努力努力但怎么也使不上劲的那种……
第二学期开始,重心主要集中在research上了,跟导师的meeting也从一月一次变成了每周一次,有幸得导师亲自调教各种真正做科研的能力了。导师给我定了个新的项目,深度学习下的incremental learning。这其实是个很难的问题,现在5年后来看,都没有被很好的解决;亦没有一个标准的benchmark,也就是说,其实大家还没有定义好这个问题;记得导师那会儿说,if you can formulate this problem,这个问题就已经解决70% 了。
结果忙忙碌碌几个月,研究了很多文献,做了很多实验,还是没有太大的进展,就是感觉很迷茫了,不知道下一步该干嘛。幸运的是,到5月份,导师让我跟师兄一起参加一个叫THUMOS的比赛,这其实又是个新的项目了;开始我还觉得,已经忙不过来了,哪有时间再多一个项目,后来庆幸参与了这次比赛,开始了我做video这个方向的科研生涯。
那会儿video领域,大家主要做classification,而且是几秒的短视频;THUMOS是长视频,而且不光有action classification task,还要一个task是action detection,检测你所感兴趣片段的开始/结束时间。参加比赛时,我跟着师兄主要搞classification,边做边学,上手了处理视频的模型和框架,收获很大。比赛完后,我发现classification大家搞的火热,而detection,同样很重要的一个课题,却没有人研究过基于深度学习的方法,于是就有了我的第一篇CVPR文章,收到了很多follow-up。我自己也算是找到了自己的研究方向,不再迷茫。
我觉得这段经历,对新手很有参考价值,很多时候光努力不够,方向更重要。新手如何选博士几年的topic,有两个问题值得思考:
能不能快速上手?有几个简单的评判标准:
能不能有大的impact?这里我指的是博士期间的大方向,由一系列单项的工作或者paper构成。
单篇paper通常有三种类型:
(1)First work:开创了一个topic,比如RCNN于object detection
(2)Last work:基本解决了一个topic,比如Faster-RCNN,YoLo于object detection
(3)Improve类型,介于First和Last之间的。
Last很难,Improve常见但影响力不够深远,对于新手而言,博士的早期工作,在有能力做出来和有impact之间的trade-off比较好的,估计是First了,不一定非要是第一篇,只要是某个topic里面开创性工作的那一批之一,都是不错的。这个早期工作之后,你会对这个问题哪里要改进,有很清楚的认识,因为improvement room大,也会有很多ideas。
同样,早期的时候怎么选这样一个topic呢:相关的比赛是这一两年新开的吗,相关的benchmark是这一两年出来的吗,上面的结果提升空间大吗(现在是20%还是已经80%了)?
2.2 单篇Paper选题
前面说的PhD选题是大方向上的,具体到每一篇paper,选择的principle和重点则不太一样。来Facebook后从马爷爷那知道了一个著名的Heilmeier问题系列,是指导老师们申项目的,我觉得稍微改改,便很适用于我们考虑,某一篇paper的选题,合不合适:
Presentation分为作报告,还有就是写paper
14年,刚来哥大那会儿,每周五是我们组会,导师让我在组会上present RCNN,这是我第一次给导师作报告,而且是在全组面前报告,自然想要好好表现。我对object detection之前完全没了解过,于是paper读了一遍又一遍,文中用到的前人技术不懂,便找到前人的文章去学怎么回事。感觉自己学到好多,自我感动,觉得花了这么大工夫,一定到时候会让导师刮目相看。
结果就是啪啪打脸:导师极其严谨,当我解释了A,解释了B,问我已经有A了为啥还要B;我大脑一片空白,尝试着解释了半天,导师表示听不懂,这是可想而知的,因为其实我自己也并没有搞清楚为啥;当时自己读paper的思维模式其实只是,memorize怎么做怎么做,但没有去搞清楚要这么做背后的原理;另外当时slides准备的也不够好。总之结果是,这次报告搞砸了。还好事后,师兄们继续跟我讨论,让我对技术原理有了更深刻的认识;有的师兄更用亲身经历安慰我,说当年他刚来的时候,第一次汇报工作连slides都没做,干讲,导师自然也是没能听懂。
之后几年,从导师身上学到了很多presentation的技巧:
19年CVPR,Doctoral Consortium有幸mentor是斯坦福的一位大牛教授,她也提到了presentation的重要性,说她们lab有个开玩笑的说法,一份slides交给她去改,no pixel left……为了分享如何能让报告听起来有兴趣,她画了下面这张图,让听众情感(亦是兴趣高低,注意力程度)随着时间的变化,有三个高潮:首先,介绍你的问题,通常这时候大家都会引发兴趣;但听着听着大家注意力就不集中了,这时候就到了图中第一个低谷,这时候需要指出来这个问题有哪些challenge,大家的兴趣就又被激发了;等大家兴趣来了,精力集中的时候,介绍你的一部分工作work 1;等介绍完第一个工作,大家又疲劳了,这时候指出来,即使有这个work 1,问题还不能被解决,因为有remaining challenge;接着大家又被调动了兴致,可以开始介绍work 2。
在2.2里面讲了对某一篇paper,如何选题和做规划。那真的到了写paper的时候,我自己有几点如何让文章写的更好的体会:
另外paper提交时候,可以交supplementary materials,虽然reviewer并不被要求强制看这个,但其实给我们机会,去include更多文章技术细节、实验结果的好地方;在后面rebuttal阶段,通常篇幅有限制,但如果你已经在supp里面未雨绸缪,可以省很多空间,refer reviewer去看你supp里面的内容就好了。
说到rebuttal,我还是比较幸运的,从导师那学到很多。导师已经是功成名就,业界泰斗那种,起初我以为他这个级别会对我们是放养;但我在哥大投自己第一篇一作paper的时候,导师可以说是手把手带我入门了。还记得16年CVPR review出来后,导师找我讨论rebuttal,我那会儿对写rebuttal并没有什么经验,也不知道可以用R1代表review 1等等。那天meeting开始已经晚上7点了,估计导师还没吃饭,我两就挨着坐在他办公室里,对着他的电脑,讨论reviewer提的一个一个问题。因为很多时候其实reviewer表达问题并不准确,他教我分析每个问题背后reviewer真正关注的点是什么。边讨论,导师边直接敲下我们讨论的notes,meeting完后,我看这notes基本上就可以算是个rebuttal的初稿了,比我meet前准备的draft强多了……