来源:投稿 作者:小灰灰
编辑:学姐
本文主要以如何做科研,日常内功修炼,常见科研误区,整理日常‘好论文’四个部分做以介绍,方便刚入门的科研者进行很好的规划。
1.如何做科研
1.1 选方向
当我们刚步入科研的第一步时,首选就要选择课题和方向,那么面对实验室很多项目和课题,一般选择方向需要一定的积累,而且很多题目风险性很高,所以要做的就有两个点,一个是多跟老师讨论,还有一个笨方法就是关注一下目前最顶级的研究机构,关注目前的主流模型,他们在做什么,那么我们就可以选择这个方向,并且实时监控他们的科研进展。
那么方向有了,那么就可以关注一些顶级会议的方向:
-
IR(信息检索):人工智能领域智能信息检索方向最权威的顶级国际会议(SIGUIR),国际计算机学会信息与知识管理大会(CIKM)
-
NLP(自然语言处理):ACL,NAACL,EMNLP,IJCNLP
-
ML&AI:NeurIPS
-
DM(数据挖掘):知识发现与数据挖掘顶级会议(SIGKDD)
-
CV(计算机视觉):ICCV、CVPR、 AAAI
-
……
1.2 查找文献
知道了顶级会议的方向,那么就是如何找参考文献了,选择好方向之后,想要更快的知道本领域的研究内容:
-
可以先从中文综述入手找到合适的英文论文
-
对知识点的理解,可以借助知乎,csdn等平台巩固知识点
-
文献的下载可以使用google scholar,百度学术去查找,一般最新的论文一般百度学术检索不到
-
从论文找论文
-
从被引论文找相关论文
一般推荐几个网站:
https://paperswithcode.com/ ---查看论文是否有代码的网站
https://www.aminer.cn/ ---由清华大学计算机科学与技术系建立,收录了sci,ccf优秀论文
https://www.semanticscholar.org/ ---语义学者(Semantic Scholar)是由微软联合创始人 Paul Allen 做的免费学术搜索引擎。
当然也可以从本校的图书馆进去查找相关文献。
1.3 读文献
1.那么我们查找了好多文献,下载了很多,读不懂怎么办呢,首先可以和师兄,老师整理一下,本领域的单词,同时也可以看下b站上,有关读论文的一些视频,比如李沐的视频:https://www.bilibili.com/video/BV1H44y1t75x/?spm_id_from=333.337.search-card.all.click
2.平时不断积累本领域的一些方法,模型
3.从论文中找到本论文中是根据哪篇论文中的研究点,解决了哪些问题。
1.4 建立模型
那么论文大概读懂了,怎么落实行动,依靠代码实现出来呢?就要建立模型。初学者建议从工具使用入手熟悉模型的输入输出,逐渐了解模型背后的原理,对于特定的问题进行整理代码。
那么拿到一篇论文,我们要做好复现,对于初学者就是找到有代码的论文,理清从数据到模型一系列的输入输出数据流,选择自己的工具(pytorch,tensorflow)搭建简单的模型框架,这个过程一定要亲自动手,进行搭积木,从而了解模型背后的数学原理,尤其对一些常用的模型了解背后的数学原理,做到魔改,尤其是本方向的特定任务,要非常熟悉,从而进行创新。
1.5 设计实验
一般读论文开始要格外关注实验的设计,评测指标是否选择合理,在跑实验的时候,发现效果不好,要思考,为什么不好,是什么原因导致这种效果,你选择的模型的假设是否和数据有什么冲突,特别是面对效果很好的时候要稍加注意。
不要放弃,如果做不下去,说不定可以找到一些衍生的点。一定要总结,发现问题。
1.6 如何写论文
那么实验有了,要整理实验,准备写论文,写好论文
-
首先要逻辑过关,保证基本的语法,找出研究领域内的高频词,常用词和通用词,可以做一次系统性的语法学习
-
大量阅读论文,摘抄经典句子,通用句子,优美句子,可以先不要看摘要,练习复写摘要
-
可以先给老师讲清楚创新点,防止出现逻辑的一些突然转折,不清楚的问题。
2.日常内功修炼
2.1 读论文
从大量的论文中,分析出粗读论文和精读论文,一般每周精读3-5篇相关论文。那么要读到什么地步呢,就要从一篇论文回答以下的内容:
-
记住作者的名字,进而follow
-
记住题目,主要是为了防止可以尽快找到
-
要非常容易的说出本篇论文有什么缺点,毛病
-
很容易用一句话说出本篇论文为什么新,很容易发表,他的贡献点是什么。
-
可以很容易说出和这篇论文有类似的若干篇论文
-
很容易说出本篇论文的技术细节
-
很容易说出本篇论文的实验细节
-
最难的是怎么想着把本篇论文的创新点应用到本方向。
2.2 学机器学习
-
没事可以学习机器学习的东西,决策树,SVM,了解其中的背后的数学原理,
-
经常参加学术报告
-
系统上过一门机器学习公开课
-
数学推导写出简单的笔记当作是最终的理解,可以用白板推导。
-
以代码实现为最终掌握
2.3 写代码
-
必须掌握一门语言,一般难度的模型应该三天左右可以复现
-
找一个成熟的工具包或者代码库入手进行拓展,而且练习时要做到良好的代码风格。
-
做到复用
-
一定要做到代码开源,结果能够复现就好,平时多做积累
2.4 观察数据,收集数据
-
可以清晰准确快速的了解一个数据集合和自己当前任务的关系,比如有100个实验,那么就要做100次实验吗,如果能够做到对数据了解,那么里面有的方法可以推翻,不需要做实验,或者做实验的过程中,就可以判断这个方法的好坏,清晰预判一个方法在一个数据上的正确结果,哪些方法可以适用,哪些不适应,自己一定要清楚。
-
能够发现实验结果中的一些问题,进而总结实验中的一些规律,多看一些bad case,总结规律。 总结一下,在三年或者四年的学习中,你是否具备了以下条件:
1.掌握一门编程语言,可以自己动手完成一个模型的主干框架的开发。
2.熟悉基本的机器学习基础,要做到能够白板推导出来。
3.掌握自己本方向自己之前从未做过的任务
4.能够独立发表一篇本方向的相关论文,做到独立科研
5.能够带领低年级同学做科研。
3.常见科研误区
-
不要认为ccf-a,一区的论文就是最好的,要辩证的看法,不要在于来源,学会找准创新点
-
不要认为调参能找到好结果,如果是好的方法,调参不应该很艰难
-
如果有一组参数效果很好,但是其他组参数都不太好,需要高度注意
-
不要把模型弄的过于复杂,要想办法提取核心的创新点。
-
不要搭积木,一个好的创新点要好于三个分散的创新点。
-
在投稿前都应该问一下,本文在这个工作中解决了什么问题,技术创新是什么,别人读了会有什么收获。
-
学会讲故事,营造问题。
4.赏析好论文
可以以Language Models are Unsupervised Multitask Learners 和 Language Models are Few-Shot Learners 这两篇论文自己赏析一下,找到好的句子,温故知新。
关注下方《学姐带你玩AI》🚀🚀🚀
论文资料+比赛方案+面试经验all in
码字不易,欢迎大家点赞评论收藏!