从事了两年 AI 研究,我学到了什么?

Posted AI科技大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从事了两年 AI 研究,我学到了什么?相关的知识,希望对你有一定的参考价值。

作者 | Tom Silver

译者 | 弯月

出品 | CSDN

我从事人工智能研究的工作已经有两年了,有朋友问我都学到了什么,所以我想借本文分享一些迄今为止积累的经验教训。我将在本文中分享一些常见的经历,还会讨论相对具体的人工智能行业技巧。希望对大家能有一定的帮助。

大胆向同事请教

起初,我有点畏惧周围的同事,害怕一些过于基本的问题可能会暴露自己缺乏专业知识。几个月后,我与同事们相处得越来越融洽,但提问的时候我仍然会小心翼翼。现在我有几个可以敞开心扉的好朋友了。

多么希望我能早点与他们成为好朋友!这样就不必下班后拼命上网搜索资料了。现在每当遇到困惑,我会立即提出来,并在进一步发酵之前解决掉。


通过各种途径寻找研究灵感

决定研究课题是我的工作中最困难的部分。下面是研究人员经常采用的一般策略:

1、与不同领域的研究人员交谈。询问他们对什么问题感到兴奋,并尝试用计算机术语重新表述问题。问一问他们是否有想要分析的数据集,但目前已有的技术不足以完成这些分析。在机器学习中,许多颇有影响力的研究都源于与生物、化学、物理、社会科学或纯数学的碰撞。

例如,Matthew Johnson 等人发表的论文《Composing graphicalmodels with neural networks for structured representations and fast inference》就源自一个老鼠行为的数据集,而Justin Gilmer 等人发表的论文《Neural Message Passingfor Quantum Chemistry》则源于量子化学的应用。

2、针对问题编写一个简单的基准方案。例如,尝试编写一些经过仔细校准的代码来控制倒立摆,或者尝试将词袋模型应用到自然语言数据集上。在编写基准方案时,我经常遇到意想不到的情况,有时是我的预期有问题,有时则是代码的问题。在找到合适的基准后,通常我会产生一些其他想法,并更深入地理解问题。

3、扩展论文的实验部分。仔细阅读方法和结果。尝试找到实验的办法。首先考虑简单的扩展,然后思考论文的方法是否充分。想一想还有哪些基准方法没有讨论,并想象这些方法可能不足的地方。


在视化工具和技巧方面的投入

我采用的编写研究代码的策略是从创建可视化脚本开始。编写完其余代码后,运行可视化脚本就可以快速验证代码是否符合我的预期。更重要的是,良好的可视化可以让我快速发现思路或代码中的错误,而且也更方便解释。在完成代码后,我就可以向其他人展示图形或视频,这样可以让我很有成就感。

针对当前问题提出正确的可视化可能很困难。如果你正在迭代优化模型(例如深度学习),绘制损失曲线将是一个不错的起点。还有许多技术可用于可视化和解释神经网络的学习权重(尤其是卷积神经网络),例如导向反向传播。在强化学习和规划中,最应该可视化的是智能体在其环境中的行为,无论是雅达利游戏、机器人任务,还是简单的网格世界(例如 OpenAI Gym 中的环境)。

根据设置,还可以可视化值函数及其在训练过程中的变化或探索状态树。在处理图形模型时,应该可视化一维或二维变量的分布,因为它随着推理而发生的变化中的信息非常有价值。对于评估可视化,有效性的一种方法是,估计一下在每次分析可视化时头脑中需要记住的信息量。不恰当的可视化需要你经常回忆代码中的细节,而良好的可视化能够让结论一目了然。


认清研究人员和论文的基本动机

尽管所有研究人员都会在同一个会议上发表论文,使用相同的技术术语,并称自己的领域为人工智能,但这些研究背后的动机各有千秋。有些人甚至为了澄清问题为该领域取不同的名字。我们的研究动机主要来自三个方向:“数学”、“工程”和“认知”。

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

  • “工程”:如何开发智能系统,并用它更好地解决实际问题?

  • “认知”:如何模拟人类和其他动物的自然智能?

这些动机可以互相融合,许多 AI 论文都可以从多个角度来解读。此外,推动个体研究人员的动机通常都不止一种,这有助于将 AI 领域联系在一起。

然而,每个人的动机也可能不一样。我的一些朋友和同事侧重于“工程”,而有些人则对“生物学”感兴趣。比如一篇论文论证了现有技术的一些巧妙组合可以轻松通过最新的基准测试,工程师们就会对其非常感兴趣,但认知科学家可能会不屑一顾。而有些论文仅陈述了理论或实验结果,但符合生物学的要求或关系到认知,则会受到完全相反的待遇。

优秀的论文和研究人员会在开篇说明他们的动机,但通常根本的推动力会被掩盖。我发现,如果动机不明显,则可以只通过一个角度考虑一篇论文。


不要被研究社区大量的信息淹没


寻找论文

AI相关的论文很容易获得,大部分都在 arXiv 上发表。如今相关论文的发表数量之多令人目不暇接。社区中的许多人都在设法整理和分类这些论文。Andrej Karpathy 建立的网站 arXiv sanity preserver提供了一些有用的排序、搜索和过滤功能。Miles Brundage 每天晚上都会在推特上分享一份精心挑选的arXiv 论文清单,Brundage Bot 也曾提供过类似的服务。此外,推特上也经常有人分享一些有趣的参考资料,我建议 AI 研究人员应该关注推特上你喜欢的研究人员。如果你喜欢上 Reddit,那么可以参考一下这个版面  r/MachineLearning,但通常这些帖子更适合机器学习的实践人员,而不是研究人员。Jack Clark 发布了一个名叫“Import AI”的周刊,Denny Britz 也发布了一份名为“The Wild Week in AI”的时事通讯。

一些会议出版的论文集也值得一读。其中著名的三大会议是 NIPS、ICML 和 ICLR。还有一些面向普通观众的会议包括 AAAI、IJCAI 和 UAI。每个子学科也有各自的会议。例如计算机视觉有CVPR、ECCV、ICCV;而自然语言有ACL、EMNLP 和 NAACL;机器人则有 CoRL(学习)、ICAPS(计划,包括但不限于机器人)、ICRA、IROS、RSS;更多理论工作有 AISTATS、COLT 和 KDD。迄今为止,各种会议是相关论文的主要发表渠道,但也有一些期刊。有时,一些高调的论文也会发表在《自然》和《科学》等常见科学期刊上。

旧论文通常更难寻找,但它们也同样重要。有些经典读物会经常出现在研究生课程的参考阅读列表中。发现旧论文的另一种方法是找到该领域的资深教授,看一看他们早期的成名作。当然,你也可以给这些教授发电子邮件,拜托他们提供一些参考资料(但如果他们太忙,无法回复你,也不要生气)。如果你想搜索鲜为人知或被忽视的旧论文,有一种很好的方法是在 Google 学术中搜索关键字。

应该花多少时间阅读论文?

关于一个人应该花多少时间阅读论文,有两种常见的看法。第一种看法是,阅读大量论文,阅读所有论文!人们常说,研究生第一个学期甚至是第一年的学习只有阅读论文。第二种看法是,在后期进入研究工作以后,不要花太多时间阅读论文!意思是说,如果一个人没有受到别人的方法的影响,就更容易创造性地提出和解决问题。

就我个人而言,我同意第一条,但不同意第二条。我认为应该尽可能地阅读大量论文,只要还有时间进行原创研究就没问题。如果我不太清楚其他人尝试过哪些方法,也不知道哪些方法很好,而哪些行不通,那么为了提出新颖、卓越的方法,我就需要阅读大量的论文武装自己。当然,从全新的视角审视问题也非常关键,业余爱好者跳出固有思维而解决长期挑战的故事确实很鼓舞人心,但是,职业研究人员不能靠这样的运气来解决问题。绝大多数时候,我们需要有耐心,慢慢地、有条不紊地解决问题。此外,为了弄清楚我们目前处于何处,以及接下来应该尝试什么,阅读相关论文是一种更有效的方式。

关于阅读论文,还有一点需要注意:你需要花时间慢慢消化论文。拿几张纸,认真做笔记,然后认真思考,好过囫囵吞枣似的一篇接一篇地阅读论文。

交谈 >> 视频 > 论文> 会议演讲

在理解某个陌生的研究思想时,论文是最容易获得的信息来源。但是究竟哪种渠道最有效?对于这个问题,不同的人可能有不同的看法。对于我来说,我认为交谈(与熟练掌握相关思想的人)是最快、最有效的途径。如果你找不到这样的人,则该主题的视频可以提供很好的见解,比如论文作者发表的演讲。当演讲者向现场观众讲话时,他们会比较注重清晰易懂。而在写论文时,作者比较注重简练,因为他们需要考虑篇幅,而且过多的背景介绍甚至会被认为作者对该领域的了解不够深入。最后,简短的会议演讲大多比较正式,并不是太好的学习机会。当然,能与作者的交谈则十分珍贵。

小心炒作

成功的 AI 研究会引起公众的关注,从而将更多的人带入该领域,从而让 AI 的研究更成功。这种循环大多是良性的,但一个有害的副作用是炒作。记者为了获得点击次数、公司为了争夺投资者和新员工、研究人员为了提高论文的知名度,这些都是扩大炒作泡沫的罪魁祸首。在评估标题、新闻稿或论文时,请注意这些人的动机。

在 NIPS 2017 上,一篇论文的问答环节在一间数百名观众的房间里进行,一位著名的教授拿着麦克风告诫作者在论文的题目中使用了“想象”这个词。对于这种公开对抗,我的感觉很复杂,因为那碰巧是一篇我非常喜欢的论文,但我也非常理解教授的心情。在人工智能研究中,最常见和最严重的炒作之一就是给一些旧思想冠上华丽的新术语。因此,我们应该小心这些流行语,并根据实验和结果来判断一篇论文。


研究马拉松


可衡量的进步

在早期寻找研究项目时,我花了很多时间进行头脑风暴。在当时,所谓的头脑风暴其实就是在办公桌前冥思苦想,希望一些模糊的思路能够凝聚成具体的观点。结束一天的头脑风暴后,我经常感到疲倦和气馁。心中直犯嘀咕,这是研究吗?

当然,研究的推进没有秘诀,很大一部分就是在黑暗中摸索。然而,现在我发现围绕某个可衡量的目标来组织我的工作要容易得多,也更有成就感。如果我对下一步要做什么一无所知,那么目标可以是:尽可能详细地写下一个模糊的想法;如果在写这个想法的过程中,我选择放弃,那么就写下放弃的原因。如果没有任何想法,那么就可以阅读论文或与同事交谈。每天结束之际,我都会整理当天的工作。即使有些想法最终未能成行,也可以大大提高我的斗志,而且不必担心将来在同一个想法上浪费时间。

学会辨认死胡同并及时回头

优秀的研究人员会将时间花在靠谱的想法上。能否区分想法的好坏在很大程度上取决于经验。尽管如此,任何级别的研究人员都会不断遇到以下情况:我的研究想法有缺陷或不确定,那么我应该 A) 尝试进一步挽救或支持该想法;还是 B) 完全放弃思考该想法是否合理。我个人认为,我们应该快刀斩乱麻(即采用 B),而不应该花过多时间纠结(即采用 A)。尤其是在从事研究的早期,我曾多次陷入“死胡同”,而且还纠结了很久。我不愿意放手的原因可能是因为一旦放手,之前的付出就白费了,但实际上及时回头才能防止浪费更多时间。

每当某个研究进入“死胡同”,决定放弃时,我都会感到很失落。现在遇到这种情况,我会告诉自己及时回头是为了今后更好地向前。而且这些付出也不会白费,正是有了这些付出,今后我就不会在同一个问题上浪费时间了。“死胡同”不是什么坏事,也是研究的一部分。

坚持写作

一位非常杰出的人工智能研究人员曾给职业生涯早期的我一个建议:坚持写作!无论是写博客文章还是论文,重要的是坚持记录每一天都想法。在听取了他的建议之后,我注意到当我积极写作和思考时,每天取得的进步就会非常明显。

身心健康是研究必不可少的条件

学术研究人员在痴迷于某项科学发现时,往往会废寝忘食,这其实很危险。我也曾有这样的经历,现在我明白锻炼身体和精神上的休息是投资。如果我花 8 小时睡觉和 4 小时工作,那么比花4 小时睡觉和 8 小时工作的效率要高得多,更不用说其他的一些潜在影响了。

在遇到棘手的问题时,我们很难中途停下来。如今的我有时已经精疲力竭了,还是不愿停下来休息,其实这样并不好,身心俱疲的情况下很难有实质性的进展。我们应该休息一下,深呼吸。我希望在进入研究生涯的下一阶段时,继续努力保持身心健康。

参考链接:

http://web.mit.edu/tslvr/www/lessons_two_years.html

资讯

留不住客户?从你的系统找原因

资讯

Nginx宣布在俄罗斯禁止贡献

技术

学会用Opencv做贪吃蛇游戏

技术

一行Python代码能干嘛?来看!

分享

点收藏

点点赞

点在看

以上是关于从事了两年 AI 研究,我学到了什么?的主要内容,如果未能解决你的问题,请参考以下文章

从事了两年 AI 研究,我学到了什么?

两年AI研究经验(教训)总结,进来看看吧!

废弃了两年多的骨骼动画终于又动起来了。

工程师亲述在 Google 从事 TypeScript 工作的独家体会!

我在MIT人工智能研究实验室工作一年学到的 5 件事!

我在MIT人工智能研究实验室工作一年学到的 5 件事!