怎样读论文&论文和代码怎样结合|计算机科学期刊介绍

https://www.bilibili.com/video/BV1H44y1t75x?spm_id_from=333.999.0.0

1.title 2.abstract 3.introduction 4.method 5.experiments 6.conclusion

拿了100个模型把他融合起来做,就没什么意思了。就是炫技,把很多东西放在一起,不能给别人带来启发性。  模型上没有创新,更多是工程和技术上的创新     你可以效果不好,但你用了新的技术,那就是比模型堆叠要好

 

摘自上面链接的评论

第一遍:标题、摘要、结论。读完这三个部分,你大概知道论文在讲什么东西。可以看一看方法和实验部分重要的图和表。这样可以花费十几分钟时间了解到论文是否适合你的研究方向。判断是否要继续读下去。

第二遍:确定论文值得读之后,可以快速的把整个论文过一遍,不需要知道所有的细节,需要了解重要的图和表,知道每一个部分在干什么,圈出相关文献。觉得文章太难,可以读引用的文献。

第三遍:提出什么问题,用什么方法来解决这个问题。实验是怎么做的。合上文章,回忆每一个部分在讲什么。想象一下自己来做会怎么走。

 

感觉和我以前学课程的方法很像,第一遍2倍速过课程,了解框架重点,第二遍认真学,抓重点,搞细节,做习题,第三遍就是很轻松的复习了,一般在实践以后,再来看那些看起来理解了但又有新的理解,以及其前没有留意的地方,看起来很简短但又很深刻,可能被扩展,与其他部分有联系的地方

 

老师我想问问,如何将读论文和看懂代码相结合呢,我研究生入学一年了,论文看得也不少,但对于理解源代码,再加上融合自己的想法进行实现还是很困难,之后老师会结合代码讲论文吗?

你要理解原来算法的原理,精确到tensor(张量)过了某一层以后形状发生什么变化了。然后还要对你代码用到的框架有一定的认识,不需要到源码级别的认识,至少知道如何搭建一个基本的框架,一个tensor你能把它变着法转,哪里的参数不用梯度更新能够给他no_grad掉。完事儿找一个baseline,我相信这个你已经有了,但是不知道怎么改对吧。先跑通,跑通以后试验各种参数,比较结果,然后设断点,一步步debug,看tensor的shape变化,看调用了哪些函数。完事儿,找到最关键的主类或者py文件,也就是这份代码对应的论文的核心。这个时候如果你对代码框架有比较好的认识,其实有基础就行。你就看看从main函数开始,一直到调用这个主类模块,经过了哪些,就是数据怎么读取的,做了什么预处理,什么时候变换了属性和形状,到哪儿进入的网络,从这个点开始,基本就是你要修改的代码,如果你有思路修改,就复制一份你要修改的代码,手边准备一张纸,左边是原来的网络结构,右边你可以画你想的网络结构,先把代码中每一行在纸上网络结构对应上,可以直接标记行号,其实到这里,就知道最小的代码粒度和论文中算法最基础的“一步”对应关系。

 

我这里说的修改网路结构,其实你要是想改公式实现,想引入新的变量都差不多如此。因为在论文中,在你的理解中,不会精确到代码最小粒度,我说的代码最小粒度,就是你debug过程中每走一步的变化。当然你要是想随便搞一搞,就加点层数,扩宽宽度,在别人的基础上加点trick,还有一个思路,就是去找你这个方向,有关系的两个工作,就是最近的论文是在前一篇论文的基础上做的改进,时间间隔越短,关联性越强越好,这个应该不难吧。完事儿,两篇论文打印好,一左一右,找到对应的代码,最好用的同一框架,也用的相同数据集,这个应该很正常吧。两份代码也一左一右,然后照着读吧,论文理解透了以后,就在代码里找不同吧,看看最近这个作者怎么折腾前人的代码,最后,把这些代码改进的地方用你自己的语言记录下来,把最近这份代码关了,复制一份前人的代码,按照你记的改进的笔记,一条条用你的思路改,不要求一定完全相同,至少改完能跑起来,效果差点没事,万一你效果比最近这个作者还好,这可能就是一个改进的trick。

 

综上,给你泼点冷水,不要一上来就觉得自己看点论文跑点线程baseline就有好多想法,说白了都是laji,你要抱着这种心态看呆你实现不了的laji,然后抱着学习的心态看待前人工作,不要觉得我想了个新想法就一定比前人强,你也不要孤立的看待每一份工作,多找找关联,多找找不同,这些关联就是后人的idea来源,这些不同就是后人如何把自己的idea加到程序里。先去学,不要动不动就实现自己的idea,有了记下来,一个月你可能记下来100个,找个时间一个个划拉,划拉的时候这里边可能这个和那个能组合,最后就剩下一个了,再开始大干一场。这个过程中干嘛呢?就按我说的,找几篇人家的工作,论文过完就开始找代码的不同,你这样搞仨月再去实现自己垃圾堆中剩下的那个idea,才是一份有价值有意义的工作。不然你即使够呛学会改程序,也会迷失在你所谓的idea垃圾堆里。

 

https://blog.csdn.net/justinzwd/article/details/90721524?spm=1001.2014.3001.5501

一、计算机科学期刊介绍

计算机科学的publication最大特点在于:极度重视会议,而期刊则通常只用来做re-publication。大部分期刊文章都是会议论文的扩展版,首发就在期刊上的相对较少。也正因为如此,计算机期刊的影响因子都低到惊人的程度,顶级刊物往往也只有1到2左右----被引的通常都是会议版论文,而不是很久以后才出版的期刊版。因此,要讨论计算机科学的publication,首先必须强调的一点是totally forget about IF (IF指影响因子)。另外一点要强调的是,计算机科学的绝大多数期刊和大部分的“好”会议都规模非常有限。很多好的期刊一期只登十来篇甚至三四篇论文,有的还是季刊或双月刊。很多好的会议每年只录用三四十篇甚至二十篇左右的论文。所以,当你发现计算机的每个领域都有好几种顶级刊物和好几个顶级会议,不必惊讶。

整个计算机科学中最好的期刊为Journal of the ACM(JACM)。此刊物为ACM的官方学刊,受到最广泛的尊敬。但由于该刊宣称它只刊登那些对计算机科学有长远影响的论文,因此其不可避免地具有理论歧视(theory bias)。事实上确实如此:尽管JACM征稿范围包括了计算机的绝大部分领域,然而其刊登的论文大部分都是算法、复杂度、图论、组合数学等纯粹理论的东西,其它领域的论文要想进入则难如登天。另外一份在计算机科学领域有重大影响的刊物为Communications of the ACM (CACM)。从某种意义上来说,CACM比JACM要像Nature/Science很多。JACM上登的全是长篇大论,满纸的定义、定理和证明,别说 一般读者没法看,就连很相近的领域的专家都未必能看懂。而CACM则是magazine,既登高水平的学术论文和综述,也登各种科普性质的文章和新闻。即便是论文,CACM也要求文章必须通俗易懂,不追求数学上的严格证明,而追求易于理解的直觉描述。在十几二十年前,CACM的文章几乎都是经典。但最近几年,由于CACM进一步通俗化,其学术质量稍有下降。

IEEE Transaction on Computers为IEEE在计算机方面最好的刊物。但由于IEEE的特点,其更注重computer engineering而非computer science。换句话说,IEEE Transaction on Computers主要登载systems, architecture, hardware等领域的东西,尽管它的范围已经比大部分刊物要广泛。就刊物的质量而言,ACM Transactions系列总体来讲都高于IEEE Transactions系列,不过也不可一概而论。大部分ACM Transactions都是本领域最好的刊物或最好的刊物之一。大部分IEEE Transactions都是本领域很好的刊物,但也有最好的或者一般的。非ACM/IEEE的刊物中,也有好的甚至最好的。例如,SIAM Journal on Computing被认为是理论方面最好的期刊之一。

计算机科学方面的会议论文事实上起着比刊物论文更大的作用。大部分会议都是每年一次,偶尔也有隔年一次的。正规的会议论文需要经过2-4个甚至更多个审稿人的双向或单向匿名评审,并且所有被接收的论文会被结集正式出版。大部分ACM的会议都是本领域顶级的或很好的会议。大部分IEEE的会议都是本领域很好的会议,但也有顶级的或者一般的。会议的档次通常可以通过论文录用率表现出来。顶级会议通常在20%左右或更低,有时能达到10%左右。我所知道的最低的录用率为7%。很好的会议通常在 30%左右。达到40%以上时,会议的名声就很一般了。60%以上的会议通常很难受到尊敬。但也有例外。大名鼎鼎的STOC(ACM Symposium on Theory of Computing)录用率就达到30%以上,但它毫无疑问是理论方面最好的会议。造成这样的情形,主要是因为理论方面的工作者不多,而大部分人对 STOC又有一种又敬又怕的心理。

posted @   沟壑星空  阅读(723)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示