万字长文:哥大CV博士总结五年读博生涯,即将入职新加坡国立大学任助理教授
极市导读
在这篇文章中,哥伦比亚大学博士Mike Shou讲述了自己的五年读博经历,包括如何确定研究方向、如何确定单篇论文的选题、如何做报告、如何做出职业选择等,希望可以给正在读博或准备读博的你提供一些启发。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
0. 写在前面
1. 万事开头难 (第一学期)
2. 方向比努力重要
state-of-the-art 的 paper 有没有开源的代码?目的是你能迅速复现 baseline,熟悉整体 pipeline(如怎样预处理,后处理),加深对实现和细节的理解
有没有对这个 topic 有 hands-on 经验的师兄,或者 community 里面 approachable 的前辈?目的是,当你遇到实现上的细节问题,可以及时咨询和得到反馈
这个 topic 有没有比赛,或者标准的 benchmark?目的是,有大家已经定义好的数据,实验 setup,评价标准;这样,你有可以直接比较的 baseline,outperform baseline 的时候也容易被人认可
What are you trying to do? Articulate your objectives using absolutely no jargon.
How is it done today, and what are the limits of current practice?
Who cares? [Support other’s research? Shape research landscape? Power applications in industry?]
What's new in your approach and why do you think it will be successful?
If you're successful, what difference will it make? [e.g. Contributions in theory/modeling? Improve accuracy by 5% on dataset A, B, C…?]
What are the risks and the payoffs? [Further, how would you mitigate the risks? If your proposed method does not work, what could be alternative design? These can end up as discussions such as ablation studies in your paper.]
How much will it cost? [e.g. How many GPUs do your experiments require? How long is each training process? How about data storage?]
How long will it take? [How many hours are you going to work on this per week? When is the submission DDL? Can you make it?]
What are the midterm and final "exams" to check for success?
3. 谈谈 Presentation
如果可能的话,事先了解你的听众背景,是跟你做同一个 topic 的,还是同一个大领域但不同 topic 的,还是完全其他专业背景的。需要根据听众背景,定制和调整:比如,需不需要多介绍些背景?需不需要更深入技术细节?等等
一页 slide 尽可能 focus 在一个点上,不要信息量过大,否则听众很容易 lost
尽可能多用图片表达,不要大段大段的列文字,A picture is worth a thousand words
上面这两点,其实 principle 都是尽量让要讲的内容简单明了,因为很多时候我们在听 talk,这样被动接受的时候,接受新知识的能力是比主动接受时候(比如看 paper)低的。
当听众问问题的时候,If you don’t know the answer, just say don’t know.
如果是跟 mentor 日常讨论的 slides,因为会讨论到很细节的东西,有些图 PPT 画起来,很花时间,而且通常这样细节的图还挺多,所以可以就 ipad 上面手画一画,截个图放到 PPT 里就好了;如果是正式一点的 presentation,写 slides 跟写 paper 的 principle 有点像,不要太 focus 在细节上,更重要的是讲清楚 motivation,为什么这样设计,细枝末节的不关键的内容,放在 backup slides 里面。
先给一个 Talk。写 paper 最难的是构思 storyline,而最好的完成这一步的方法就是先对你的工作做一个 slides,给周围的人 present 一遍。这个过程中,你会梳理好自己的思路,画好文中的 figure,准备好实验结果的 table,周围的人还可以给你提意见,帮助你完善,等这个 talk 给完了,后面写 paper 就会顺畅自然了。其实我现在,如果准备投一个 paper,当做了一段时间后,就会按照最终 presentation 的思路,准备 slides,用在每周给老板们 report 时。开头先快速 review 一下做的 task 和提出的方法,remind 一下 context,然后重点 focus 在那周做的新东西上,所以每周汇报的 slides 可能 80% 都是跟上一周一样的,然后新的方法和实验结果的那几页 slides 是新的,有比较多的细节。
用 Google doc 做语法检查。刚写好的 paper 有 typo 和语法错误是很难避免的,但常常会被 reviewer 揪着不放。大家写 paper 如今大都在 overleaf 上,但 overleaf 的查错还是不够好,建议可以写完 paper 后,贴到 Google doc 里面。几年前开始,估计是由于 deep learning 对 Google NLP 的改进很大,感觉 Google 自动改的质量已经非常高了。
Rationale 很重要。不光是要讲清楚你怎么做的,更要 justify 你问什么这么做;不光要讲你的结果比 baseline 好,更要解释为什么好;读者看到的不应是一个 “使用手册”。有时候我们写 paper,花了很多篇幅写了很多实现细节,但是更重要的是,解释 “为什么”,这个背后的逻辑和 insights。
大部分 paper 都是提出一个新的方法,这类方法型 paper 似乎都可以套下面这个框架:
Introduction:可以分为以下几个部分:
Problem definition
Previous methods and their limits
简单描述你是提出了什么技术来 overcome 上面的 limits
一个图,非常 high-level 的解释前人工作的 limits 和你的工作怎么解决了这些 limits,最好让人 30 秒内完全看懂
最后一段如今大都是,In summary, this paper makes three contributions: First work to 解决什么 limits;提出了什么 novel 的技术;outperform 了 state-of-the-art 多少
Related Work:一般三五个 subsection,分别 review 下相关的 topics,同样不光讲 previous work 做了啥,更要讲自己的方法跟前人工作有啥不同
Method
这是文章的主体,按照你觉得最容易让别人看懂的方式来讲
可以第一个 subsection 是 overview,formulate 一下你的 problem 给出 notation,配一个整体 framework 的图,图里面的字体不能太大或者太小看不清,要有些细节,让人光看图就能明白你的方法是怎么回事,但不要过于复杂,让人在不超过 2 分钟的时间看完这张图
然后几个 subsection 具体介绍你的方法或者模型;如果 testing 跟 training 不太一样,最后一个 subsection 介绍 inference 时候的不同,通常是一些 post-processing 操作
Experiment
Datasets
Implementation details such as pre-processing process, training recipe
Evaluation metrics
Comparisons with state-of-the-art
Detailed analysis
Alternative design choice exploration
Ablation studies
Visualization examples
Conclusion (and Future Work)
Abstract:是全文的精简版,建议在 paper 写完第一稿差不多成型了,有定下来的成熟的 storyline 了,再去写 abstract;大概就是用一两句话分别概括 paper 里面每个 section,然后串起来
4. 记四次开会
5. 记三次实习
6. 没那么简单的事
7. 毕业后何去何从
8. 杂七杂八
推荐阅读