原文来自:http://bbs.nuc.edu.cn/pc/pccon.php?id=49&nid=2107&order=&tid=149
硕士研究生学习的动机
一个朋友曾问我这样一个问题,他已经被保送研究生了,但是在选择方向的时候他的学长向他建议选择一个将来好找工作的简单的研究方向,否则其他的方向就只能够留校做老师了。我对这个问题有一些不看法。
首 先一点我觉得要端正的是做研究工作的动机。很多同学走上了研究生道路,但是并不明确自己上研究生的目的,例如有些同学希望通过研究生一张文凭找一个好一点 的工作,有些同学甚至只是因为成绩好一点,惧怕走向社会,然后选择读研,我认为这两种动机都是错误的。我想在读研之前需要明确,其实只有少数几种想法的学 生才是真正应该读研究生的:第一种是觉得自己本科学习的课程不够深入,希望通过研究生学习在本领域内积累更广泛,更深入的专业知识。第二种是希望在研究领 域有所建树的同学。有很多人认为通过研究生学习可以积累很多工程化的经验,我个人认为工程化经验的学习在企业中甚至要远远好过在研究院所中。例如在企业中 才能够体会到哪些工程经验和训练才是最有用的。在这方面我自己目前经验不多,只想对那些选择上研究生,希望在研究领域有所建树的同学说一些自己的看法:
针对我的那个朋友现在的能力,他足以找到一份相当好的技术工作。如果还是选择一般的通用化方向,那么研究生三年相对来说就是在浪费时间了。我的观点是,一般的开发工作他现在都能够胜任了,应当花3年 的时间做一些有意义的研究工作。例如数据挖掘,自然语言处理,模式识别。然后将它们用在一些有意义的应用领域,例如游戏开发,搜索领域(包括文本检索,文 本过滤,文本分类)。这样才能够体现作三年研究工作的价值。也是上研究生的真正目的,研究生毕业不是要找一个所有人都可以做得工作,而是从事一个自己喜 欢,自己擅长,又很有意义的工作,在这个领域你应当努力做到最好,得到大部分人甚至是这个领域权威的认可。
对于是否留校,我认为研究院校是一个很好的研究环境,如果自己非常喜欢研究工作并希望分享自己的研究心得给自己的学生和同行,留在学校做一名教师甚至是一个很好的选择,我们不能因为教师的待遇可能不是最好的就放弃自己的理想和信念。
深入的研究工作体现一个人学习的能力,就像 李开复 博士,在语音识别领域做到曾做到世界最好的成果,在加盟苹果公司后做多媒体工作,加入微软后做另外若干个领域的研究工作都能够做到得到世界权威的认可,这才是一个人研究能力的体现。不要为了找一个“看上去”还不错的工作耽误了自己的前途,眼光要长远。既然上了研究生,只要自己选择了一个自己认为有意义的方向,并且作了充分的考虑,要争取在这个领域做到最好。李开复的博士导师,图灵奖的获奖者罗杰.瑞狄在李开复刚刚进入研究生血迹阶段就跟他说:“你现在在你喜欢的领域并没有举世瞩目的成就,但是5年后你毕业的时候你一定要做到这个领域最好的研究成果”,5年后李开复做到了。
我建议大家都阅读一下“MIT人工智能实验室如何做研究”以及“我的五年研究生生活”这两篇文章,可以很容易的从Google搜索得到,从中可以深刻地体会到如何去做研究工作。研究生要选择有挑战性的工作,并要学会踏踏实实的深入做研究,才能在未来的工作中应对各种挑战。
研究生基础课学习的重要性
研 究生一年级主要的时间我想都应当进行基础课程的学习,过早的进入课题首先将自己定在一个很狭窄的范围内,不能够在计算机专业核心领域的课程有所深入,不是 一个好的选择。我自己在研究生一年级的课程中感觉因为自己没有投入百分之百的努力,在进入二年级的学习时,有些相关的领域就感觉有些吃力。所以在一年级打 下一个坚实的基础是十分重要的。对于任何一个研究领域,下面的专业课程都是重要的:程序设计语言问题求解(相关课程为:面向对象程序设计,约束式逻辑程序 设计,泛函编程),算法设计与分析,高级操作系统(有些学校也称“操作系统II”),统计学原理(图形图像的研究方向还要特别关注:计算方法学,最优化理论),数据库、仓库与数据挖掘。
在研究生基础课学习阶段,老师会根据学校总体的研究情况,将各个研究室涉及到本学科的一些共性问题作为重点进行分析讲解,这个时候课后练习就比本科的很多模拟练习更具有重要的意义,需要自己认真地独立完成才能够有真正的收获。研究生阶段课程的学习也不能仅仅只完 成 老 师的要求,在从事某一门课程学习的时候,要足够深入的研究这门课程相关的核心理论,研读足够深入的书籍。例如很多同学在本科的时候都听说过《计算机程序设 计的艺术》,那么在研究生阶段算法设计与分析课程学习的过程中,我们就应当努力去研读这套经典的书籍,为自己的理论研究打下扎实的基础。
如何做研究工作
研究生最重要的一个环节就是二年级开始的研究工作。正如我上面提到的,既然选择了一个自己喜欢的研究方向,就要争取在三年(直博研究生5年)内作出一些有意义的成就。这并不是一件容易的事情,具体的方法建议大家参考“MIT人工智能实验室如何做研究”这篇文章。
我想拿自己曾经涉足的两个研究领域作为一个例子说明一下:
最 开始我曾经从事过一段时间操作系统安全的研究,在这段时间我采用的主要方法是:找到本领域内最权威的一些著作首先认真研读(我选择的是卿斯汉教授编著的 《操作系统安全》,清华大学出版社出版),然后认真察看这些权威著作中提到的本领域内最重要的一些标准文档(例如操作系统安全评估的“菊皮书TCSEC”)和一些最重要的论文,例如“Secure Computer System”一系列的论文。阅读完足够量的书籍和论文后(例如2本领域的经典著作,10-20篇权威论文)还要做的工作就是了解别人曾经做过的工作,做到了什么程度,有哪些可以改进的地方,是否有可能提出一种新的观点等问题。随后我曾经关注过EROS,ASOS,Flusk和SELinux,也找了一些国内的安全操作系统公开的材料作为参考。并体会到安全操作系统的研究工作不但要深入细节,解决一些具体的安全隐患问题,更要在安全操作系统框架的设计,安全体系机制的构建上多下功夫。
本学期开始我从事的研究领域是文本挖掘与分类,由于对这个领域我开始几乎一无所知,所以首先找来了《统计学原理》《统计自然语言处理基础》《模式分类》《数据挖掘原理》等书籍打好必备的基础知识,然后选择了10篇本领域内很重要的论文进行了深入的研读,例如:
Inductive Learning Algorithms and Representations for Text Categorization [Susan Dumais,Stanford]
Jackson P., Moulinier I. (eds.) Natural language processing for online applications.. text retrieval, extraction and categorization (2002)
每一个阶段给自己布置一部分论文阅读,例如你可以在你的桌面上放置一个文件夹,里面放着最近一定要阅读的论文,并制定详细的计划按照计划执行。(研究生阶段做事情的计划非常重要,也是有序的工作的保障)
我建议每一个学生都加入中国计算机协会(CCF)和美国计算机协会(ACM)的会员(Member,不要加入Student Member,因为Student Member不能得到足够多的文字资料和会议信息)。这样不但能够访问到最新的论文成果,而且能够及时掌握本领域内最重要的学术会议,便于我们向同行学习交流。加入的方法可以查看他们的官方主页。
除了要加入一些学术会议组织外,还要善于挖掘网上有用的参考文献和资料。例如我在做信息搜索领域时参考的主要网上资源就有:
文本分类资源列表:
http://www.cs.helsinki.fi/group/doremi/categorization/categorylinks.html
http://dewey.yonsei.ac.kr/memexlee/links/categorization.htm
文本分类实现:
http://svmlight.joachims.org/
http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html
支持向量机参考:
http://www.csie.ntu.edu.tw/~cjlin/
http://www.cocw.net/mit/Electrical-Engineering-and-Computer-Science/6-034Artificial-IntelligenceFall2002/Tools/detail/svmachine.htm
计算语言学相关资料:
算语言学文档: http://acl.ldc.upenn.edu/ http://www.cs.cmu.edu/~pbennett/irseries/
统计自然语言处理基础 http://www-nlp.stanford.edu/fsnlp/
Information Retrieval相关参考 :
哈工大IR组机器学习论坛:
http://ir.hit.edu.cn/cgi-bin/newbbs/forums.cgi?forum=20
Carnegie
Mellon
University - Information Retrieval Discussion Series
http://www.cs.cmu.edu/~pbennett/irseries/
Statistical natural language processing and corpus-based computational linguistics
http://www-nlp.stanford.edu/links/statnlp.html
有关发表论文
发 表论文是对研究成果的一个很好的总结和反思的过程,如果认为自己的工作足够好,并希望得到更多同行的了解,我们不妨将自己的研究成果写成论文,但是一定不 要为了做论文而搞研究,这样出来的研究成果可能是没有实际价值的。我觉得不应当鼓励以发论文的数量来衡量研究生的研究工作,而更应当将重点放在大量深入的 研究工作中去。
我自己的研究生学习还在进行当中,我会不断地积累自己的经验与大家分享,也希望大家将自己的研究方法和心得介绍给自己的朋友,共同为营造一个良好的研究氛围做出自己的努力。
希望能够与您交流研究的心得,我的联系方式是:
北京工业大学 计算机学院 曾毅
zengyi@emails.bjut.edu.cn