如果从做第一个大创项目算起,距今已经6年了。如果进研究生组算起,距今已经3年了。其实我发现自己还是对科研没有概念,但又不能太悲观,于是决定说自己对科研有一点儿感觉。我一直认可科研是有套路的,掌握科研的套路以及具备执行力就可作为科研的门槛。组里的博士师兄大多掌握了这种套路,但是我发现我还没学来。从上一阶段论文的投稿到录用,似乎对科研成果的发表有了一点儿感觉,但一直迷迷糊糊往前赶,并未有所反思。目前到了一个窗口期,想安静下来想想。即然决定了要读博士,那就要做点儿对读博有益的事情,这也算发展自己的事业了。从前面和老师面试的反馈来看,目前并不具备完整的科研能力,或者说没有受到完整的科研锻炼,对怎么做科研,甚至什么是好的科研?什么是坏的科研也没有判别标准。感觉这是有点儿麻烦的,这将会是一种制约,无法向更高层次展开跨越。因此想借这篇博客反思一下。
第一个问题永远是什么是科研?在我看来似乎科研一直与创新所绑定,搞科研的人就是在不断创新,不断有成果拿出来。之前学到的创新四个阶段:1)无中生有 2)标新立异 3)新瓶装旧酒,新方法解决旧问题/旧瓶装新酒,旧方法解决新问题 4)移花接木,旧方法旧问题排列组合。在科研的角度,我之前一直以为创新就是发论文,但随着对工业界的了解不断加深以及老师各种项目做的一多,我觉得创新在各种项目中也能得到体现。不过不能说我做的项目就是我的创新,项目中的创新在于其构建者或者是策划者,而我只是一个实现者,可以算作工作量,但不能是创新。进入硕士以来,零零散散做了很多个项目,也在积极的把成果转化成收获。各种形式:论文,专利,比赛奖项。然而总觉得有哪里不对,觉得这不算是科研。
一直有进入科研的想法,但是总是感觉还在门外晃悠。关于如何进入科研,好多老师直接说的就是看论文,问了师兄师姐也说要看论文。很少有人告诉我为什么要论文?对于一个科研新手来说,怎样做一个切入?首先我认为看论文的目的就是模仿,甚至科研前期的工作就是模仿。在了解了科研论文八股的框架之后,模仿别人论文里的逻辑去写,也就是做填坑式的科研。先不要想着自己去搞大的创新,先学会如何修改别人的东西。也就是通过读论文去梳理出现在主流的模型,在主流的模型上做修改然后当作自己的模型,这种方式创新性可能不会太大,当对于一个科研小白来说我觉得是快速建立科研自信的方法。在科研产出上来讲,不一定上来就要发A刊A会,先以小创新走完完整流程,发个C我觉得也是很好的。但是如果你完成了一篇C之后,我觉得就不要再水C了,如果你想做科研,意义不是很大了。需要对自己高标准,高要求,去经历一下高水平科研的程度,这样会对科研有更深的理解。
既然科研有套路,那科研的顺序是什么?我觉得可以用三个学来组织。第一个学,就是读文献。当然读文献也要方法(会一点点总结这个方法),通过读文献找到现在用哪些最新的方式来解决问题。这一步骤并不简单,首先要大量的看,大量地思考。关于读文献,其实看上去我看过的论文也不少,但我并未从此收获甚多,这总是令我很疑惑,我现在发现,原来是没有做到集中读文献。往往是读了几天论文,还没有找到感觉,就投入到某个项目的实践中了。没有进入到深度思考,简而言之就是看了个乐呵,没有从中有所收获。原来论文读多了就是会有一个特别的感觉:研究这个内容的就这么几个团队。在顶刊顶会上看到一个表达挺好的,一看原来是他们组,这种感觉还挺有意思的。读文献有两个作用吧:了解思路+提升写作。从目前来看,当我遇到一个没开源的论文,大概率难以把它优秀的思想融入到我自己的东西里面,还只能当一个学术裁缝,去缝别人的开源模块。但也不要紧,学会了论文的思想,即使没办法复现原文,也能找到另一个开源模块把它替代一下。另一方面就是写作,我发现论文写作这个事情真的很难。不能简简单单的表达,即使意思清晰,用词不当也不行。要用正确的科研术语,这样大家才能够读懂。并且在各个方面逻辑一定要清晰,作为理工科,没有逻辑的论文一定读不下去。好的逻辑结构会让人读起来感觉心旷神怡。读完了文献,就要总结,就要整理。这里的整理简单理解成分类吧,可以从方法的角度分类,可以从文献的类型分类(技术,综述,框架等等)。将文献正确的分类,并把文献穿成一个串。尽管这种方法看上去初期很花时间,很费精力。但从长远的角度看,对于这个领域的理解是很有帮助的,是一个基础性的内容(所以我有点儿理解为什么都去搞应用,而少有投入于基础学科,这种不停投入看不到结果的感觉实在是太不好受了)。
从方法上看,方法是多样的,相关的领域就是基于人工智能这一些。关于人工智能的基础从19年就开始接触,但一直拖着到现在也没有系统的学习,因此每每涉及总感觉受此制约,此缺点还是越早补齐越好,免得酿成大错。
前面说到我一直参与到科研项目中,我一直具有一个观点:科研是体现在项目中的,不是体现在论文中的。我觉得项目是能够转化为社会生产力的(是有经济价值的),论文只是成果表现的一种方式。从感觉上来说,论文往往是根据创新性的,但我总觉得应该把论文里面的创新性体现于科研项目之中,才觉得这个创新是有社会意义的(当然仅限个人观点啦~可讨论,可批判)。
前段时间一直想写申博计划书,就纠结于写什么样的内容,研究什么方向,研究什么问题?最后得出的结论是:我所希望的科研方式,应该是从实际生活中寻找问题,并用新的手段去解决问题。而不是先想到一个不知道算不算问题的问题,解决完了再去寻找应用场景以凸显应用价值。这种方式好像也能写论文,但总感觉本末倒置。简单来说,相比于“你去把A和B结合一下看看,有什么可以挖的”,我更倾向于“你去看看怎么更好的解决问题C”。
有一个关于研究概念的问题,在硕士期间一直迷迷糊糊:研究领域,研究方向,研究内容,研究点,研究兴趣。这几个词,我之前也没有太大的区分,只是发现每次各种科研申报书上都会有这些东西。现在反思一下,觉得它们有一个从大到小的包含顺序:研究领域是最大的,比如人工智能、无线通信这种。其次是研究方向,就对应到强化学习、语义通信。研究内容我觉得是和具体的问题挂钩的,强化学习解决路径规划问题,语义通信解决图片传输问题。研究点就是结合方法解决问题做具体的事,如DDPG解决路径规划问题,用VQVAE实现图片传输。至于研究兴趣,它和研究领域差不多吧,都是一个比较大的概念。
对于一个有志于从事科研的人应该明确的是:研究内容应当是多个,也就是要找到多个问题,而且问题之间应该有强烈的逻辑连接。这个往往会从博士论文中看到,硕士的因为内容较少,体现的不明显。确定研究内容这个事情要着急(但不要赶时间),明确了方向后续走起来将会更加稳当~
更新于20240821
又经历了一个完整的科研周期的时间,在申博的路上有对科研增加了一层的感悟。自从选择计算机专业以来,似乎我很少把计算机和科研联系起来。在本科阶段,计算机似乎就是锻炼代码能力,leetcode刷的越来越飞起似乎就是提升的方向。而到了读硕士的时候,不知不觉的时候就把代码能力慢慢淡忘了,也不再去刷代码训练数据结构,唯一和代码保持联络就是读开源代码改开源代码,以至于我慢慢模糊了自己的代码能力究竟如何。
这次去学术实习交流,导师和我说了他自己理解的做科研的三个先决条件:1. 自驱力 2. 能坐的住 3. 工程能力。乍一听没什么感觉,只是觉得是老生常谈,但结合自己思考一下还是有很多可琢磨的地方。什么是自驱力?做科研的人往往具备一个好处:时间自由。相比较在工业界上班的人,科研工作者的时间更为灵活。但这个并不是说做科研的人更清闲。这份自由就像一把双刃剑,在面临奶头乐的诱惑时,自驱力就是最好的武器。其次是能坐得住,虽然科研不是坐出来的,但是想要出成果是一定要坐下来的。灵感可能来自于生活中的一瞬间,但是灵感的实现一定是要久坐落实下来的。最后是工程能力,也就是我上面说的代码能力。但和开发的代码能力还是有一点儿不同。做科研往往是站立在巨人的肩膀上,特别是在目前这个开源越来越多的时代。说学术裁缝难听了一点儿,但是把模块拆分然后进行拼接是实现科研思路的重要手段之一。在我所处的AI领域,机器学习就像是内功,等同于数据结构之于编程的意义。内功强劲才能对需求实现游刃有余。自认为在这三个方面都有所欠缺,所以还是要多多学习。
另外一个感悟是来自信息搜集,现在正处于一个知识大爆炸的时代。每天都有很多新的东西在涌现,而如果我们跟不上新的潮流,或者是没有在新东西出来的一瞬间洞悉,就很容易被落在后面,好的想法真的是抢发。作为个体来讲,想搜集到所有全面的信息是极其困难的。因此,利用工具是我们很好的选择之一。现在存在这样的一种机构,比如各种微信公众号,知识星球,自媒体平台,以传播科研信息为使命(当然也不是白干,肯定有获利渠道)。而我们就可以利用这些渠道去获取一些相对比较新的信息,把刷手机变成一件有助于科研的事情。当然,最好还能够成为信息的发布方,这样的理解肯定是更加深刻的。为自己营造一种这样的信息环境,也把这样的信息搜集当成一种内化的习惯,我想这也是一种提高的方式。
又完成了一篇学术写作,这次写作和之前的有所不同。在我之前的观念里,科研写作是八股文,解决的问题应该是引起性能不好的直观原因。但是这次的写作过程中,指导老师融入了一种启发思维,也就是问题的指出可以是自己经过思考的想法,可能这个想法别人关注过也可能没人关注,如果自己觉得自洽也是没问题的。科研的目的就是一点儿点儿接近事物的本质,只要往这个方向推动的行为都是有意义的。