怎么做科研你懂吗?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
每个人都拥有着相似的才智,为什么有些人能顺利地完成学生到学者的过渡,能在学术生涯早期早早地做出突破性工作;而有些人,虽有雄心壮志,却始终不得其法,不能进入科研之门?
初入科研领域,如何才能正确地做科研?
这是一个困惑了许多人,却始终没有“官方”答案的问题。
在2020年的7月份,ICML 2020 和SIGIR 2020 相继召开。ICML 的杰出论文奖由北京理工大学研二学生魏恺轩同学获得,SIGIR 最佳短论文奖由清华大学大三学生于是同学夺得。
他们初入科研领域,就能早早地在学术之途上崭露头角的秘诀是什么?什么样的方法才是正确的科研方法?
北京智源人工智能研究院邀请了ICML 2020 杰出论文奖、北京理工大学魏恺轩 ,SIGIR 2020最佳短论文奖、清华大学于是,以及清华大学特等奖学金获得者游凯超,讲述他们的经验与感悟,并共同探讨“如何正确做科研”这一问题。整个活动由北京大学李夏主持。
1. 如何步入科研?
李夏:首先,我们先以一个和科研相关的话题,作为圆桌讨论的开始:我们是怎样走上科研道路的?或者说我们为什么选择这条道路? 魏恺轩:上大学以后,大家对科研可能会想尝试一下,但是不知道自己是否适合。这种情况下,我觉得经过大一、大二或者到了大三,具备了一定的基础知识之后,可以去找一位比较好的老师,向他表达一下做学术训练的意向。通过这样的过程,我们可以进行一些科研训练,并感受自己对它是否感兴趣。记得我在大三,刚开始科研训练的时候,基本每周会总结五六篇相似主题的论文,这个过程让我觉得比较有意思。 于是:我其实选择这个科研方向,主要是因为兴趣。感兴趣之后就会去找老师讨论。老师们也比较欢迎我们本科生参与科研。刚开始的时候(大二时),会有一些议题,大家开始什么都不懂。我也一样,便缠着学长问来问去,所以起步还是很艰辛的,但是坚持下去之后会形成这样一些感觉:能够看懂的东西越来越多,看不懂的越来越少。我觉得像我这样的本科生,可能都经历了这样一个过程。 游凯超:差不多是大二时,我选择了现在的科研方向,是因为整个实验室都是这个方向的,里面有很多学长,都是这个领域的资深专家。这样我平时一旦遇到什么问题,都可以很方便地找他们问清楚。
2. 如何寻找论文思路?
李夏:下一个问题是关于如何寻找论文思路的。记得我们第一次写论文的时候,要么不会选方向,要么是选了具体方向之后,还会面临怎么选择思路的关键问题。 魏恺轩:这方面大家可能都差不多,刚开始的科研课题肯定是取决于导师是谁,并会选取跟他非常相关的课题。我的第一个课题是大三时候做的,虽然当时深度学习非常火,但老师还是觉得做一个传统方法比较好,因为那样会比较锻炼人,而且对于一个新手可能要求不会太高,可能做一个A+B的方法就足够了。 于是:我目前可能还处于一个比较初级的科研阶段,因为我现在还是大三,所以对于寻找论文思路的方法,也不是特别有经验,仅就我目前这篇论文来简单说一下。 我这篇论文而言,我感觉最好找一些比较有创新性的领域,如果选择Incremental型的科研课题,工作可能会比较复杂,最后结果也不会比别人之前工作有很大提升。但如果是比较少的人关注的领域,你提出的方法和模型就无需很复杂,无需基于很多前人的工作,而且会给后人给予启发,会显得非常有吸引力。 游凯超:我们第一篇论文不一定要很厉害,可以简单一点,比如说像恺轩说的A+B也是可以的。这样方便做出一点成绩,能给自己一点鼓励。有了信心之后,我们就可以慢慢再做更高级、更复杂的研究工作。
3. 论文经验:如何阅读管理、被拒稿后怎么办、关心哪些顶会
李夏:当我们专注一个领域,往往会发现这个领域有很多文章,更何况还要阅读其它领域,这便涉及到一个问题:大家平时阅读论文时,如何进行管理的? 游凯超:如何阅读和管理,主要是靠软件,不可能用脑子记住。我推荐一个非常好用的文件管理软件Zotero。有了软件,就可以管理论文了。但是要让它管理哪些论文呢?这就需要我们去寻找了。如果我看到一篇觉得有趣的论文,首先会看它的摘要,之后觉得确实有趣便会通读一遍,之后会顺着参考找其他有趣的论文。如果有足够时间,会顺着参考文献继续深挖,这样每篇论文就像展开了的一个叶结点那样。一般用这种方式,找一个闲暇的午后可以搜集到很多有意思的论文了。 魏恺轩:凯超刚才讲的从一篇有趣的文章的参考文献深挖的思路非常好,我还可以做一点补充,以该文章为时间节点,通过其参考文献可以找到过去的一些文章,其实我们还可以找到未来的一些文章。比如通过谷歌学术搜索这篇文章本身,我们便可以看到更多选项,比如看到哪一些文章引用了这篇文章等,这就可能帮我们找到未来的好文章。 李夏:我也想说一下我自己的看法,看论文最好看一系列的论文,把领域的重要结点整理、总结出来:比如这篇论文相对之前论文的具体创新点在哪等。我们会发现,其实很多论文的创新点并不是很大,都是建筑在前人的基础上的。所以说,看论文过程,也是我们学习如何在前人的基础上添砖加瓦的过程。 李夏:你们在科研过程中,有没有遇到一些比较困难的问题,是如何解决的? 魏恺轩:我在科研前期还是相当困难的,做论文的时候,虽然本身把性能做出来相对顺利,但是投稿一直不顺,这可能会比较打击士气。但我从中也能学到很多东西,包括为什么审稿人会这么针对你——无论怎么样,审稿人都肯定有一定的道理。所以这个过程中,需要调整自己的心态、保持信心、磨砺自己的能力,让文章最后能顺利发表。 李夏:大家平时关注的论文有哪些?我们每个人说一下最喜欢的几个国内外会议吧。 于是:比较耳熟能详的国际会议都会关注,比如ACL,以及EMNLP会议等。我可能关注检索领域多一点,这个领域有SIGIR、WWW等会议。国内的话有中国计算语言学大会(CCL),以及NLPCC等。 魏恺轩:我对计算机视觉的CVPR/ICCV/ECCV及机器学习的ICML/NeurIPS等会议关注比较多。此外,我还会看SIGGRAPH/ICCP的论文,因为可以看到很多计算摄影/计算成像的工作。国内的会议可以关注最近几年新办的PRCV。 游凯超:我还关注的是MLA大会,不过它不接受投稿,只是邀请最近一年发表过论文的人做一些报告,它相当于一个总结性会议。
4. 如何进行时间管理
李夏:接下来请大家分享一下 如何进行时间管理? 游凯超:时间管理,感觉越到后面越忙,忙到最后自己记不住了,需要靠各种方法。比如我有一个日历,每页是一个月的日期。我就把接下来一两周内要做的事情填写好,以便有条不紊的管理。 魏恺轩:我可能会在早上的时候思考今天要做什么,会去列几项今天要做的事情。等这天结束的时候,再去统计一下每件事花掉的时间。 李夏:我的方式可能有点异类。我们实验室推崇的是这样的方法:当没有idea的时候,可以走出校园,游山玩水,锻炼身心;而有了idea后,则立马动手去做。
5. 论文获奖后心得
李夏:大家通过这次论文获奖,有没有特别的心得体会? 于是:对于SIGIR这个奖,当时宣布的时候也是挺突然的,自己也没有什么预感,之后线上有一个即兴发言,当时还是挺紧张的,但对于自己来说也是锻炼。在SIGIR会议的Discussion流程中,我发现这是一个很好的机会,可以观察到别人阅读论文后的看法。他们可能会提出一些我没有考虑到的问题。这些不同的思维视角,对我以后的科研工作还是有很大的帮助。 魏恺轩:相比于从某个具体的应用出发解决现有方法不足之处的工作,我们的工作是从计算成像领域中一类主流算法(即PnP算法)出发去解决算法本质存在的开放问题,一旦解决了问题以后,就能够对下游的一系列的计算成像应用产生一定影响。另一方面,文章写作也非常重要,包括如何将文章的重要性表述出来,在不夸张的前提下尽量拔高自己的研究工作。在文章的写作成稿阶段,合作老师的润色修改也让文章明显提高了一个档次。 李夏:凯超和恺轩做过好几次审稿人了,能否向论文写作的新人们介绍一下审稿流程? 游凯超:在此之前,我先说明一下怎么成为审稿人。一般在会议开始之前,会议主席会通过往年的论文作者列表直接邀请一些人成为审稿人,发表过两篇在相关会议上的论文,就能够成为这个会议的审稿人了。在作者投稿之后,每一个审稿人可以在整个会议论文列表中筛选自己感兴趣的论文,系统据此判断审稿人感兴趣的方向,但分配到的论文不一定是筛选的时候选的论文。拿到论文以后的正式审稿,需要填一个表格,填写最后给的分数和具体的评论:首先用几句话总结一下论文,然后列一下论文的优点和缺点,最后给一些具体评价。这些评价反馈给作者之后,作者也可以进行回应(rebuttal)。现在也有某些会议是直接根据审稿人的意见决定对每篇论文是否录取。 魏恺轩:除了凯超讲的论文发表达到一定程度后会被会议邀请成为审稿人之外,还可以通过自荐的方式(如今年的NeurIPS)当审稿人。此外,如果跟会议的领域主席(AC)有联系的话,他们也可以直接将你推荐为审稿人。
6. 论文审稿人的自我修养
李夏:我们比较关心审稿人具有什么样的素质,大家认为具有怎样素养的人会是比较合格的审稿人? 游凯超:我只能说是一路成长过来的,第一次成为审稿人的时候,心情比较激动,之前都是作者现在变成了审稿人。最开始当审稿人的时候,我对每一篇论文看得很仔细,也会发现很多错误,对每一篇论文吹毛求疵。后来看到其他审稿人的评价,我才知道审稿不是挑毛病,而是寻找投稿的不足之处、找到论文的亮点并提出一些修改意见。 魏恺轩:一开始当审稿人可能不太熟练,在自己的审稿样本有限的情况下,我们可以通过阅读OpenReview(如ICLR)上的审稿意见来学习如何审稿。此外,如果是审TPAMI这种的顶级期刊,其所要求的审稿质量就比会议要高出不少,一般都需要详细地写上十条左右的意见。
7. 导师放养怎么办?
李夏:下面是一些大家比较关注的问题,导师放养怎么办? 李夏:我的导师是一个老教授,最前沿的相对来说没有太多经验,但是积累了很高的学术眼光和基础学术素养,所以在大方向上可以经常找导师,而不是等着导师催你,主动促使导师、利用导师的眼光和资源。发表论文时候要与导师进行商量,看导师是不是非常擅长这个方向,有些老师对一个具体方向不擅长,但会介绍合适的其他人选,实在不行可以找其他合作者。 魏恺轩:导师放羊的情况下,自己要去主动push导师,尽可能找一些资源。有些优秀的导师即使他自己对你的课题不熟悉,也可能会找到其他有相关经验的老师带你。我的科研经历中,跟MSRA的杨老师的合作就是我导师介绍的,后期有一定的学术积累以后自己也可以主动去找资源,剑桥的资源是我在MSRA期间认识的师兄介绍的,也是经过一定的努力后获得了这样的机会。
8. 课内和科研的平衡
李夏:本科刚开始的时候如何做到课内和科研的平衡? 于是:本科阶段做科研,首先要有兴趣,只有兴趣才是最大的动力。如果课内课程不需要花费太多精力可以学的比较好的,可以多花一些主要精力在科研上。如果本科学习不是很轻松,还是要以本科学习为第一位,再尽可能地付出其他时间,这样也会比其他人更加的辛苦。如果本科决定做科研,就要有比别人更辛苦的一些觉悟啦。 游凯超:实际上,科研是研究生的本职工作,是本科生的课外活动和课外兴趣。因此,本科生的本质工作还是要放在学习上。
9. 深度学习时代,传统方法还有价值吗?
李夏:现在深度学习技术和传统机器学习无关,是不是可以不那么重视传统学习了,是不是这样? 魏恺轩:实际上,现在很多好工作都是传统方法和深度学习的有机结合。通过这个问题,我进一步回答一下怎么想点子的问题,最简单的就是A+B的工作,A和B是比较相似的领域,将A领域中的方法迁移到B领域中。第二种就是怎么把传统的方法建模到深度学习里面来,比如高层视觉中的nonlocal network,李夏同学的EMANet,底层视觉中PnP算法及将传统的优化算法展开成神经网络的方法,都是这类工作的典例。相比纯粹地做网络,这种结合了传统方法的点子更漂亮,效果也可能更好。 于是:对于深度学习还是传统的问题,我觉得可能位于我这个领域,比如说QA以及信息检索可能比较前沿,他们都是神经网络深度学习的内容。但深度学习的东西有一些特点,比如它需要很多训练数据,有时候会有domain transfer的问题。很多时候我们也必须正视传统方法的优点,因为它是经过时间检验的,是非常稳定的一种方法。所以我们使用深度学习的时候,也不能忘掉深度学习有时候有各种各样的特点,有时候不是特别稳定,所以我们不能把传统方法抛弃。
10. 新手入门:如何提升数学、代码、阅读能力
李夏:怎么在做科研过程中提高自己的数学能力? 游凯超:我觉得应该先想清楚基础是什么,基础是基本的数学跟大学的数学的能力,最好能精通,有了这个基础之后,做学术过程中不管什么样的问题,基本上都能想清楚它是什么。这样有了一个广泛基础之后,再去做学术,可以很轻易地了解这个领域的概貌,可以在很短时间内完成对这个领域的概况学习,然后再决定要不要细看这个领域的内容。 于是:我们不能一定要把所有的基础学扎实再做科研,这种是不可行的。因为基础是无穷无尽的。还是要有胆识放开做一个东西,当然在学习的过程中要看到知识体系上的漏洞,从而有针对性地进行补充学习。 李夏:如果遇到看不懂的公式, 只要坚持多看几遍,每一遍都会有更高一个层次的体会和理解,这样反复看也是像我这种普通人的好方法。 李夏:对于新手来说如何提升代码能力? 游凯超:代码这个事情比较抽象。想要了解一门编程语言的话,作为一个新手不管是看网课、看视频还是看书的方式都是简单的入门,想要更精深一点,像《C++ Primer Plus》这些大砖头的书,读完以后就能对语言有深刻的了解,但是花费的时间也非常多。代码能力不同阶段有不同的需求,并不是说对每一门语言都要做到精通的地步。 李夏:学习原代码应该是比较好的有效方式,包括代码风格,更关键是怎么组织这个代码结构,都可以好好学习。 李夏:对于一些同学来说,读论文读的太慢应该怎么办? 于是:首先我也处于比较初级的阶段,我的看法是如果读的慢也没有必要强求自己一定要追求速度,读论文还是要慢慢来。读论文并不是将每篇论文从头到尾把每个字都读一遍,很多时候读一下它的摘要,扫一眼文章的图表,就可以对它的内容做出大致的判断,然后再决定要不要仔细去读。 另外如果准备仔细读一篇文章,也需要对自己多加宽容。如果遇到一篇文章,不明白其中一两句话表达的意思,或者有一个小点不是很懂,这个不要强求自己去明白每一个细节。读论文最主要是掌握大概的思路。 魏恺轩:刚开始读的慢很正常,但如果是因为涉及到很多数学公式而影响阅读速度,可以用不求甚解的方式,也可以通过阅读同类文章去了解相关知识,而没有必要局限于读不懂的论文。 游凯超:如果遇到非常长的、看不懂的数学公式可以先跳过去,因为数学公式并不是单独存在的,而是有文字配合描述它的使用方式。有时作者想表达的是一个比较简单的观点,但是用数学公式来表达却非常复杂。所以可以通过文字的描述来理解这个公式。
11. 一句话,赠予正在阅读的你
李夏:最后,请每个人留一句话给刚刚踏入这个领域的人。 于是:我是本科生,我想向和我一样的本科生说一些话。对于本科生做科研,第一是一定要感兴趣,第二是决定做了之后要坚持下去,虽然一开始可能会感到很困难。此外不要轻言放弃,同时也不能太过苛求自己,不然自己心理压力太大,容易陷入一种自我否定的状态。做科研还是要放宽心态,坚持不懈的同时,一定要相信自己,慢慢来,还是要有自信心。 魏恺轩:于是刚提到得自信心是非常重要的,在心理学上有一个术语叫做自我实现的预言,这种预言真的能对你产生一定的影响。如果觉得自己不太行的话,可能真的就不太行了,觉得自己能行,说不定还可以做到。 游凯超:我想继续谈下自信心,大家看到人工智能越来越火,但投稿的录用有一定的随机性。虽然可能会被拒稿,但一定要保持信心,给自己内在性的自信力,而不是通过文章的录用与否去获取自信。 李夏:感谢三位嘉宾给我们分享了很多东西,希望大家都能够仔细学习今天的经验,也希望后进者不断加入我们社区,促进行业的发展,谢谢大家。
认知智能未来机器人接口API简介介绍
- 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。
认知智能CI机器人是杭州道翰天琼智能科技有限公司旗下产品。认知智能机器人是依托道翰天琼10年研发的认知智能CI体系为核心而打造的认知智能机器人大脑,是全球第一个认知智能机器人大脑。具有突破性,创新性,领航性。是新一代智能认知智能的最好的产品支撑。 认知智能机器人技术体系更加先进,更加智能,是新一代智能,认知智能领域世界范围内唯一的认知智能机器人。 认知智能机器人是新时代的产物,是新一代智能认知智能的产物。代表了新一代智能认知智能最核心的优势。和人工智能机器人大脑相比,优势非常明显。智能度高,客户粘性大,客户满意度高,易于推广和传播等核心特点。 依托认知智能机器人平台提供的机器人大脑服务,可以赋能各个行业,各个领域的智能设备,各类需要人机互动的领域等。认知智能机器人平台网址:www.weilaitec.com,www.citec.top。欢迎注册使用,走进更智能机器人世界。
认知智能和人工智能的优劣势对比主要可以分为四大方面: 第一:时代发展不同。人工智能是智能时代发展的第二个阶段,认知智能是智能时代发展的第三个阶段。时代发展上决定了认知智能更显具有时代领先性。 第二:基础理论体系不同。人工智能的基础理论体系以数学为基础,以统计概率体系为基础。认知智能基础理论体系以交叉许可理论体系为基础。包含古今中外哲学体系,心理学体系,逻辑学体系,语言学体系,符号学体系,数学体系等学科。其基础理论体系更加具有创新性,突破性和领先性。且交叉学科理论体系的研究也是未来智能发展的大方向。其具体理论体系,还包含三体论(宇宙,信息,大脑三者关系),融智学,和HNC等。 第三:技术体系不同。人工智能的核心技术体系主要是算法,机器学习,深度学习,知识图谱等。其主要功用在感知智能。感知智能其核心主要是在模仿人类的感知能力。认知智能的核心技术体系是以交叉学科理论体系而衍生出来的。具体包含三大核心技术体系,认知维度,类脑模型和万维图谱。认知智能的技术体系核心以类脑的认知体系为基础。以全方位模仿类脑能力为目标。人工智能以感知智能为基础的体系,只能作为认知智能中的类脑模型技术体系中的感知层技术体系。类脑模型大致包含,感知层,记忆层,学习层,理解层,认知层,逻辑层,情感层,沟通层,意识层等9大核心技术层。因此人工智能的核心只是作为认知智能类脑模型中的感知层。因此在技术体系上,人工智能和认知智能基本上没有太多的可比性。 第四:智能度成本等方面的不同:人工智能产品的综合智能程度,普遍在2-3岁左右的智力水平。认知智能产品其智能程度大致在5-8岁左右。认知智能体系构建的机器人更加智能。且更省时间,更省人力和资金。优势非常多。具体请看下列的逐项对比。
道翰天琼CiGril机器人API
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
- 在平台注册账号
- 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
- 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。
开始接入
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 | 类型 | 默认值 | 描述 |
userid | String | 无 | 平台注册账号 |
appid | String | 无 | 平台创建的应用id |
key | String | 无 | 平台应用生成的秘钥 |
msg | String | "" | 用户端消息内容 |
ip | String | "" | 客户端ip要求唯一性,无ip等可以用QQ账号,微信账号,手机MAC地址等代替。 |
接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552
注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
/**
* Get请求,获得返回数据
* @param urlStr
* @return
*/
private static String opUrl(String urlStr)
{
URL url = null;
HttpURLConnection conn = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 10000);
conn.setConnectTimeout(5 * 10000);
conn.setRequestMethod("POST");
if (conn.getResponseCode() == 200)
{
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
int len = -1;
byte[] buf = new byte[128];
while ((len = is.read(buf)) != -1)
{
baos.write(buf, 0, len);
}
baos.flush();
String result = baos.toString();
return result;
} else
{
throw new Exception("服务器连接错误!");
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
if (is != null)
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (baos != null)
baos.close();
} catch (IOException e)
{
e.printStackTrace();
}
conn.disconnect();
}
return "";
}
public static void main(String args []){
//msg参数就是传输过去的对话内容。
System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
}
}