https://www.jianshu.com/p/2149c9fee166

摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助。

人工智能研究这个领域是有一定门槛的。对于初学者来说,一般通常的做法是直接购买一些热门的书籍,比如“西瓜书”、“花书”、“xx天从入门到精通”、“xx天从入门到放弃”等等,但大多数书籍都是讲的基础知识,稍显乏味和枯燥,此外内容太深奥,初学者可能看一段时间就想放弃了。本文以过来人的身份将自身2年的研究经验毫无保留地分享给大家,希望对即将开始从事人工智能研究的朋友有所帮助。

起步

找一个你随时方便提问的人

刚进入公司时,常常会对一些基本问题犹豫不决,这些问题可能会暴露出自身缺乏专业知识。但是过了几个月后,我的提问才慢慢感到自然,提问都是精心拟定的。在此之前,我会积累大量的问题,但现在只要遇到一个问题,我就会立马提问,这样不会造成问题积压以至于越来越困惑。

寻找不同领域的研究灵感

现在不是单打独斗的时代,讲究合作。知识也不例外,多学科交流。对于每个人而言,决定从事什么方向可能是研究中最困难的部分,以下是我所看到的一些具有长期记录的研究人员所采用的策略:

1.与不同领域的研究人员交流。咨询他们感兴趣的问题,询问是否有想要分析的数据集、现有技术存在哪些不足。机器学习中最有效的工作是与生物学、化学、物理、社会科学或纯数学的碰撞。例如,我正在思考Matthew Johnson 在2016年NIPS的文章以及Justin Gilmer在2017年ICML的文章,两篇文章分别是关于鼠标行为数据集的分析以及量子化学的应用;

2.编写一个简单的基线以获得对问题的感觉。比如,尝试编写一些用于控制倒立摆的校准代码。在写基线代码时,会遇到很多情况、各种问题或者一些临时产生的想法,这些都能够加深对问题的理解。

3.扩展喜欢的某篇论文的实验部分。仔细阅读一篇论文,了解其采用的方法和获得的实验结果,设法找到一些可以完善的地方。首先考虑最简单的扩展,然后思考下论文的方法是否合理,实验结果有没有不完善的地方。

重视可视化工具和技能

运行可视化脚本允许我们快速验证代码是否与想法匹配。更重要的是,良好的可视化往往使得想法和代码中的错误变得更加明显以及可解释性。

对于一个实际任务,想出解决问题的正确方法是很困难的。如果采用的是迭代优化模型(比如深度学习),那么绘制出损失函数会是一个好的开端。此外,对于深度学习这个“黑匣子”方法,可视化也能够部分解释其学习到的神经网络参数。比如,当处理图形模型事,可视化其一维或二维变量的分布,当它改变时,可以推断出很多信息。可视化是技术有效性的晴雨表,每次可视化分析结果都能对所采用的的方法或代码起到一定的反馈。

TensorFlow可视化工具Tensorboard

分布图

Q值学习图

弄清楚研究者和论文的最初动机

在学术界可以发现很好玩的现象,研究人员在同一个会议上发表论文,使用相同的技术行话,但两个人的研究动机可以是完全相反的。动机分为以下三个动机——“数学”动机、“工程”动机和“认知”动机:

“数学”动机:智能系统的基本属性和局限性是什么?

“工程”动机:如何开发比其它方法更好地解决实际问题的智能系统?

“认知”动机:如何模拟像人类或其它动物那样的自然智能?

有些论文不止一个动机,此外,每个研究者的动机不可能一直保持不变,这和工程师的兴趣有关。优秀的论文和研究人员将在一开始就说明其研究动机,但有些论文往往表述的不是很清楚,这就需要读者们仔细阅读,此外,在自己写作时也要注意这一点,以防动机不明显而被退稿或退修。

深入研究

学会找论文

网络上充斥着大量的人工智能论文,大多数人首先会发表在arXiv上,由于该平台可以先发表再经过审稿,因此需要学会从中辨别。另外,建议在社交软件上跟踪你最喜欢的研究人员的动态。此外,还有各种会议也值得关注。三大会议分别是NIPS、ICML以及ICRL。其它著名的一般会议包括AAAI、IJCAI和UAI。对于每一个分支学科而言,都有更加具体的会议。比如计算机视觉领域有CVPR、ECCV和ICCV;自然语言领域有ACL、EMNLP和NAACL;机器人学领域有CoRL、ICAPS、ICRA、IROS和RSS;与理论工作相关的会议有AISTAS、COLT和KDD。此外还有一些期刊也值得关注,JAIR和JMLR是人工智能领域最突出的两个期刊,不过在Nature和Science期刊中也会有很好的论文。

对于一些早期论文的查找也是非常重要的,那些被奉为“经典论文”的论文往往会在参考论文中出现。另外一种发现早期论文的方法是从资深教授的个人主页开始查找,其成名作一般会挂在上面。此外还可以通过一些搜索助手,比如谷歌学术、百度学术等查询关键词。

读论文要花多少时间?

关于如何读论文,人们经常给出两个建议。第一个就是在研究生的第一学期或者第一年度把所有相关的论文都读一遍;第二个是当读了大量论文后,不要再泛读,而是找到突破口,想出创新的办法。

我个人同意第一个建议,但不同意第二个建议。只要有足够的时间用于原始研究,那么就应该尽可能多地阅读论文。对于专业研究员而言,不可能总依靠个人幸运来发现创新的解决办法,有时候你想到的方法别人可能已经尝试过,只是你不知道而已。绝大多数的研究者都是耐心的跟踪研究方向的进展以及发展趋势,有条不紊地思考并解决问题。阅读相关论文也是弄清楚目前所处的阶段以及接下来需要做什么的一个好方法。

关于尽可能多地阅读论文有一个重要的提示:花时间理解消化一篇论文和阅读一篇论文同样重要,阅读的时候可以做些笔记,而不是囫囵吞枣,只求数量,不求质量。

对话 >> 视频 >> 论文 >> 会谈

论文无疑是了解不熟悉的研究理论最容易获取的来源,但是什么路径是最有效的呢?不同的人可能感受不一样。对我而言,我发现对话(与那些已经理解的人)是迄今为止最快且最有效的理解途径。如果找不到和这样的人对话的机会,可以找下关于问题的相关视频,例如论文作者访谈视频,这样的视频可以提供很好的观点。此外,当演讲者向现场观众演讲时,他们往往优先考虑的是清晰度而不是简洁性。在大多数论文写作中,作者将优先权顺序互换了,其中词数为王,背景知识解释得太多反而显得作者对该领域不熟悉。排在最后的是会谈,简单的会谈往往显得比较正式,与主持人的谈话内容可能会非常有价值。

谨防炒作

人工智能取得一系列的成果吸引了公众的关注,使得更多的人投入这个领域,进而促使人工智能取得更多突破性的进展。整个循环是良性的,但有一个副作用就是存在大量的炒作。视图获得点击量的记者、热钱投资者、创业型公司都是夸大炒作泡沫的罪魁祸首。因此,在我们阅读新闻或论文时,要注意“标题党”,以免被误导。

在2017年的NIPS的问答环节,一位著名的教授拿着麦克风(代表炒作警察)告诫作者在论文标题中慎重使用“想象”一词。这和我们看新闻时一样,标题很吸引人,但里面的内容却跟标题关系不大,使得阅读者大失所望。阅读论文同样如此,严防炒作,我们需要做的是根据实验方法和结果来评估一篇论文是否对自己有所帮助。

研究是场马拉松

总是在不断进步

在早期探索研究项目时,一般我会花几个小时开展头脑风暴,希望一些模糊的直接能够指引一个具体的方向。有时候项目没有任何进展,但在黑暗中摸索也算是整个研究过程中的一部分。当不知道下一步应该做什么时,可以基于目前已有的情况将最模糊的想法写下来,并在写的过程中进行一一排除(写出排除的原因)。在没有任何想法的情况下, 可以采取阅读或与同事交流的形式以获得灵感。

从死胡同中学会判别和止损

大牛们一般花更多的时间在好的想法上,能够区分想法的好与坏在很大程度上依赖于个人的经验。尽管如此,任何水平的研究人员都会不断遭遇以下决定:研究思路是否有缺陷、是否应该挽救或进一步支持所提出的想法、是否完全放弃所提出的想法?尤其是在早期时,研究人员踏入死胡同后会停留很长一段时间,而不愿放弃。虽然放弃意味着之前的花费的时间白费了,但有的时候要懂得及时止损。

写作

一些大牛给出的早期职业建议是:写作。平时可以写写博客和论文,但更重要的是把自己的想法记录下来。因为写作有助于我们理解与思考相关知识。

心理健康和身体健康是科研的先决条件

学术研究者在追求科学发现的过程中经常会遇到熬夜、顾不上吃饭等问题,这些都不是好习惯。很多博士都开始秃头,甚至硕士就开始掉头发。锻炼身体并放空自己内心也是对科研的投资,并不是阻碍科研。睡8个小时后再工作4个小时,其效率比睡4个小时工作8个小时要高得多。有的时候会遇到卡壳,即使使出浑身解数也无法取得一丝进步,这个时候建议离开工作岗位,稍微活动一下并做长呼吸,放空下自己。

作者信息

Tom Silver,专注于计算科学与数学、人工智能

本文由阿里云云栖社区组织翻译。

文章原标题《Lessons from My First Two Years of AI Research》,译者:海棠,审校:Uncle_LLD。

作者:阿里云云栖社区 链接:https://www.jianshu.com/p/2149c9fee166 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

两年AI研究经验(教训)总结,进来看看吧!的更多相关文章

  1. 使用Kubernetes两年来的7大经验教训

    来源:分布式实验室译者:冯旭松在Ridecell公司管理基础设施团队几年后,我想在停下来休息时记录一些想法和经验教训. 1Kubernetes不仅仅是炒作 我在Kubernetes领域里活跃了很久,所 ...

  2. Apache Storm 的历史及经验教训——Nathan Marz【翻译】

    英文原文地址 中英文对照地址 History of Apache Storm and lessons learned --项目创建者 Nathan Marz Apache Storm 最近成为了ASF ...

  3. 从Apache Storm学到的经验教训 —— storm的由来(转)

    阅读目录 Storm来源 初探 再探 构建第一个版本 被Twitter收购 开源的Storm 发布之后 Storm的技术演进 构建开发者社区版 离开Twitter 提交到Apache Apache孵化 ...

  4. CQRS之旅——旅程8(后记:经验教训)

    旅程8:后记:经验教训 我们的地图有多好?我们走了多远?我们学到了什么?我们迷路了吗? "这片土地可能对那些愿意冒险的人有益."亨利.哈德逊 这一章总结了我们旅程中的发现.它强调了 ...

  5. 使用Flutter完成10个商业项目后的经验教训

    作者:Łukasz Kosman 和 Jakub Wojtczak 原文:https://medium.com/swlh/lessons-learned-after-making-the-first- ...

  6. 新人入职100天,聊聊自己的经验&教训

    这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感 ...

  7. 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训

    [编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...

  8. 创建Android Apps的30个经验教训

    这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人.这里是我一路走来学到的一些东西,分享给大家: 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗? 如果一个东西用户看不到, ...

  9. google开发新人入职100天,聊聊自己的经验&教训 个人对编程和开发的理解 技术发展路线

    新人入职100天,聊聊自己的经验&教训 这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果 ...

随机推荐

  1. Android 从浏览器启动应用

    核心逻辑为AndroidMainfest.xml里面的指定Activity里增加配置: <intent-filter> <data android:scheme="***& ...

  2. linux 软件安装篇

    在linux下安装软件,不像windows一样,下一步下一步安装,但是也有很方便的方式.也有自定义的安装方式,总体来说,套路还不算太深,但是要实践才能出真知哦! linux版本有很多,但是大部分命令都 ...

  3. Java中的引用传递和值传递

    Java中的引用传递和值传递 关于Java的引用传递和值传递,在听了老师讲解后,还是没有弄清楚是怎么一回事,于是查了资料,所以在这里与大家分享,有不对的地方,欢迎大家留言. java中是没有指针的,j ...

  4. oracle对sum出来的数字进行非空补0处理

    oracle在使用函数计算式会遇到这样的情况:例如sum函数 如果计算的sum值为null,则用0替代 方法1(便于理解): select when sum(c.num) is null then   ...

  5. Mobility Model and Routing Model about the ONE

    ONE主要的功能是节点的移动,节点间的相遇情况,路由情况以及消息的处理机制.下面简要介绍下目前ONE自带的六种移动模型和六种路由模型. Mobility Model: 从大的方面,可以分为三种,1)随 ...

  6. [视频]K8飞刀 HackerIE自动检测网站注入教程

    [视频]K8飞刀 HackerIE自动检测网站注入教程 https://pan.baidu.com/s/1c08rihi

  7. 京东架构师的showtime京东个性化推荐系统实战

    推荐系统核心任务是排序,从线上服务角度看,就是将数据从给定集合中数据选择出来,选出后根据一定规则策略方法进行排序. 线上服务要根据一定规则进行架构设计,架构设计是什么?每一次权衡取舍都是设计,设计需要 ...

  8. python基础学习笔记 - 备忘

    基础中的基础 Python标识符 命名规则: Python标识符区分大小写. 可以包括英文.数字以及下划线,但不能以数字开头. 以下划线开头的标识符是有特殊意义的: a)         以单下划线开 ...

  9. hashcode和equals方法的区别和联系

    说到 hashcode就要和Java中的集合,HashSet,HashMap 关系最为密切. 首先附录两张Java的集合结构图: 图二:(上图的简化版) 从Set集合的特点说起 & Set是如 ...

  10. DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)

    了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...