科研小萌新的探索之路

早在今年五月份左右的时候,师兄就跟我说要准备下AAAI。那时距离deadline还有3个多月,时间完全充足,我也是跃跃欲试。因为自己所处的实验室科研氛围非常浓厚,本来也是打算研一投稿一篇,无论中与否,也是一种锻炼。于是,跌跌撞撞也开始认真专注于自己的科研探索之路。

我的研究方向是哈希检索,虽然这个方向已经趋近饱和,但摸索大半年,自己也是想到了很多感觉可以做的idea。阅读文献——产生idea——实验验证,这个过程确实非常令人兴奋,印象在六月份的时候,自己无论是在走路、吃饭还是在睡觉前,脑海里都在不停地思考,想着这个idea可以如何改进、这个问题可以怎么解决?手机里的待办清单里还保留着自己很多半夜两三点突然想到的点子。那时有很多瞬间,自己都膨胀到感觉都可以发好多篇AAAI和CVPR了。但是,理想很丰满,现实很骨感,很多idea在不停得实验验证后,都宣告失败,但是依然有几个点子我觉得是可以去做的,只是一直没能找到比较好的解决方案。随着时间不停地推进,AAAI2020的dealine也即将临近,加上师兄的催促以及建议,自己也是暂时放弃了对先前一些想法的探究,然后在一天之内强行“逼”出了一个idea。虽然这个idea的实验效果很不错,但是创新点很小,而且也不是自己先前研究的重点,所以总有一种不是很待见的感觉。在七月下旬的时候,自己最终也是逐步确定了论文框架,并开始着手自己的第一篇会议论文。不过由于之前没有任何投稿经验,英语写作也是多年未碰,整个AAAI的准备过程可谓是磕磕碰碰,踩了许多的坑。

首先是论文的初稿写作。自己采取的方法是先构思整个论文的架构,包括针对的问题、贡献、比较的方法、要做的实验等等,在整体框架大致确定后,再进行写作。不过俗话说,万事开头难,多年没用过英语写作,在着手Introduction的时候,很多想法用中文大致表达得出来,但是用英语一句话也写不出来。最后憋得难受,只好不停得参阅现有论文的写法,然后借助万能的翻译软件,写完一段中文翻译完再修修补补放进论文,不过这样出来的结果真的是惨不忍睹,更有小伙伴表示有种高中英语写作的既视感,很直白。不过作为论文初稿,自己想也是蛮凑合着吧,大致思想表达正确后之后再进行大改。

然后中期阶段遇到最大的一个问题就是baseline的实验。由于深度哈希的backbone没有一个统一的标准,加上各种千奇百怪的实验设置,相同的方法在不同的论文下的数据真是天差地别,另外由于需要precision-recall curve的实验,只好自己重新跑一遍所有baseline的实验,这过程真的是痛苦万分。哈希领域发展了这么多年,但是所有方法的代码真的是杂乱无章,非深度的深度的,数据集的不同划分方式和不同的特征数据,基于matlab、caffe、pytorch、tensorflow各种框架的代码都有,有的官方提供的代码跑出来和论文上的数据差很多有的反而还高很多点,有的方法也没有在ImageNet上的实验还需要自己去调参,调完结果不理想还一度怀疑自己写的代码是否有问题。前前后后足足跑了两百多个实验,才勉强得到了论文的结果,但依旧感觉不是理想(其实是有些数据比原始论文低,感觉会被reviewer怼)。这个过程也说明了一个问题,就是我在哈希这个领域的基础打得不是很扎实,很多经典工作的实验都没有进行实验,而相比最近认识的一些同是研究哈希的小伙伴们,他们就会自己把一些经典的工作复现一遍,即锻炼了自己的编码能力,也对论文的方法有了更深的理解,这也是自己将来在新的方向上需要注意的一个点。另外也深感一个权威性的baseline对一个领域的重要性,这可以避免疯狂的灌水以及人为刷点的工作的出现。如果研二有时间的话,准备把整个深度哈希的论文整个到一个框架里,希望能成为在哈希领域另一个强有力的baseline。

最后,在论文的初稿和实验部分完成后,就是师兄和老师们的各种修改意见了。这个阶段也是很艰难,一个是论文的写作确实太粗糙,错误百出;另外一个就是方法的包装上和老师们的意见有着许多冲突。在文章的初稿阶段,idea的包装方法都是自己琢磨出来的,不过确实很不行,在师兄的意见下,对文章的框架以及针对的问题进行了一些修改。 而后到老师修改时,整个文章的框架又完成改变了,和自己之前的想法完全不同,有不少地方感觉也是有点怪怪的。不过自己水平比较低,还体会不到老师的境界,于是就按照老师的框架进行完善。然而最后到另外一个老师修改的时候又被完全否决了。那时感觉自己好几天的时间都是在做无用功,相比于实验室其他同学的论文已经都几乎定稿,自己的Introduction却还在一遍又一遍的重构着,心态真的是差点崩了。不过无论做什么事情都得尽善尽美,心态调整了回来后,仔细想了下老师们的意见,感觉也是有很多值得借鉴的,于是综合了老师们和师兄的意见,然后加了自己的一些想法,才确定了论文的最终框架。这个过程真正让我感受到一篇论文的来之不易,一字一句都要细细斟酌,虽然想法有点出入,但老师们和师兄(特别是鸭哥老师!)还是耐心得在指导着我,真的是非常感谢。

总结整个论文的准备过程,最大的心得体会就是:

  • Introduction一定要反复打磨。先用中文给出整体框架,然后和师兄老师们进行充分得讨论之后确定了最终框架,再着手论文的写作。一个论文,最重要的部分就是Introduction,后面的无论是方法部分还是实验部分,都是Introduction的具体展开。这次投稿犯的最大错误就是Introduction没有充分讨论就进行写作,导致整个论文各个部分都不停得重写,耗费了许多精力。
  • 基础工作一定要做好。论文的实验部分最重要的就是和现有方法的对比,之前自己在验证各种idea的时候,都是直接对比实验结果和先前论文的数据,但是在实际实验时,会发现论文的数据永远是理想的,即使利用官方代码也不一定得到和论文一致的结果,导致实验部分的数据对比和预期的不一致。比较正确的做法是,一个领域在研究时,对于经典文献,除了了解方法的核心思想,也要尽可能得复现其实验(或运行官方代码),确保论文的idea是确实有效的,而不是各种trick的叠加组合,这也能进一步启发我们未来的研究方向以及不同方法之间的公平对比。
  • 有挑战性的idea再进行投稿。目前中国的学术圈,论文灌水现象非常严重,很多人都存在着一种急功近利的想法,没有关注于idea的深度,而只注重于idea的包装,导致大多工作都是没有实际意义的。当然,这也是目前我存在的问题。正如鸭哥老师所说,一个好的工作应当是在充分分析现有方法存在的问题的基础,结合实验结果得到自己的创新方法,而不是一拍脑袋的出来的结果,这样的工作更具有深度,更具有启发性。先前在研究哈希时,大部分的时间都是在关注于loss的设计,并非这次AAAI的idea,从而使得整个论文的撰写过程,我都有一种整个idea很一般被accept的可能性很小的感觉,一直想着赶紧结束就能继续研究先前的idea,这是一个非常不好的现象。因此,我觉得良好的科研应当是在有了一个确实可行的idea之后再进行投稿,而并非让dealine逼着你想出一个缺乏深度的idea,写出一篇对整个领域毫无意义的paper。
  • 不要玩游戏!这个问题确实很尴尬,在论文的准备过程中偶尔会和大家一起玩一款手游,这导致自己的注意力无法长期集中、效率低下、心浮气躁,这个问题在自己本科期间准备毕设的时候也出现了,而且具体的表现也基本一致。总而言之,以后一定不要再玩游戏了!

总而言之,这次AAAI的投稿被accept的可能性基本很小,虽然花费了很多心思有点可惜,但是自己确实也学习到了很多东西,包括论文的写作、idea的挖掘以及实验的设置等等,到下次再投稿的时候,自己应该能有一个质的变化。再次诚挚感谢各位老师和师兄的耐心指导!

(说个题外话,感觉科研圈都是太小了,大家都是在做着类似的工作,没有太多的创新点。这几天偶然发现上个月在arXiv上刚公布的有一篇论文的idea和自己几乎一模一样,无论是代码的书写逻辑还是实验的设置,都和自己现在的版本几乎一样,当然人家的包装和书写比我高了太多档次(虽然这篇论文先发的,但我真的没有抄袭!/狗头))

贴几张这次准备过程的照片,权当纪念 (^__^)

2261567602701_.pic.jpg

2281567602703_.pic.jpg

2271567602702_.pic.jpg

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×