☆科研到底应该如何入门?
很多科研小白都有过这样的苦恼,刚读研时老师给了个领域方向、几个关键词,让看看论文,然后就去云游四海了,一两个月见不到一次,留下你在浩瀚如繁星的论文库里挣扎狗刨;虽说师傅领进门,修行在个人,但很多人连门都没有摸着,组会分享做的ppt常常不着边际、让人一头雾水。时光匆匆流去,走了不少弯路,科研到底应该如何入门?
其实,科研创新最重要的是找创新点,而找点最需要的是思考方式上的提升。
导师忘记给你的发论文秘籍,今天我总结出来以下五个步骤给你。
☆1. 问题,问题,还是问题:
刚读研的时候,拿到一篇论文,算法、模型、实验、成篇成篇的推导和公式,看不懂是一件很正常的事情。但是,你一定要看懂的一点,是一篇论文所解决的问题和挑战。因此,第一步是,每当看完一篇论文,问一下自己,它解决了什么问题,如果回答不上来,请再看一遍,重点看摘要和第二章动机。
发现问题、解决问题是科研创新最重要的思考方式,也是很多国内的学生所欠缺的。因为国内的评价体系过于单一,我们从小习惯了刷题、看标准答案、考试的应试教育,惯性的认为考高分就是优秀。而在国外的多元评价体系里,考满分和考六十分都算是通过,不需要拿时间去刷题、拿分数去麻痹自己,而是拿时间去思考自己热爱什么,把时间投入到自己热爱的事。
展现人生价值的,不是别人口中的优秀,而是自己心中的热爱。
因此,看论文的过程中除了发现问题,还要思考一件事,就是要不断摸索自己所在领域的研究价值,并找到真正值得研究的好问题。
☆2.建立知识图谱:
现在你已经看了半年论文,了解了很多问题,可它们就像一团乱麻,让人感觉“找不到创新点,看再多的论文也只是浪费时间”,怎么办?这个时候,你需要做第二步,建立知识图谱。它有很多的形式,比如思维导图、目录,而我最推荐的是excel表格,创建一个表格,一共十列“场景/问题/机制/模型/算法/实验/工具/结论/未来工作/创新点”,然后把看过的觉得好的论文按行放进去。这样既能保证你看论文的效率,想到某篇论文时不用再从头看一遍,只需看看excel,又能帮助你抽象事物的本质,并建立联系。
很多关于提高记忆力、理解能力的书,比如教你如何一晚上记住七百个人的名字,如何三天背一千个单词,其实都是一个道理。我曾经看一篇论文看了三天看不懂,组会给导师汇报时,导师说你把论文发我,他当场开始看,鼠标滑了滑,花了三分钟,就给我讲清楚了这篇论文。为什么他只用花三分钟?因为他能快速抓住本质,并与已有的知识建立联系。
学习、记忆、理解的过程,其实就是抽象事物的本质,并建立联系。
如果你经常练习抽象事物的本质,并建立联系,比如做成知识图谱,你将拥有比别人更快的学习能力、和把异常复杂的难题化简的能力。这是你读了十几年的书一直在做却浑然不觉的事,也是读博要培养的核心能力。
☆3.相中一篇论文:
现在你已经有了一个长长的excel表格,觉得别人什么都对,什么都好,就是不知道自己应该做什么发论文,怎么办?第三步,相中一篇论文,它可能发表于三到五年前,比较新,但引用量还不错,你觉得它写的特别好、很有价值,或者它是其他很多篇论文的“爸爸”。那么,请跟它软磨硬泡、死缠烂打,彻底把它吃透,做到了然于胸。然后,它的问题就成了你的问题,它的相关工作就是你的相关工作,它的模型、算法、实验工具也都可以借鉴,比如复现它的算法作为你的对比算法。
也就是俗话说的,站在巨人的肩膀上。
☆4.组合式创新:
科研小白的第一篇论文,很难做到颠覆式创新,大多是组合式创新。第四步,即,有一个A,有一个B,你做了A+B,然后把它命名为C,并证明A+B=C且C带来了好处。组合,可以是增、删、改、换,比如增加约束条件、删除不合理的前提条件、改变优化目标、改变求解方法、换个应用场景。
就好比,有人喝奶,有人喝茶,把奶和茶倒一块,就成了风靡全国的奶茶,属实组合式创新;用什么奶,用什么茶,什么样的奶茶比例,加多少冰、加多少糖、加不加珍珠、奶盖、椰肉、水果,口感不一样,又可以有好多创新,各家各有配方,所以有了喜茶、一点点、茶百道、CoCo、烧仙草等等。
☆5.占卜师 vs 淘金者:
现在你已经大概有了创新点,你需要实现它,但突然觉得自己好菜、实现它好难,做不出来,怎么办?很多人都有畏难心理,所以往往拿着锤子找钉子,认为我会什么,我就只做什么,比如只会某个算法或者某个工具,就用那个东西。其实这样不好,我把这样的心态比作淘金者心态,即你找个坑就开始往下挖,不知道该挖多深,挖浅了挖偏了挖不到金子,挖深了又发现自己掉进了自己挖的坑里爬不出来。
相比于淘金者,我更推荐占卜师的心态。一个领域就是一颗星球,你不要着急拿着铁锹开始干,你先占卜一下,根据这个星球的年龄、地质成分、气候条件、元素分布,看看哪个地方多深的位置会有金子,储金量有多少。
什么意思呢,两方面,一是说论文的实验仿真可以是最小实现,实验是辅助证明正确性的,如果你能通过理论上证明很多部分的正确性,比如证明了金子的正确位置且比较浅,实验可以做得相对简单,稍稍挖一下,有金子露出来了实验部分就可以了;二是说,如果你占卜出来金子埋得很深、储金量很大,那么,不要一个人埋头苦干,可以给导师汇报,拉着师兄师姐学弟学妹一起搞,有坑一起挖,出坑一起填,实验实现只是时间问题。
我个人实践,对于科研小白,按照以上五步,坚持半年到一年,发一篇六页左右的会议论文,或者写一篇综述,应该不成问题。
如果你的论文依然被拒了,请不要灰心,最后,奉上发论文的终极秘诀:
“好论文都是改出来的”。
点赞,做科研我个人感受最深的也是找问题,问题的新颖性决定了motivation的高度,而method可以为了这个motivation无限调整。我曾经有个误区就是看论文只看别人怎么去解决问题,不看别人的问题是什么,走了很多弯路。
☆6
大家都是玩模块,如何你的能比别人的好呢?是要有一个物理概念
踏踏实实的做好每一件事,专注,谦虚
把结果看清,这是做好的过程中自然而然得到的
相关工作不是你的工作,写论文先写自己的工作,相关工作可以最后写用来凑字数
☆7
研究别人的模型为什么好,而不是研究差的模型为什么不好
论文的几个部分如何读?
* Abstract 我一般在自己决定是否要读一篇论文的时候会读。但是如果是已经确定是一篇要读的论文(经典论文或者他人推荐的),我经常跳过。一个好的电影谁想先看故事梗概呢?
* Introduction 是我最喜欢读的部分。它可以让你了解作者对论题甚至该领域的真知灼见,加深自己对领域的理解。通常要真的弄懂一个领域,2-3年的积累和沉淀是要的。
一个好的引言是什么样的?Don Geman 给过一个标准:如果读者是论文reviewer,看完引言就可以决定是否accept or reject了。计算机科学很多时候是一层窗户纸,Introduction会点破这层窗户纸,同行一看就明白整个论文在做什么,意义有多大了。一篇好的Introduction,一定会对读者带来或多或少的心里冲击。
Related Works 可以帮助我们查查漏读了哪些文章。如果你对当前领域已经很熟悉了,也可以跳过。另外在阅读相关文献时,高频出现的名字或单位一般是这个领域的关键贡献者,我们平时就可以多跟踪他们的出品。
*Approach 部分阅读的原则是先整体,后部分。一般论文会有一个概况文字描述,或者配有一个系统框图,我们先快速了解全貌,特别是部分之间的关系。然后再具体研读每一个部分。
* Experiment 部分如果和我们手头的工作很相关,就要非常仔细的看细节。否则,就重点看看实验结果是否有力地支持了文章的论点。
* Conclusion 可以看看作者指出的方法局限性和下一步工作。但是要小心,一般比较明显的下一步工作要么作者已经做了,要么可能是个大坑。
读完论文后找人交流一下读后感会很有益处。旷视研究院的 Paper Reading 论坛是个很好的交流方式。大家会每天分享论文解读和进行评论,甚至还经常有人报告复现结果和复现中发现的问题。通过了解别人的观点,就能够更全面的理解一篇文章,同时也增强了自己全面看问题的能力
做什么事情就要遵循什么套路,就比如系统的撰写,大家都是做个形式,吹,就看谁吹得好看,套路就是这样,没花也得说出花,不然就过不了,就没奖。
代码
模型的你的主要创新点需要改,剩下的尽量和你想要对比的算法是一致的,否则你做的实验就成了白做了!
另一个思路
记录知乎一个科学家的分享,我觉得说的很棒
提升逻辑思维能力
很多人都误以为自己的逻辑思维能力很强,其实不是的。逻辑思维能力,不是你把1+2=3给算出来就是有能力。而是,你可以一点点通过构建自己的知识系统来理解别人的论文,发现别人论文中隐含的一些信息,并最终利用你的逻辑把你的理解讲出来,让大家都能听懂并且接受。
拥有强大逻辑思维能力的人可以把一个方法的理解出三种层次:1,数学层次,2,几何层次,3,物理层次
比如说,现在有一篇论文介绍了如何利用主成分分析(PCA)来寻找城市的发展模式。作者拿到了100个城市数据(GPA,人口,公路里程,铁路里程,耗电量等),然后在上面运行了PCA,之后得到了几种不同的发展模式并且提供了一些合理的分析和解释。在研究这篇论文里面的方法的时候,很多学生上来就被一堆数学公式给吓唬住了。然后开始研究这些公式到底是干什么用的。稍加思考,发现这些公式是主成分分析的步骤。然后为了学会主成分分析,这名学生开始按照论文里面的公式,一步步进行推导。过了几天以后,经过推导,这个学生发现论文里面的公式是正确的,然后按照公式可以一步步明白作者的方法。这时候理解的层次就是数学层次。在这个层次的理解下,如果让这个学生给大家介绍这篇论文,那么他就会长篇大论开始介绍公式1推导出了公式2,然后公式2又算出了公式3等等。然而除了这个学生自己,没人能听懂他到底是在做什么。
稍微高级一些的层次就是几何层次。如果一个学生对于个方法的理解达到了这个层次,那么他应该可以想象出来这个方法在处理数据的时候,数据是怎么变化的。比如还是刚才的这个例子里面,PCA会对数据进行线性变换。而线性变化可以理解为一堆采样点在空间上的旋转和拉伸。这样通过PCA的处理,原本在三维空间上的采样点就会被变换到一个二维的平面上,因为这些数据点本身就是三维空间里面的一个平面而不是一团。于是乎,PCA就发现了原来这个数据只需要二维的信息就可以表示了,这样就实现了降低维度的操作。当一个学生理解到了这个层次的时候,就可以直观地想象出数据的样子还有数据被操作的过程了。
对于一种方法的理解,最高级的就是物理层次了。在这个层次上,你不光可以想象到数据在空间中的样子,你还可以明白这些数据在每一步被处理的时候到底是什么含义。比如在刚才的例子里,数据是代表着各个城市的一些特征。那么经过PCA的处理以后,我们就找到了真正决定一个城市发展模式的核心特征。在这个层次的基础上,领导们就可以抓住核心的特征来改变一个城市的规划进而提高市民们的生活水平了。
大家习惯了不去思考更深一层的东西,而是幻想着去通过体力上的努力来弥补脑力上的思考。因为不会正确的逻辑思维,一个人就会懒于思考,他就会误以为思考这些太浪费时间。这样是不行的。
最后我想说一下逻辑思维对于写作的重要性。比如我做了一项研究,制造出了一个机械零件,为此我写了第一个版本的论文:
我设计了一个机械零件,他包含:15根不锈钢条,空气,橡胶膜,还有一个不锈钢的50cm直径的圆环。其中,不锈钢条有3mm粗20cm长。现在我把这几个部件按照以下顺序组装起来:不锈钢条插在圆环里面,圆环外边套上橡胶膜,最后在橡胶模里面冲上空气。于是这个零件造好了。好了,到现在为止,你能明白我要做什么吗?
我要是换成下面这个版本呢?
我设计了一个机械零件,我给它起名字叫轮子。轮子可以用来帮助人们搬运货物,可以把人类文明推进100万年。那为了达到帮运货物节省力气的这个目的,我们找了一块大石头,把石头磨圆。这时候我们确实可以用这个圆形的石头来搬货物,可是这个太沉了,不太省力。为了节省力气,我们把石头改成木头。可是我们发现还有点沉,于是把圆球改成了圆环。可是我们发现圆环不太结实,于是我们把木头圆环改成了铁的圆环。但是走起来有点颠簸,于是我们加了一层橡胶。为了进一步减震,我们罐装了空气。这么一来是不是好理解多了?
可惜,往往现实是大家写的都是第一个让人摸不清头脑的版本,然后提交了上去。第二个版本是非常容易理解的,但是这个包含的信息太多了。这个版本其实是我们在学习制造轮子这个方法的时候,我们自己应该整理出来的一套逻辑。我写这两个版本就是为了让大家看一看不同的逻辑思维在写作和理解上带来的差距。
看到这里,大家肯定会问逻辑思维的能力应该怎么才能训练呢?逻辑思维的能力的训练是因人而异的,我会在以后慢慢讲。不过请大家放心,逻辑思维能力不是一个超能力,而是一个我们每个人通过训练都可以获得的能力。这个训练不会经历三年五年,只要掌握了正确的方法,两三个月就可以让你自己的逻辑思维能力大大提升。最终这个良好的逻辑思维能力足以支撑你把能够发表的论文的档次一点点提高。
怎么写论文
为什么你提出的idea会和别人重合?怎么写introduction和abstract?
一个idea里面包含的信息是很多的。而且这些信息表达的顺序一般来说也是比较固定的。之所以要按照一定顺序将这些信息表达出来,就是为了让你的idea变得有逻辑,让读者能够更加轻松地理解你的idea。因此,一个合格的idea,应该按照下面的顺序将以下的信息逐个表达出来:1,idea的背景。2,一个具体的研究问题。3,别人是怎么做的。4,别人的方法中存在什么问题。5,别人的方法出现这些问题的原因是什么。6,你发现了什么新的现象或者信息,并利用这一现象提出一个新的方法来避免前人的问题。 7,你的方法里面真正的挑战是什么。8,为了克服挑战,你提出的具体的设计是什么。下面我详细给大家讲一下。
1, idea的背景。 我们在做研究都有一个大的背景。比如说我现在研发一个大推力的火箭。那么我的背景如果用一句话来讲,可以是:将货物或者人类,通过火箭送入太空已经不再是一间稀奇的事情。
2, 一个具体的研究问题。具体的研究问题和背景有时候容易混淆。这个具体的问题指的是你的论文直接要解决的一个问题,而不是一个特别宽泛的问题。在我们这个大推力火箭的idea里面,一个具体的研究问题可以是:随着火箭发射技术的成熟,人们利用火箭实现了登陆月球和建立空间站。为了建实现征服太空的梦想,如何一次性将更多的货物送入太空成为了一个亟待解决的问题。 当然了,这个具体的研究问题还可以换成别的。我暂时拿这个举这个例子。其实,==一个idea可以对应解决不同的研究问题。而在论文里面写的不同的研究问题,就将决定这个idea的定位,还有这篇论文的档次高低。==以后我会找出一个新的说法让大家看一下区别。
3,别人是怎么做的。 这里面要列举一下别人的科研工作。请大家注意,这个可不是参考文献里面随随便便列举一些论文。这里应该是你真正理解的几种方法。比如在我的idea中,我可以说:为了一次发送更多的货物,现如全世界设计了三种大推力的火箭:第一种是前苏联的联盟号火箭,这个火箭利用了多个发动机的技术将100吨的货物送入了和平号空间站。第二种是美国的土星五号,利用了分级火箭的技术将100吨的货物送去了月球。第三种是中国的长征系列火箭利用了捆绑火箭的技术,将100吨货物送入了火星。
4,别人的方法中存在什么问题。 这里我们需要把别人的方法中的最致命的问题提出来。这个问题将是我们的论文真正解决的一个问题!这个十分的关键!千万别和2混淆!在我们这个idea里面,我们找到的上述三种方案中的问题是:随着火箭运送货物重量的增加,需要携带的燃料也越来越多,相应的火箭整体的质量也越来越大。这样一来,火箭推力的要求将变得更大,对于火箭设计的难度将大大增加。
5,别人的方法中出现问题的原因是什么。 我们一定要在idea中将别人方法中出现问题的原因找出来。只有找到了问题的原因,我们才有可能解决这个问题。如果没有这一条,那么读者就会不明白为什么你的方法一定从理论上就可以解决这个问题。如果没有这一条,即使我们做了大量实验证明你的方法比别人好,读者也不会相信我的方法一定比别人的好,因为原理上说不通。
回到我们的例子,我们发现导致别人方法里面的问题的根本原因是:人们希望火箭发射以后就会一直将货物送到太空,发射过程中火箭不会停下来休息,因此火箭发射一次就需要装载好全程的燃料。比如说发射100吨的货物到500公里外的太空,一趟需要200吨的燃料,于是乎火箭的推力就得至少是100+300=300吨。火箭的推力有2/3消耗在了推进燃料上面。推进的效率只有1/3。
6,insight! 你发现了什么新的现象或者信息,并利用这一现象提出一个新的方法来避免前人的问题。这一条就很有意思了。这一条是我们的idea的核心。只有引入了新的信息和观察到了别人没有观察到的现象,并加以利用,我们的方法才可能比别人的方法好!
在我们这个火箭发射的idea里面,我找到了这么一个有趣的信息:如果我们不是用火箭径直将货物一次性送入太空,而是通过接力的方法去运送货物,那么每一段接力的火箭携带的燃料可以减半,因此火箭的推力就不需要那么大了,火箭推进的效率就提高了。具体地讲,发射100吨的货物到500公里外的太空,一趟需要200吨的燃料。现在我们分两阶段接力。第一阶段由火箭将货物运到250公里高度。由于火箭不需要飞500公里高,因此燃料只要之前的一半,也就是100吨。于是乎第一段火箭的推力只需要100吨货物+100吨燃料=200吨。当第一段火箭发射的同时,第二段的火箭也一同发射,只不过第二段火箭这时候只装载着燃料。第二段火箭飞到了250公里高度的时候,接替第一段火箭,然后将货物继续送入500公里的太空。由于第二段火箭在前250公里飞行时没有货物,而加载货物以后也只需要飞250公里,因此第二段火箭消耗的燃料肯定小于一次性将100吨的货物发送到500公里外的太空所需燃料,也就是200吨。所以,第二段火箭的推力肯定小于300吨!于是乎,我们找到了一种节省火箭推力,提高推进效率的方法!这一方法里面虽然两段接力下来,总体消耗的燃料肯定要大于200吨,但是每一段火箭的效率提高了,因此,两段接力的火箭的推力都可以小于300吨。换个角度讲,如果我们两段火箭的推力都是300吨,那么我们肯定可以将大于100吨的货物发送到太空!
7,你的方法里面真正的挑战是什么。 如果一个idea里面没有任何挑战,那将这个idea的创新性将大打折扣。同时,一个没有挑战的idea一定很容易被别人想到。然而,我不是在这里劝大家一定要去硬生生地编造一些挑战出来,而是要真真切切地有挑战才可以。 比如在我们这个火箭发射的故事里面,我刚刚讲了我们可以用接力的方法去提高火箭发射的效率。然而这个idea并没那么简单,如果你仔细思考你就会发现,火箭接力的核心是火箭可以在空中完成接力的动作。这一动作的完成相当的困难。想要完成这个动作,我们一定需要对火箭的姿态有非常精准的控制才可以。如果控制出现微小的偏差,别说接力了,火箭可能直接就歪倒掉落下来。
8,为了克服挑战,你提出的具体的设计是什么。这个就是你的idea最最最关键,也是你论文里面真正的干货了。
对了,刚才这8条信息,按照我这个写作的方法,再稍微加一些实验的结果,就是我们的论文的introduction了。如果将这8条信息,每一条浓缩成一句话,然后把8句话合在一起,那就是abstract了。在此,我想我不光介绍了什么才是一个idea,我还告诉了大家应该怎么写abstract和introduction。
请大家记住,今天我在这这个文章的时候,我的逻辑是先讲idea有什么信息和内容,然后自然而然就把introduction以及abstract的写作也给大家讲完了。如果我换一个顺序呢?如果我跟大家讲:今天我想跟大家分享一下如何写论文的introduction和abstract。那么我将遇到一个尴尬就是我需要把introduction的结构给大家先讲一下。然后我还得去介绍idea是什么,因为idea是introduction的子集。introduction的结构其实只比idea的信息要多了一个实验结果。如果我先介绍introduction后讲idea,我的文字里面就会有大量的重复的内容,因为idea包含在introduction里面了。
所以,通过这次分享,我也想让大家知道一下,不同写作顺序带来的影响和好处。也想告诉大家一下,一个正确的逻辑是多么重要。一个错误的逻辑将会让整个idea变得混乱不堪,无法理解,十分罗嗦。
怎么判断你提出来的idea的档次高低

如果仔细地看这个树,树根的部位代表着一些公理,比如1+1=2.稍微高一层的就是一些基础的定理,包括相对论,牛顿三大定律之类的。在这个基础之上,我们形成了我们的几个大的学科,包括数学,物理,化学,生物。在此之上,我们诞生出了EE, CS等专业。在计算机专业里面,我们还有很多研究方向,包括机器学习,系统,计算机视觉等。在系统这个方向上,我们有云计算,无线,还有计算机网络等子方向。在无线这个子方向上面,我们有无线感知和无线通信两大领域。在无线通讯领域里面,我们还可以细分成5G,WiFi,还有低功耗的IoT通讯。最后我们在WiFi这个分支上,还可以看到MIMO,60GHZ等具体的研究方向。
我画了这么一个树,我主要是想表达的意思是:人类的知识是一点点建立起来的。每一篇论文的创新也都只是在这一颗树上不断分叉,不断细化。那么一个idea的创新程度,就可以反映在这个idea处于这棵树的层级。
我们知道,任何idea都有一定的假设条件。有的idea里面的假设条件很明显,有的则是很隐晦。每当有一个创新性很强的idea出现的时候,它都会打破原有方向上的某些假设条件。比如说,量子力学的诞生,就打破了牛顿的经典力学的假设条件。再比如说我们制造芯片,芯片上面的集成的晶体管不能做到无限小,因为当晶体管尺寸小于XX纳米以后,它将不遵守经典物理的规律,反而表现出量子物理的一些特征。这是因为经典物理的规律对尺寸有一定的要求和假设。同样,咱们高中化学课上面讲过,化学反应不会制造新的元素。这也就成为了我们化学专业的一个假设条件。如果你能打破这个假设,你在你的反应里面制造出了新的元素,那么恭喜你,你发明了核裂变或者核聚变。你想想你这个idea得多么厉害。
一个idea的创新程度,取决于它打破了这个人类知识树的哪一层上的假设。
如果现在我们提出了一个能够推翻相对论的idea,那么idea这个将处于知识树很底层。所以这种idea将值得无数个诺贝尔奖。如果我们的idea在计算机这个专业下面,打破了现有科研方向的界限,我们制造出了一个新的方向,那么我们的idea将是图灵奖级别的。依此类推,当你打破的假设条件越接近树的叶子,那么这个idea的创新程度就越小。
最终,如果你的idea连一个假设条件也没有打破,只是应用几篇论文里面的方法,东拼西凑出一个新的方法,然后应用这个东拼西凑去识别一个图像,检测一个异常,挖掘什么数据,那么这个就叫做incremental work。这种idea如果包装的好一点,注意,我说的是包装,不是写作,那么有可能发到CCF 的C类会议上,或者一些三四区的sci上面。当然了,我本人对于sci的档次一直不看好,这种idea好好弄弄发表在什么一区二区也是常有的事。
一个好的idea是怎么提出来的?为什么你研究了好几年却什么也没提出来?
我们应该怎么提出一个idea呢?对于这个问题,我先讲一种思路吧。一种95%的导师都会告诉大家的思路,那就是:多读论文,看看别人的论文里面有什么毛病,然后你去把这个毛病给解决了,你就有了论文了。
==这是标准的错误答案!这是标准的错误答案!这是标准的错误答案!==
扪心自问,大家有多少人都是按照这个思路去做研究的?有多少人真的根据这个思路发表了论文?又有多少人按照这种思路能发表真正有价值的顶尖的论文?
据我所知,按照这种思路做研究的学生占90%以上。可悲!可怜!可恨!恨的是这些没有责任心的导师和网上答虚假信息。诺大的知乎,居然没有人来告诉大家这么做不对。居然很多人还倡导这种思路。在介绍真正的思路之前,我先给大家分析一下为什么这种思路的错误的。
我一直在强调逻辑。那我就从最最最最最基本的逻辑来给大家证明一下这种思路的错误。首先,你去读一篇论文。你是读者。你再怎么聪明,你对于一篇论文的理解,肯定不如作者理解的深。何况正如我之前写的文章里面讲的一样,如果你的逻辑思维能力不够强大,很大的概率你会被自己错误的思路给误导。那么你的理解就浅薄了。那么在这种情况下,你认为你找到的毛病,作者会不知道么?你能发现一篇论文里面存在的问题,那么作者肯定也明白这个问题。那么为什么作者不去把这个问题解决了呢?为什么作者要把这个机会留给你呢?你难道认为你比作者聪明,比作者对他的论文理解还深入么?
当然了,肯定有人会说,我要是作者的话,我会留一手,等下一篇论文再解决这个问题。我可以负责的告诉你,没有作者会这么想。作者都是会把所有的子弹打光,把能做的都做好,这样才能保证文章录用。你要是作者,你在投论文的时候内心肯定是担心论文会被拒稿。作者不会自信到把贡献分摊到下一篇论文,然后给这一篇论文的投稿带来更大的不确定性。这是不太可能发生的。当然了也有例外,我以后会给大家讲。但是总的来说,这种情况不存在。
那么如果你按照这种思路走下去,你找到了一个毛病。你开始研究解决这个毛病。现在我说一个情况,你看看你有没有发生过?你开始着手解决别人论文里的毛病,然后你发现没有思路,然后你再去看论文,再去找相关的资料,然后再去做实验。反复折腾了一年,最后还是没解决。或者是,你发现这个毛病非常迅速的就被你解决了。两个礼拜以后你成功地解决了这个问题,你非常开心。这两种情况,无论是哪一种,你都发表不了论文。因为第一种情况说明,你这个问题非常可能它压根就解决不了。人家作者没去解决这个问题正是因为这个问题是非常难以解决的,除非有爱因斯坦级别的人物才有可能解决。第二种情况说明,这个问题作者之所以没去解决,是因为这个问题太小了。就算解决了也没啥贡献。这两种情况无论是哪一种,都将是你按照挑别人论文毛病的思路去做科研所带来的恶果!
现在我来告诉大家一种思路,看完这种思路以后,大家自行判断我说的思路对不对。
首先我们得明白,一篇论文里面其实很多部分都有误导性,甚至是错误。尤其是档次比较差的论文。当然了,有些所谓的档次高的论文,比如饱受大家诟病的infocom,虽然是CCF A类会议,里面的论文很大一部分都有误导性。这种论文的实验都很难复现,就更不用说什么创新了。所以挑出来这些文章的毛病,其实是一件很容易的事情。但是这些毛病也会把你误导的。
我在这个文章里面给大家讲了一个idea应该传达的8条信息。这8条信息中,最关键的其实是一个idea的insight,或者叫intuition。也就是第6条信息:你发现了什么新的现象或者信息,并利用这一现象提出一个新的方法来避免前人的问题。
我可以从审稿人的角度,负责任的告诉大家,一篇论文哪怕里面的算法设计的一塌糊涂,只要论文里面的insight能够给大家带来新的启发,带来新的知识,带来新的理解,那么这一篇论文就一定会让审稿人眼前一亮。这时候,哪怕实验效果再假,论文只要写得清清楚楚,大概率也是会被录用的。所以,insight才是一个文章的核心!一篇文章哪怕到处都是错误,但是文章的insight很大概率是不会错的!而且一篇论文,哪怕是infocom的论文,里面的insight也都会描述的比较清晰,比较直观。因此,我们在读论文的时候,核心是要理解这个论文的insight。
掌握了一个论文的insight,就相当于掌握了一件武器。==当你读了你的方向上的5篇很有代表性的论文以后,你应该深入理解并且掌握了5个insight。这时候摆在你面前的就是5个不同的武器。那你现在需要做的就是,再深入思考思考这些insight之间的关联。然后你要想一想,这些insight背后的深层次的含义是什么?是什么导致了这些现象?能不能从中发现一些更加有规律性的现象?这时候,你就离提出一个有价值的idea不远了。==
以SVM为例,SVM的第一个insight:线性不可分的数据,我们可以把他们映射到一个高维空间上,让他们在高维空间做到线性可分。当然了,SVM还有两个insights,在这里我就不过多展开了。我想说的是,根据这个insight后面诞生了一个新的科研方向,在这方向上诞生了非常多的idea。而这些idea是怎么样提出来的呢?
我们可以深入思考一下SVM的insight。我们可以想象一下,一个低维空间的数据,被我们用一些方法转换成了高维空间的数据。这种转换不一定非得是SVM才可以完成,你看现在的深度学习,神经网络,都属于是把一个输入的数据,映射到了高维的空间中。只不过是我们可以把这些神经网络的节点来看作成高维度的空间。那么我们现在跳出了SVM的局限,我们可以想象,凡是把低维度数据转换到高维空间,我们都可以有类似的insight。这种低维到高维的转换,有没有缺点呢 ?我们可以想象一下,原本就是二维的信息,现在我们凭空变出第三个维度,如果这个维度设计的不太好,那么会不会使得这种转换对于噪声和微小扰动的容忍度变得很低?比如说刚才的例子中,如果红色的点被放在高度是0.1的平面上,蓝色的点还在高度是0的平面上:
那么只要有超过0.1的误差就会使得样本被错误的分类了。那么现在可以把这个insight再往前推进一步,我们可以想象出下面这种情况:我们故意在低维数据上面增加一些噪声,这样的数据经过转换以后,在高维空间上表现得跟没有加入噪声之前非常不一样,以至于被错误的分类了。在论文“DeepFool: a simple and accurate method to fool deep neural networks”里面,作者就是用这种insight:在鲸鱼的图片上插入人眼很难识别的微小扰动,以至于这些高纬度的分类器会将鲸鱼错误分类成乌龟。用这个insight到声音里面,我们也可以得到类似的insight:人类对于声音中的微小扰动也无法识别,但是深度学习网络会将这个错误判断。于是就有人提出出了一个攻击语言识别的idea。等等。
==我们不应该从挑别人论文的毛病开始,而是恰巧相反,我们应该从理解别人论文的优点开始!我们将别人论文中的优点,主要是insight,深入理解以后,在你自己的领域和研究的背景下面加以扩展,我们就可以得到一些新的现象,进而提出新的idea!==
写给还在为论文纠结的博士和硕士们:怎么提出idea?一个提出idea的过程是什么?
大家明白我的意思了吧。找idea的过程需要不断地反复。在这一过程中,你自己的逻辑也会得到提升。但是千万别想着,你只要练习了100小时瞄准,你射的第一支箭就能命中靶心。实际上,不管你怎么努力练习瞄准,你都可能射不中,甚至脱靶。但是不能因为这种不确定性,我们放弃了射箭。我们需要的不断的尝试!快速的迭代!快速从错误和失败中走出来,不断地提出新的idea。一个不行就下一个。我们需要不断地思考,我们不能畏首畏尾。创新性强的idea可能提不出来,那么我们从创新性小的idea开始做起。上来就想发CCF A类论文是不太现实的,我们可以从C类开始。对不对?
你还在为idea纠结么?这里告诉你两种提idea的思路
在我们做完一项研究工作以后,就需要开始撰写论文。写论文的时候,第一个需要写的部分不是introduction和abstract,而应该是自己提出的设计,也就是所谓的design部分。Design部分的写作其实与自己提出的idea很相关。不同类型的idea,其实对应的design部分的写作也会不同。
为了在下一次给大家讲清楚design部分的写作思路,我需要先给大家介绍一下idea的两种类型。这两种类型的idea其实对应着是两种提出idea的思路。当然了,我在这里说的思路都是延续着我之前讲的从发掘并且深入理解别人论文的insight开始的。
现在我们回到我们掌握了几个insights后,开始想自己的idea的那个时刻。我们可能会提出两种类型的idea:一种是应用型的idea。另一种是颠覆性的idea。
颠覆性的idea引申出的几个designs其实是在完成不同的任务。这些任务全都成功地完成了以后,我们这个idea所期盼的研究的目标才得以完成。
而应用型的idea最后引申出来的的几个designs其实是在做相同的任务,只不过是每个design对应着不同的场景。
下面我给大家详细地讲讲这两种idea是怎么回事,然后我会告诉大家一般都需要怎么思考才能够提出这两种idea。
首先我们来看看应用型的idea。我先举一个通俗的例子。我们现在要设计一种轮子,这种轮子是需要在山林间运送货物用的。如果我们想在树林里面方便地运送货物,我们就不能选择普通的轮子。因为山林里面很多石头和树杈,普通的汽车轮胎还没开出去十米就被扎爆胎了。这时候,我们的第一个设计,也叫basic design就是我们用钢铁制造的轮子来代替橡胶制造的轮子。这个basic design一旦做好了,装在车上,我们的确可以在山林间运送货物了。然而,这个还没完,我们在运输货物的时候,发现这种钢铁的轮子虽然不会被扎破了,但是由于轮子是金属的,一旦下雨就会打滑。等到下雨天的时候,车辆在树林间的移动速度就会大大降低。这时候我们需要在basic design的基础上再做一些改进,用来适应在下雨天防滑的这个需求或者说是场景。那我们的第二个设计,也可以叫advanced design可以是这样的:我们在金属轮胎外层安装上一堆钢钉就可以了。然后我们测试了一下,不同尺寸(长度,直径)和不同的分布的钢钉,对于轮胎抓地力的影响,最终找到一个优化的设计。
在这个idea里面,我们有两个设计:basic design 和advanced design。其中,basic design就可以满足我们最基本的需求:支持车辆在山林间行驶。只不过是basic design的性能在某些条件下不太好:下雨天就会打滑,或者抓地力不足导致不能爬陡峭的山坡。但是这种basic design在大部分时候是可以用的。为了增加轮胎的抓地力,我们在轮胎外侧设计了一堆钢钉。这种advanced design存在的目的只是为了更大地扩展basic design的应用场景或者提高一下basic design的性能。即使我们没有Advanced design,我们最初的设计也是可以用的,只不过是效果稍微差了一点点而已。
那我们现在来看看什么样的idea是颠覆式的idea。 请看上面上面张图:这是NASA在火星上使用的无人机。如果我们现在需要提出一个idea,目的是为NASA设计这么一款可以在火星飞行的无人机,我们应该怎么设计呢?我们先想想,有没有什么insight是我们可以直接用的?比如说,我们直接把咱们在地球上的无人机直接放到火星上面,会有什么问题?如果真这么做的话,会产生两个问题。第一个问题是:火星上面空气密度是地球的1%,那么地球上面使用的无人机的螺旋桨,放在火星上无法产生那么大的动力。也就是根本飞不起来。为了解决这个问题,我们不得不将火星无人机的螺旋桨设计的更大,然后发动机的转速更快。这样的话对于发动机的设计,还有螺旋桨的材料要求就很高了。我们希望无人机尽量轻,发动机动力尽量强劲。这么一来,似乎无人机可以在火星飞起来了。
然而,实际上没这么简单。无人机的飞行需要用电池来提供能量。我们的无人机在从地球发射到火星这8个月的飞行中,电池的电量早就耗没了。无人机一旦到达火星地面,它是没有电力的。于是乎。我们面临的第二个问题就是无人机到火星以后需要充电。可是上火星没有插座。那我们是不是可以让无人机飞到火星车上,然后在火星车上面设计一个插座不就可以了么?这么做好像也不太行,因为火星总会刮大风,无人机可能没法那么精准地落在插座上面。那么无线充电呢?这个好像也不太行,因为现在的手机无线充电需要手机和充电器特别近。为了使得无人机能飞起来,火星上面的无人机被设计得实在是太大了,因此无线充电的信号衰减太大了,以至于根本充不进去电。那么只能最后一个办法了,那就是设计一个太阳能电池板放在无人机的头顶。但是这种太阳能电池板也不是那么容易设计的,因为火星离地球太远了,太阳能充电效率太低了。所以我们第二个设计就是一种能够在火星上快速充电的太阳能电池板。
在这个idea里面,我们有两个设计。第一个设计是针对无人机的发动机和螺旋桨提出的设计。这个设计可以让无人机在火星上飞起来。可是这个设计使得无人机的体积过大,无线充电和插座充电都不能用,我们不得不用太阳能给无人机充电。但是由于火星离太阳太远了,充电效率过低,我们于是就提出了第二个设计。这两个设计的关系不是应用型的idea里面basic design和advanced design的关系。因为这两个设计是相互影响,缺一不可的。少了任何一个设计,无人机都无法在火星飞起来。所以这种idea里面结局的问题往往是非常复杂而且交织在一起的。一旦这种科研项目做成了,其成功往往是颠覆性的。
那么这两种idea一般都是怎么想出来的呢? 其实大家可以看出来,这两种idea里面,应用型的idea应该比颠覆性的idea容易想到。这是为什么呢?因为应用型的idea里面,我们只需要想出一个简单但是有效的设计作为basic design就好了。至于advanced design,我们可以多换一些场景,没准就可以想出来。换句话说,即使我们想不出来advanced design,我们至少还有basic design。按照世俗的眼光来看,只要basic design说的通,我们计算机的同学们至少可以试着往CCF C类会议投稿。如果大家对一些C类会议有所了解的话,就知道一篇C类会议的论文,很多都是6页以内的。相比与A和B类会议要求的10页甚至12页的篇幅,C类会议也就差不多是一个 basic design的量。因此,如果有的同学就是想发一篇CCF C类会议的话,不妨照着下面的思路试试:
一个应用型的idea一般是这样提出来的: 我看了几篇论文。经过我的思考和理解,我发现了这几篇论文的几个insights,然后我开始想怎么能够扩展一下这些insights?这时候,我可能想到,有一些insights稍加修改,就可以用于别的场景了。于是我为了在新的场景里面使用这个改进后的insight,我就编造出了一个有意思的设计和场景。这样一来,我就有了basic design。之后,我就稍微做一些实验,看看basic design的效果。一般来说,这种稍微改进后的insight都可以使得你的实验效果变得很好。于是乎,我们为了给论文增加一些分量,我们试着找一些新的场景或者需求。就相当于刚才我那个轮胎的例子里面,我们为了让轮胎在丛林中适应下雨路滑的场景,给轮胎加装钢钉。总而言之,应用型的idea之所以被我称为是应用型,是因为这种idea是建立在深入思考并且理解了别人论文的insight以后,把别人的insight加以扩展,并且应用到了新的场景下面,解决的是新场景下的一些问题。
讲过的,提出idea的过程其实是很随机的。我们只要掌握了一个核心的思路以后,具体的思考过程可能很随机。比如说还是上面的那个轮胎的例子。我可能是先想到了advanced design,但是当时我没意识到这其实是advanced design。然后我在后期再仔细思考的时候,才发现,原来这种设计有更加简化的版本。那么我们完全可以把简化的版本当作basic design。然后给深入思考一下们最开始提出的那个设计的特殊的地方,然后找到合适的场景,然后把这个设计可能再稍微改进一下。最后组开始的design就可能成为了advanced design。
其中一篇论文是介绍如何设计汽车的雪地胎。这篇论文交给我的insight是:只要轮胎的花纹设计的合理,轮胎的抓地力就会增强。于是现在我脑子里想的是,怎么应用这个insight或者怎么扩展这个insight呢?花纹可以增加抓地力,那么除了花纹还有啥可以增加抓地力?花纹是在轮胎上面雕刻,是在轮胎的表面刻一些凹痕。那么如果我们不是雕刻一些凹痕,而是让轮胎有一些突起是不是也可以增加抓地力?那么我们怎么增加突起呢?往轮胎上面安装钉子?要是装钉子的话,那是不是橡胶的轮胎就不合适了?那我们换成钢铁的轮胎不就好了么?那么钢铁的轮胎加上钢铁的钉子,这种轮胎谁要呀?我们要实在森林里面开车,应该就用的上了。有了钢钉的加持,这种轮胎应该可以在山林中越野。咦?既然要越野的话,没有钢钉应该也行。那就把没有钢钉的版本当作basic design,把有钢钉的版本当作advanced design。于是乎,一个idea和它所带来的设计就这样完成了
如何从别人的论文里获取自己的idea?
作者:Cheng Li
链接:https://www.zhihu.com/question/353691411/answer/900046621
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
发现看的人有点多 (为了避免误导)感觉要补充说明下
如果只是A+B需要说明为什么是non-trivial的
一般至少要改成A+B’
或者A+B+C比较容易发
比如之前搞过一篇
其实是Unsupervised Landmark + VUNet的decompose + CycleGAN
如果只是前面两个term做到一半的时候试着投ICLR 就没成。。。
后来把CycleGAN的部分做完CVPR就中了。。。
(因为好像点赞的人很多我们后面整理一下自己的publication
,其实很多时候A+B’也可以做出还不错的想法)
原来回答:
我其实有个不错的想法。。。
找40篇比较新的oral paper
最好是开源的、你能看懂的、尽可能时髦的、大佬点赞的。
然后画一个40*40的矩阵。。
对角线上的元素不看,还剩下1560个元素
每个元素看看A+B是不是靠谱
虽然可能99%都不靠谱。。。
但是还是有可能筛出来15篇左右的idea。。。。
(如果考虑交换性可能只有7篇也够了。。。)
或者你找40篇比较新的不是你发的oral paper,
再找K篇自己的paper,也可以做这个事情。
这样就不用排除对角元素了
个人的publication水平还不高
不过很多其实也不是A+B产生的。。
比如CNN之前的话
有一些是发数据集的
Pixel-level hand detection in ego-centric videos
有一些其实是一个经典pipeline里面有A+B+C很多步
别人讨论B,C等步骤比较多,但是A步骤也很重要
想出一个A的trick最后发展出一片文章
Face alignment by coarse-to-fine shape searching
A+B也可以有一些跨度大的时候,也能产生一些还比较有趣的想法。。
并不是简简单单的incremental work
比如把推荐系统用在分类器推荐(CNN时代之前)。。
Model recommendation with virtual probes for egocentric hand detection
分而治之也是常见思路,任何topic都可以加(CNN时代之前)
Unconstrained face alignment via cascaded compositional learning
还有有的时候看到别人RL+tracking的文章,想到手里的聚类也可以这么做,就搞了一个
A+B(不过步子扯有点大老是被拒后来就投了AAAI)
Merge or not? learning to group faces via imitation learning
今年还看到有人用GCN聚类所以结合GCN重新投了一篇。。。
(还没release)
类似这样。。
还有有时候可以做一些哲学讨论,就不是简单的A+B了
The devil of face recognition is in the noise
如何找到研究的突破点
我刚做研究的时候,也有找不到研究突破点的感觉。但是随着经验的增长,还是找到了一些技巧,这里分享给大家。
1.多读文献加总结是科研有突破的重要途径。建议从早期的文章开始读,读的时候想象自己穿越回当时,能不能发现问题在哪里,有没有什么新的想法。然后再找后面的文章查对一下,看看自己的想法对不对。通过这种方式促使自己学会发现问题,找到创新点。
2.多阅读一些专业的审稿意见,训练自己的鉴赏能力。很多未解决的问题都能从审稿意见中发掘出来。欢迎关注我的系列视频栏目「从审稿到中稿」,带大家从审稿意见中发现问题,最终实现中稿。
3.多读读arxiv,最好培养定期翻看arxiv最新文章的习惯。很多厉害的文章都会先放在arxiv上,而做研究掌握一个好的timing至关重要,早点入局就能抢到先手。另一方面,arxiv上很多文章做的不够好,问题没做完,自己多想想努力一下就能有更好的结果。当然别忘了引用arxiv的文章并讨论区别。
4.培养自己对科研问题的格局把握,具体说,判断一个问题是三个月之内可以解决的,还是三年可以解决的,还是三十年也解决不了的。不要凭自己的主观臆断来判断,多看看大佬怎么说。如果很多大佬都觉得一个问题三年之内可以解决,并且很有趣,那么就是一个很好的入手问题。
5.题主说,看到很多论文准确率都很高了,不知道该咋办。这是个新手非常常见的问题,我想引用一个著名的比喻来回答。一个问题的模型,就好比一架很复杂的波音飞机,有几百上千个按钮,有的重要,有的不重要。你现在看到的,就好比看到有那么一架飞机飞的很快。但是更有意义的问题是,你对这架飞机的性能完全了解吗?哪些部分是真正起作用的?能不能造一架更简单但是飞的更快的飞机?如果不能,瓶颈在哪里?这架飞机是不是足够鲁棒,在任何条件下都能飞得很好?
6.题主说准确率已经很高了,比如说达到了95%。一个事实:如果把5%的错误样本拿出来构成一个数据集,那么它的正确率将是0%。
所以关键不在准确率多高,而在失败的样本是不是重要。在真实的自动驾驶或者机器人中,有1%的失误可能会导致很快报废。
7.永远关注交叉领域或者新领域,并大胆提出新想法。可能新想法会被另一个领域的人爆锤,不要灰心,这是常态,并不要怕碰壁成为作为阻止你学习的理由。不要自己给自己设置壁垒。
8.可能导师会觉得研究另一个领域会投入很多资源(比如算力或者他开会的时间),但是他挡不住你学习另一个领域的论文。资源可以受限,但是思想不会受限。特别是一个领域的突破性进展,往往可以影响其他领域。
9.把卡住自己的问题记录下来,之后会有意想不到的影响。我跟swin transformer(今年获得了比best paper很难得的马尔奖)的作者聊过,他们是怎么想到swin transformer的?他们说,之前就有想过把self attention替换cnn,但是瓶颈是计算量会大很多,看到谷歌出了vit,算的很快,解决了他们之前的瓶颈,就是self-attention也可以很快还很好,这样他们就产生了swin的想法。
10.人的创造力是无穷的,科研更多是一种文化,比赛才要刷点。比如同一届的会议有很多论文在imagenet上点数都差不多,但是都各有亮点。百花齐放,百家争鸣,而不要内卷。
11.多复现一些代码,很多论文都是表面好看,实质代码一跑就有很多问题。
12.历史是会循环的,旧的领域的突破往往可以适用于新的领域。因此多看看经典论文很有帮助。
13.要掌握一门到两门可以泛化的,经过大量事实验证有效的方法论。举个例子,比如加速计算的cuda编程等一系列方法,在不同的领域都可以试用。
14、很多好的idea都是在讨论和碰撞中产生的。尽量多和研究者讨论,方式不限于
(1)实验室交流
(2)参加讨论会或者研讨会
(3)微信群组讨论,可以私信加入我的讨论群
(4)参加一些国际顶级学术会议,不需要发表论文也可以参加
(5)网上看workshop的录像
15、没有比较就没有伤害,把同一个顶会做同一个任务的论文放到一起,高下立判。
16、想到什么好的idea,马上去试,不要犹豫。没有不好的idea,只有不明确的idea。
分清主次太重要了
不要由着自己性子来,先做重要的,不然很大可能是做无用功!!!!
如果有一种思想,先用简单的模型去把这种思想实现,如果好像有用,就再调模型!!!!反正最开始一定要设计的简单,突出主要的insight!
做科研其实就是先大量阅读论文,看看别人怎么做的,然后提出一个新颖的理论可行的猜想,然后拿出一个月的时间来设计网络来调参,基于结果决定该idea可行与否。