|

楼主 |
发表于 2005-12-15 20:45:09
|
显示全部楼层
我的自我培养
在学习上,我永远是个吃不饱的人。选不了课,我就去旁听。旁听后觉得老师讲的不好,我就自学。在我有空的时候,我就会去图书馆借书看。在我本科的时候,我就已经发现自己的一个特点,我会很快发现新的东西,并且学会使用它。虽然这些东西并不是创新,但是它们丰富了我的技能,让我有更大的能力去进行创新。我经常顺藤摸瓜似的从一个问题搜索出一大串我想知道的东西。然后借一大堆书回来,每本看一点点,只为找到我需要的答案。
计算几何课的一次作业,我为了写一个算法的演示程序,花了3天时间学了一点Java语言,正好能够完成那个程序。我开始接触到TeX的底层细节,看完了The TeXbook,并且找出一道练习题答案的错误。开始移植gbkfonts程序,作为我的CWEB语言的练习。看完了几乎所有 Xlib 的手册,了解了 XWindow 的工作原理。我接触到 Scheme,并且做完了 SICP 的大部分习题,还自己想出好多问题用Scheme实现算法。后来花了好几个晚上,把MIT课程6.001的录像下载回来。我才发现教授上课可以如此搞笑有趣,上课时戴上巫师的帽子,做一些滑稽的表演。我终于明白,有的计算机科学家居然可以去好莱坞演电影 这个课程让我领会到 LISP 的强大,改变了多年以来对这种古老语言的误解。它让我感觉到在看似纷繁复杂,不断更新的计算机语言的世界,还有那么一种永恒的美!接着我又学会了 Common LISP,并且开始用它来设计研究计算几何的一个函数库。另外还找了一些希奇古怪的程序来玩,写了一些心得体会放在网上给别人看。
我意识到自己数学还不够强,甚至有些怕,就开始看一些数学方面的书。Concrete Mathemtatics, What is Mathematics?, Science and Hypothesis, Godel Escher Bach, ... 虽然每一本都没有看完,但是我逐渐相信自己的数学能力,发现数学原来如此有趣,并不是做习题那么枯燥,也不像一辈子就拼命证明一个定理那么清高。才发现国内很多数学书用难看的符号把学生吓倒了,其实想通了就是很直观的原理。
我看了电影 A Beautiful Mind 之后深受感动,就去买了一本原著的书,它是数学天才John Nash的传记。它描写了20世纪初的Princeton,一群科学家生活的情景。我眼前浮现出在一个房间里,一群人在喝茶聊天下棋讨论问题激烈争论。我发现我从小内心向往的,就是那样的地方。我看到Nash是如何用“头脑暴力”解决一个他没有任何基础知识的问题。原来只要有了问题和探索的精神,就会有动力去获得解决它所需要的知识,最后将问题解决。发现有用的,重要的问题,而不只是寻找困难的问题,这样才会对人类有价值,才会有动力。我还看到一个真正的数学天才是怎样的喜欢恶作剧,又怎样因为过度的傲慢狂妄,想向世人证明自己的天才而发疯。我发现世界上有远比科学更宝贵的东西。我开始悔悟我高中时对待成绩不好的同学的态度。我不是一个天才,但是我要做一个好人。
但是我的研究却没有多少进展,至少我自己这么认为。我发现问题的根源,就是没有真正的讨论,没有真正的问题。
我们也有讨论,原来是这个样子
上完课,就该开始搞研究啦。可是研究什么呢?老师给我几篇论文看,意思是让我看看有没有什么想法。
我开始感觉没有头绪,就跟导师说能不能找师兄师姐跟我讨论讨论,还有别的人在做这个吗?他说,就你一个人做这个,每个人做一个题目,独立思考,这就是研究。我觉得是啊,我应该独立思考。可是过了一段时间发现不行啊,我想实现一个想法,但是我不知道是不是已经有人试过失败了。实验的时间开销会比较多,所以我想知道那么多厉害的人,为什么都不用这种明摆在那的方法?当我再次提出需要讨论的时候,他似乎有点生气的说:”你为什么总是想有人跟你做一样的东西啊?你不是想抄袭别人的论文吧?” 我不发话了。继续做我的实验,结果确实不理想。虽然自己实践很重要,可是要是能利用别人的经验,何乐而不为呢?这并不是偷懒。如果有人讨论,很多时候一个人提出一个问题,另外的人可能就会告诉他这个问题是不是有人做过,有什么重要性,凭直觉告诉他有什么难度。可是如果没有讨论,连问问“有没有人做过”的机会都没有!
后来我就经常上网看看国外的大学怎么搞研究,发现他们都有 seminar,讨论组。A Beautiful Mind 描述的 Princeton 以前的天才们每天都在一个地方喝茶,讨论问题,争得面红耳赤,回家分头思考,做实验,第二天喝茶时再讨论。那就是我从小梦寐以求的生活啊!计算几何课已经让我爱上了与人合作和讨论的方式,现在却孤零零一个人了。我必须告诉导师,合作和讨论是非常重要的。在我据理陈述之后,他说:“好吧。反正师兄师姐各自有自己的事,你要讨论什么就跟我和你副导师讨论吧。” 于是我就开始了跟他们两个星期一次的见面讨论。每次讨论都感觉他们不知道我在说什么,他们心里想的都只是这个能比别人的好多少呢?能不能投到这个会议呢?如此宏观。我觉得跟他们讨论完全是浪费时间。
后来课题逐渐有了新的同学加入,导师决定跟中科院数学所的人一起申请一个项目来研究。于是我们每两个星期去中科院讨论。不过感觉他们那边也差不多。中科院的老师觉得他们的研究太理论,期望我们能给他们带去一点实际的东西。可是我们也没有什么实际的东西,所有的问题都是从别人的paper里看到的。副导师就开始跟他们说这个问题有多么多么重要…… 他们也借此机会开始研究以前放下的一些问题。总之讨论的感觉就是没有目的,没有主题。有时有人说他在想一个什么问题,说了一会儿就被否决了。有时候就是一个人看了一篇paper之后做一个感想。我坐在那里就在想,我们到底在干什么?我们甚至都不知道什么东西值得研究,还研究什么?后来师弟师妹们就开始考虑把问题变一变,看看能不能产生新的问题。他们的做法,我跟他们开玩笑说就是“有问题也要解决;没有问题,制造问题也要解决!” 他们笑着点点头,“本来就是这样嘛。没办法啊。”
博士生论坛的时候,同学们都觉得有类似的问题,讨论不足,交流不足。所以我提议成立一个类似国外大学的 Common Room,用来讨论问题。可是大部分老师说:“这样一个房间,天天都要有那么多人在里面待着。谁来出这个钱?” 是啊,老师自己的办公室都要钱,哪里可能有什么 Common Room?就算有了 Common Room,在里面讨论的无非还是文章发到哪里的问题。制度决定了行为,我的设想太理想化了。
分析一下,为什么老师不提倡讨论呢?因为问题是有限的。老师辛辛苦苦这么多年搞来搞去都在搞这些问题,分配给你们每人一个,互不冲突。要是两个人都搞一个问题,这下好了。出了成果论文归谁?学校要求必须第一作者才算论文数。要是两个人都写论文,那么投到同一个会议肯定有一个要被 reject。这样对集体发展不利嘛,大家不就是发几篇论文混毕业吗?何苦?
paper, paper, 还是paper
说到paper我就痛心。我的方向上我至今还没有看到几篇我觉得像样的文章。我主要进行集成电路布线算法的研究。看起来高深,其实是很简单的问题,一个平面上有一些点是电路里的电极,现在需要用铜线把它们连起来,怎么样让连线的长度或者时延最短?这个问题跟几何上一个有名的问题 Steiner tree 问题有关系。我的导师就是以前写了一篇这样的paper发到IEEE transactions。
已经毕业的一个师兄就在他研究的基础上修改来修改去,发了好几篇paper。英文的不够还翻译成中文,投到国内的期刊。后来一个师姐又在这个师兄的基础上进行修改,又发了好多篇。可是在我看来,他们的论文纯粹就是炒冷饭,没有什么创新。一个问题解决了,那么解决问题的人显示了他们的聪明,至于这个问题对人有什么用,他可以暂时不管(虽然我也严重反对这种做法)。后来又有人来搞这个问题,多半是被老师分配来的。他也小修改一下,修改想法其实不费工夫,主要是你怎样把你的 Introduction 写好?可以让别人觉得你的工作有意义?这就是功夫。作家的功夫。我有一次面见INRIA的头目 Jean-Claude Paul 时,他就对我说:“Tsinghua students are all writers, not scientists.”
现在清华研究生做的事情无非就是,写好paper,然后找个地方投出去。SCI 的最好,EI的其次。偏僻的没人看的杂志也没关系,交钱也没关系。我就知道日本的一个SCI索引的期刊收1000美元的版面费。导师出钱,不投白不投,投了好毕业呵!
现在我也被“分配”来做这个问题。虽然说是一个有名的问题,但是这个有名的问题已经被研究了好几十年了。有很多挺厉害的人做出了很重要的贡献,但是我们为什么研究这个问题?我至今没有搞懂。
开头导师只是给了我两篇paper,据说是以前他一个得意门生写的,美国某大学的副教授。其中有一篇说是如何在不构造 Delaunay triangulation的情况下生成 MST (最小生成树)。看到这篇文章开头说在 rectilinear metric下, Delaunay triangulation 就不能用来构造 MST 了,所以他设计了一个新的算法。这个算法比起 Leo Guibas 的算法更加简单。文章里还提到一次 Matroid,让初出茅庐的我觉得高深莫测。我还专门去借了一本《Matroid Theory》来看,其实他的论文剩下的部分跟Matroid没有任何关系。可是我对“Delaunay triangulation 不能用来构造 RMST” 这个说法产生了怀疑。经过理论分析我觉得即使在 rectilinear metric下,Delaunay triangulation 也可以用来构造 MST 的。我觉得作者只是故意这么写,想为他设计算法的动机找一个借口。我决定实践我的想法,写一个程序从Delaunay triangulation 构造出一个 RMST。这本身不是什么创新的工作,可是我却在想,这样一个东西能不能用来构造 Steiner tree 呢?后来我真的就想出一个办法。实验表明我的算法比以前的算法要快几倍。
这是不是说我的算法是一个值得写paper的东西呢?导师说我应该写一篇,但是我认为我只是在挑别人的毛病时意外想出了一个改进的算法,并不会对将来的研究有什么启发。虽然程序快了一些,但是很少有那么大的线网需要这么快的算法,而且几倍的提高在我眼里不算是一个理论上的改进,而且这个算法不能推广到其他距离空间,可扩展性很低。所以我内心觉得这个结果不令我兴奋,不想写论文。但是在老师的一再要求下,我居然把这个研究写成了两篇 paper。按照他的说法:“应该分阶段总结你的成果。” 起初投出去的时候评委总是说这个东西不实用,导师说这是评委的问题,他们觉得不实用我们就投到理论一点的会议。经过几次投稿,还是失败了。我终于忍不住了,对副导师说出我的想法,我说:“看一个作家的水平,是看他扔在垃圾筐里的纸。就让我把这篇paper永远藏在我的垃圾筐里吧。” 但是他不甘心,说你要相信自己的实力,然后把我的算法胡乱夸奖了一番。我说我不管了,随便你怎么办。我就开始研究我自己喜欢的东西去了。之后他居然真的投中一个欧洲的会议,是被 LNCS 收录的,LNCS 是 SCI 索引的,所以我居然有了一篇 SCI 文章!我自己不喜欢的文章也是 SCI 了!
第二篇论文就更传奇了。几投不中,就其原因,评委说是没有和现在“最先进”的算法程序实验比较。而我没有比较的程序,就是那个让我觉得发 paper动机不纯的人的程序。没办法,求他给我代码。比了一下,确实比他快。不过我估计他程序写的有毛病,老是 core dump。而且从实验数据来看,运行时间增长的速度不符合他论文里声称的时间复杂度。但是没办法,他只给 binary,也不给源代码。程序快几倍,很有可能是实现上的问题,而不是算法更好。我的一个师兄以前就把他自己的算法戏称为“基于bug的优化”。我觉得这样比较对那个算法的作者不公平,完全没有发表的价值了。但是没办法,谁叫我们都是出来混的,没有人在乎这些。我还是记录下数据,添到论文上。一投就中,得了一个最佳论文奖。然后就有一篇校内新闻宣传:“我校王垠同学获得XXX会议最佳论文奖。这是大陆学者首次在如此高级别的会议上获得如此高的奖项。” 这个“高级别”的会议,在我看来就是个垃圾。美国人都把最差的论文投到这里,就是为了来旅游一圈而已。
我对自己的做法产生了深深的负罪感,觉得自己正在进入这团混沌,正在被同化。我决定换一个题目研究。我就开始考虑zero skew tree. 找了20多篇paper来看,发现他们没有什么本质的改进。而且对于问题本身的价值,他们完全就不清楚。有的作者后来甚至说,其实以前他们考虑的问题是没有必要解决的,因为实际应用中不可能遇到,我们其实可以把问题变成这样……本来一句话就可以说清楚的事情,又写成了好几篇paper。我就是这样在 paper的海洋中,找不到目标。
我见过的这种低级别的会议,低质量的论文几乎都是从 IEEE 那里出来的。道理很简单,IEEE 会议多,会议论文集都像两大块砖头,还是双列小字排版,当然能容纳下这么多的垃圾了。所以我对 IEEE 也没有好感。<a href=[[[SQ]]][[[www.wlzb.net/phpwind/read.php?tid=33727%26position=5]]]></a> |
|