辞职从事机器学习研究,脱产一年的我学到了什么?

做者 | David Mack
来源 | AI开发者

本文做者 David Mack,为了从事机器学习相关的研究,他辞去了工做,在没有固定收入的状况下进行了一年了探索。本文是他对过去一年经验和体会的总结。编程

梯度降低引导的旅程

最近,我发现个人生活须要一个新的挑战。我厌倦了个人平常工做,坚持想本身去从事机器学习研究。
这一年充满了挑战,且收获颇丰。我经历了许多失败和一系列意想不到的成功,走上了一条彻底不一样于以前设想的道路。网络

在这里,我将告诉你个人经历:我作了什么,哪些成功了,哪些失败了,我学到了什么,我会作什么不同的事情。若是你渴望进入机器学习领域,或者想知道成为一名研究员须要什么,但愿个人文章可以帮到你。架构

我从哪里开始并发

随着时间的推移,我工做中的学习和挑战逐渐减小。之前有不少未知的技能须要学习,如今我天天只须要按照一个规律的模式执行就能够。我对没有已知解决方案的开放性问题感到最为兴奋。机器学习

我愈来愈多地把空闲时间花在阅读学术论文和草拟解决开放性问题的方案上。编辑器

有一天,我坐在森林里的树桩上,等着一个朋友回来,我忽然产生了一个想法,那就是我不得不辞职。这种清醒的时刻是奇怪和罕见的,你永远不知道它会出如今何时。次日早上,我告诉个人团队我要离开。函数

在大学里,我攻读了计算机科学的本科和计算机科学与数学的硕士学位。我一直渴望进一步学习,但从未找到一个吸引个人环境。工具

在我辞职的时候,我很幸运有了一些存款,因此放弃全职工做就不那么可怕了。我每周工做 2 天并减小开支以使个人财务收支平衡。个人搭档帮助我,我不少周末都在工做。学习

热身运动测试

在辞掉工做以前,我已经开始从事微型研究项目,我会作一些有趣的东西,在网上写下来,这个过程不会花太多时间来完成。

这大大加强了我走这条新道路的信心。经过指导和出版它们(这里是其中一个例子),我向本身展现了我有研究的基本技能。

我鼓励任何正在考虑进行研究的人找到一些小项目,并把它们作完。它颇有趣,而且能让你体验整个过程。

开始

在进入全职研究以后,我作的第一件事就是创建 Octavian.ai,这是一个我能够在网上写做的地方。我将一个网络流量网站,一个媒体出版物,facebook 和 twitter 整合在一块儿。虽然我在美术上花了不少时间(我也喜欢平面设计),但在过去的一年里,这个网站一直是我用得最多的地方。当人们对个人工做感兴趣时,我常常让他们去看看这个网站。

我还发现,有一个品牌能够将咱们全部的工做和各类演讲活动联系在一块儿。我相信这个品牌帮助咱们发展了咱们的社区,由于它帮助组织看起来更加连贯和专业。

我没有为这件事情筹集任何资金。这只是一种我的探索的工具,不适合提高。

科研并非魔法

我须要克服的最先的障碍之一是改变进行研究是一种只有精英才能完成的神秘活动的想法。

我如今已经从一些学生、研究人员和工程师那里听到了一样的感觉。即便是出版过相关著做的研究人员也偶尔在 Twitter 上认可感受本身像冒名顶替者,而不是「真正的研究人员」。

虽然我还只是研究领域的一个刚入门的学生,但我据说不少人对此感到消极,因此我想发表一个声明:研究不是魔法。这只是一个处理问题、定义问题、列出解决方案、尝试解决方案、了解什么方法有效以及记录这些问题的过程。任何聪明、勤奋的人均可以走这条路。

此外,你很容易由于惧怕本身能力不够或者这件事情不值得去作而放弃。相反,开始研究吧,给它时间去自由发展。

进行研究须要很长时间

我今年最大的收获之一就是投入了不少时间、精力和资源来进行研究。具体来讲,个人意思是产生成功的结果:一种比其余人表现更好的方法,或者发现一个能帮助其余人的问题。

在个人职业生涯中,我很清楚计划的谬误:

「预测完成将来任务所需时间常常会表现出乐观主义倾向,咱们会低估所需的时间。」

然而,我花了不少时间在研究项目上,才真正作到这一点。我发现每一个项目都会经历一个周期:

  1. 蜜月期:对问题和潜在解决方案的强烈兴奋、好奇和乐观
  2. 开始工做:打开代码编辑器,整理数据集,勾画出实验架构,知足线性进展
  3. 第一个障碍:解决这个问题比最初设想的要困难。数据处理须要更多的工做。最初的想法是错的。
  4. 悲伤、漫长的驱动/低谷:坚持成为支撑的动力,须要修复更多的错误,须要编写更多的测试用例,更多的变化须要尝试。将来可能会成功,也可能不会。
  5. 最后终于成功:完成这个项目过程当中的一个快乐时刻。你可能永远不会到达这里,或者你可能会完全证实你的方法永远不会奏效。若是是,返回到第一步。
  6. 把它拿出来:写做,而后点击发布。至此,你惟一的动机就是再也不参与这个项目。你点击发布并离开办公室。

在个人心理评估中,我一般只记得步骤 1 到 3。个人记忆抹去了悲伤的事情,这也许是为了保护个人热情。

我如今对我承担的项目范围更加谨慎了。我有一个评分系统:

  • 新数据集?+2 分
  • 数据集太大,没法放在一台机器的内存中?+1 分
  • 从一篇没有代码的论文中实现?+1 分
  • 不适合库的结构:+1 分
  • 用多个 GPU 训练?+1 分
  • 集群训练?+3 分

我花了不少时间构建数据和训练基础设施。例如,一个项目的大部分是将一个模型转换为在一个 TPU 集群上运行(这是我当时惟一拥有的云资源),这样我就能够测试出注意力函数的变化。通过大量的努力,我获得了一个消极的结果。

我选择放弃学术论文,转而在媒体上写博客。这是一把双刃剑:它牺牲严谨性,让我有时间折腾更多的项目。有人和个人朋友们这件事的讨论利弊,他说:「若是你写一篇论文,大多数人不管如何都读不到这篇博客文章了」,这就解决了问题。

考虑到本身的我的时间以外,我如今很是感谢研究机构的资源。即便是写一篇论文,理想状况下你也须要一个团队的合做者,几个月,大量的 GPU 时间,而后几我的来帮忙写。

与初创企业和图书行业同样,深度学习研究也是一个基于点击率的模型——一小部分的论文将得到最大的关注。研究就像抽奖:有些票会有奖品,但你不知道是哪一张。最好的办法是买不少票。做为一名独立研究者,我必须仔细挑选几张票。

无钱训练

机器学习研究中花费在增长

人工智能的冬天因为 GPU 的发展而部分解冻了,其中不少地方都解冻了。
这张来自 OpenAI 的图表显示了训练资源呈指数级增加的明显趋势,即产生最新成果的成本愈来愈高:

计算规模(归功于 OpenAI)

在今年年初,我收集了我能获得的资源:一堆谷歌云信用卡。我把本身的一些钱投入了托管。与任何研究实验室都能接触到的资源相比,这一点都显得苍白无力。因为如下几个缘由,资源再也不是瓶颈:

  • 建造一个可以证实大量资源是合理的东西须要花费大量的工程时间。我一直很当心地只在资源发挥做用的时候使用它们。
  • 我选择了一些数学/理论性更强的问题(而不是在拟合问题下「将模型放大」)。
  • 在某些状况下,你可使用较小版本的模型进行试验,而后在充分调试后再花掉训练预算。

随着时间的发展,一些善良的人和组织捐赠了资源:

  • FloydHub:使用 GPU 在云计算机上运行机器学习实验的一种很是简单的方法。
  • Google TPU 研究云:TPU 如今是我最喜欢的大规模训练方式。编程模型将你的训练分为多个 batch,所以要使用更多的机器,须要增长 batch 大小。

我真的很感谢上面两个资源的支持,它使不少工做成为可能。

无钱招聘

我真的很喜欢创造有本身生命的东西。小时候,我写过多人游戏引擎,程序世界和 BEAM 机器人。做为一个成年人,我开始尝试建立公司。天天 SketchDeck 都会汇集许多伟大的人,他们会制做精美的做品,这给我带来了不少乐趣。

做为 Octavian.ai 项目的一部分,我想建立一个合做者社区。事实证实(绝不奇怪)很难说服人们在没有钱的状况下与你共事。他们也是要恰饭的。

然而,一些人确实站起来并作出了贡献:

Andrew Jefferson,一位我终生的朋友,在从事平常工做的同时,他编写、评审、演讲、发表文章和幻灯片。

今年夏天加入的 Ashwath Kumar Salimath 帮助撰写了一系列文章,并发表了本身的文章。谢谢大家俩!

此外,随着这一年的发展,许多人加入了咱们的聊天室。一个对图形机器学习感兴趣的群体慢慢出现了。咱们进行了不少有趣的讨论,我真的很高兴对这个话题感兴趣的人找到了彼此。

无钱营销

随着深度学习从学术界一个不起眼的角落成长为一个价值 10 亿美圆的行业,咱们看到了学术界和全球营销预算的奇妙交叉。一切看起来都很完美,许多会议和训练营应运而生。

我在 Octavian.ai 的营销上投入了 0 美圆。这一年来,我发现咱们接触读者的最佳方式是:
谷歌搜索带来了咱们大部分的博客流量

咱们的免费机器图形学习课程经过 HackerNews, Reddit 和 Twitter 进行了大量分享。

在会议和会议上交谈会带来流量和有价值的互动

在图形上进行机器学习是很是适合的。我最感兴趣的是在这个世界上找到真正重要的人,而不是试图扩大眼球或收到更多喜欢。

在没有主管和团队的状况下生存

今年年初,我真的低估了一件事,那就是与主管和团队合做。我有时开玩笑说,我这一年是「攻读博士学位的第一年,不一样的是,没有导师,我本身在家里学习」。

做为一个创业者,我有着强烈的独狼心态。我通常不想等待外部因素,相反,我相信经过坚持不懈,我能够到达任何我想去的地方。

我很幸运有几个亲密的同事,一年来有一个不断壮大的社区来支持个人努力。然而,个人大部分工做是在相对孤立的环境中完成的

我如今认为我能够和主管一块儿进步得更快。这在一些方面会有所帮助:

  • 向我提出好问题
  • 指导我找到我不可能想到的好办法
  • 压力/灵感,作得更好
  • 做为一个团队的一员会帮助我:
  • 交流和发展更多的想法
  • 更快地测试想法
  • 互相学习
  • 尝试更多的事情
  • 编写更全面的报告

独自工做(大部分)是孤独的。你须要在精神上能快速恢复,而且坚决地相信本身能到达目的地。

最后,从脆弱的角度来讲,当你工做以外的生活陷入困境时,作这种工做是很是困难的。生活的曲折消耗了足够的能量,很难继续进行单独的研究。

发现好问题

这是我一年来发展的最大的技能。我如今相信这是研究的第一步,也是许多人成功的秘诀。

选择要解决的问题是一门艺术。这一年来,有那么多人来找我,要求我帮助他们挑选本身的研究问题,因而我写了一份建议清单。

在今年年初,挑选一个问题进行研究既使人困惑又使人担心。如今我有了一个很长的列表,列出了我想要探索的领域,以及度量标准和实验的概念。

我认为这项技能须要时间来提升。这是直觉(根据过去的经验),什么问题适合研究,什么适合你的资源,以及什么解决方案可能会挖掘出一些成功。

如下是发展这种技能的一些建议:

  • 在公共数据集/已知问题上参与比赛可让你保持诚实——你有模型能够击败并能创建成功的标准。
  • 尽管为新类型的问题建立本身的数据集也颇有价值,但在这里,你更容易知足于你的解决方案是否真正新颖,而且很难让其余人对你的工做感兴趣。
  • 阅读大量的论文,看看他们遇到了什么问题,他们如何试图解决这些问题,以及他们如何衡量成功。
    与人交谈。
  • 撰写研究建议并得到反馈。
  • 寻找在现实世界有价值的问题——若是你解决了这些问题,天然会有更大的成果和更多的关注。
  • 倾听你的好奇心:做为一个研究者,你的动机是一个有价值的催化剂。若是你以为有些东西还没被充分发掘,去看看吧。
  • 若是大家是两个不一样领域的专家,看看这两个领域的交叉点。你能够获得一些别人没有的灵感。
  • 参与整个研究项目的生命周期将使你得到其余方法没法得到的洞察力。将最初的想法与最终的结果进行比较。

写做是生命之源

你全部未沟通的想法都将被忽略。提升写做水平的最好方法就是写做。

在写做中(不管是想法仍是结果),你不肯定的想法都会暴露在你面前。

个人写做能力和研究思路在一年中经过写许多文章而获得了很大的发展。

技术题材常青

你不知道什么会引发读者的共鸣。

写做的另外一个好处是它提供了参与度统计数据。查看哪些文章作得好,哪些文章作得很差,我对此无限着迷。其中有一些我也常常感到惊讶。

我早期写的文章之一「如何选择学习速率」,是目前 Octavian 上阅读量最高的文章(66K)。在写做的时候,我历来没有料到这一点。

没有博士学位

自从本科毕业以来,我一直在考虑是否要攻读博士学位。做为一名本科生,我花了一个夏天的时间和团队一块儿完成一篇论文,最后一学期个人硕士论文都是为这门课写的一篇研究论文。最终,我从未发现我想要的环境、团队和问题的结合。我在创业过程当中发现的精力和活力对我更有吸引力。

我认为没有博士学位对我有一些不利之处:

  • 博士学位让你有时间阅读大量论文和实践研究技能。
  • 博士学位给了你一个有利于良好研究的导师和环境。
  • 博士学位是一系列如今对我有吸引力的工做的预期切入点。

我仍然对攻读博士学位持开放态度。我表妹很了解这个职业,并准备攻读第二个博士学位,因此我很感激有不少途径能够了解这一点。

我会怎么作呢?

这一年过去后,我如今能够反思一下我可能能够作得更好的方式。

首先,我不后悔。我能给本身的最大礼物就是时间。有足够的时间和空间去关注个人好奇心,努力完成对我来讲很重要的项目,这是很是特别的,我真的很幸运我能作到。

对我来讲,今年开始是一次真正的冒险。目的地未知,我将边走边摸索将来的道路。

今年我有许多宽松的目标,其中一些已经实现:

向我本身证实我有能力进行学术研究。我想我作到了。这一年我学到了不少关于构建 ML 系统的技巧和研究的技巧。我对本身的研究方向也有了更好的了解。我看到本身仍在思考问题,掌握了基本技能。我可以完成全部的研究步骤,并有信心指导学生们。

建立一个机器学习驱动的企业。我在这个目标上失败了。我探索了不少想法,和不少人交谈,但没有找到答案。这在必定程度上是由于这个目标并无集中在解决一个真正的问题上;我历来没有发现一个我很是想解决的问题。

提升我搭建机器学习系统的技能。我确实作到了。在每一篇已发表的文章(以及一堆未发表的文章)后面都有大量的代码、阅读文章和调试模型。我花了大量时间在训练和数据基础设施上。个人实现技能大大提升了,我对系统为何不能工做以及如何处理它有很强的直觉。

制做一份学术级的研究报告。我没有达到这个目标。到今年年末,我已经创建了尝试这一点的技能和研究问题清单,个人最后一个大项目没有产生积极的结果。我没时间尝试更多的解决方案。不过,它确实教会了我不少关于扩大 TPU 训练的知识。我想花更多的时间来实现这个目标。

一位朋友在这一年给个人一条建议是,为了个人兴趣,寻找世界上最好的人,并向他们学习。我仍然不知道如何在没有博士学位的状况下完成这项工做,但这并不意味着这是不可能的。

我时常检讨本身的中心目标是什么。一个持久的答案是「创造我引觉得傲的东西」。我坚持本身的高标准,随着个人学习水平的提升而提升,所以我倾向于认为我全部的工做都不够好。感谢全部帮助我走上这条道路的人。

相关文章
相关标签/搜索