作者:Mohamed Ali Habib
编译:ronghuaiyang
导读
干货挺多的,非常有用。
介绍
既然你已经在阅读这篇文章了,那么你可能已经知道该领域的先驱之一Andrew Ng是谁,并且你可能对会对他关于如何建立机器学习职业生涯的建议感兴趣。
本博客总结了斯坦福大学CS230深度学习课程在YouTube上的演讲:对职业发展的一些建议以及阅读研究论文的方法,链接:https://www.youtube.com/watch?v=733m6qBH-jI&list=PLoROMvodv4rOABXSygHTsbvUz4G_YQhOb&index=9&t=0s。
我建议大家多看看这堂课,内容很丰富。不过,我想不管你看不看,你都会发现这篇文章很有帮助。因此,我试图在这里概述这些建议。
跳到关键的要点部分。
Andrew特别提出两项主要建议:
- 阅读研究论文:他使用的非常有效的技巧,当他试图在深度学习中掌握一个新主题时,他会阅读研究论文。
- 在机器学习领域开创事业的建议
读研究论文
你如何通过阅读研究论文来高效和相对快速地学习?所以,如果你想从学术文献中学习,你应该做什么,无论是你想学习建立一个感兴趣的机器学习系统/项目,还是仅仅停留在事情的顶端,获得更多的知识,成为一个深入学习的人。
以下是清单:
- 编写一份论文列表:尝试创建一份研究论文列表、包括你拥有的任何文本或学习资源。
- 过一遍列表:基本上,你应该以一种并行的方式阅读研究论文,意思是一次处理多篇论文。具体地说,试着快速浏览并理解每一篇文章,而不是全部读完,也许你读了每一篇文章的10-20%,也许这足以让你对手头的文章有一个高水平的理解。在那之后,你可能会决定删除其中的一些论文,或者只是浏览一两篇论文,把它们通读一遍。
他还提到,如果你读到:
5-20篇论文(在选择的领域,比如语音识别)=>这可能是足够的知识,你可以实现一个语音识别系统,但可能不够研究或让你处于前沿。
50-100篇论文=>你可能会对这个领域的应用(语音识别)有很好的理解。
如何读论文?
不要从头读到尾。相反,需要多次遍历论文,下面是具体如何做的:
- 阅读文章标题、摘要和图:通过阅读文章标题、摘要、关键网络架构图,或许还有实验部分,你将能够对论文的概念有一个大致的了解。在深度学习中,有很多研究论文都是将整篇论文总结成一两个图形,而不需要费力地通读全文。
- 读介绍+结论+图+略过其他:介绍、结论和摘要是作者试图仔细总结自己工作的地方,以便向审稿人阐明为什么他们的论文应该被接受发表。此外,略过相关的工作部分(如果可能的话),这部分的目的是突出其他人所做的工作,这些工作在某种程度上与作者的工作有关。因此,阅读它可能是有用的,但如果你不熟悉这个主题,有时很难理解。
- 通读全文,但跳过数学部分。
- 通读全文,但略过没有意义的部分:出色的研究意味着我们发表的东西是在我们的知识和理解的边界上。他还解释说,当你阅读论文时(即使是最有影响力的论文),你可能也会发现有些部分没什么用,或者没什么意义。因此,如果你读了一篇论文,其中一些内容没有意义(这并不罕见),那么你可以先略读。除非你想要掌握它,那就花更多的时间。
当你阅读一篇论文时,试着回答以下问题:
- 作者试图完成什么
- 这个方法的关键要素是什么
- 你自己能做什么
- 你还想要什么其他的参考资料
如果你能回答这些问题,就很有希望的能反映出你对论文有很好的理解。
事实证明,当你读更多的论文时,通过练习你会变得更快。因为,很多作者在写论文时使用的是通用格式。
例如,这是作者用来描述网络架构的一种常见格式,特别是在计算机视觉中:
理解一篇论文需要花多少时间?
对于刚接触机器学习的人来说,理解一篇相对简单的论文可能需要一个小时,这并不罕见。但是,有时你可能会偶然发现需要3个小时甚至更长时间才能真正理解的论文。
论文的来源
网上有很多很棒的资源。例如,如果你是新手,列出语音识别领域中最重要的论文的博客文章将非常有用。
随着深度学习的快速发展,很多人都试图跟上它的最新进展。所以,你应该这样做:
- Twitter:令人惊讶的是,Twitter正成为研究人员发现新事物的重要场所。
- ML subreddit:https://www.reddit.com/r/MachineLearning/。
- 重要的机器学习会议:NIPS/ICML/ICLR。
- 朋友:找一个对该领域感兴趣的社区或一群朋友,分享有趣的研究论文。
更加深入的理解文中的数学部分
试着从头开始重新推导。虽然,这需要一些时间,但这是一个很好的练习。
代码练习
- 下载开源代码(如果你能找到的话)并运行它。
- 从头开始重新实现:如果你能够做到这一点,那么这是一个强烈的信号,表明你已经真正理解了手头的算法。
持续进步
最重要的是不断学习,变得更好是指更加稳定的学习,而不是集中一段时间内读大量的论文。与其在短时间内死记硬背,不如从明年开始每周读两篇论文。
对机器学习职业生涯的一些建议
无论你的目标是找一份工作(大公司、初创公司和教职员工的职位),还是进行更高级的研究生学习(也许参加一个博士项目)。
只要专注于做重要的工作,把你的工作看作是一种策略,一个做有用工作的机会。
招聘人员要的是什么?
- 机器学习能力。
- 有意义的工作:表明你能胜任这份工作的项目。
对于成功的机器学习工程师(优秀的求职者)来说,一个非常常见的模式是开发一个T型知识库。意思是对人工智能中许多不同的主题有广泛的理解,并在至少一个领域有非常深刻的理解。
构建横向能力
在这些领域建立基本技能的一个非常有效的方法是通过课程和阅读研究论文。
构建纵向能力
你可以通过做相关的项目、开源贡献、研究和实习来构建它。
选择一份工作
如果你想不断学习新东西,下面是影响你成功的一些因素:
- 无论你是和伟大的人/项目一起工作:被勤奋的人包围会影响你。
- 除了经理之外,还要关注你将与之共事的团队(10-30人,你将与他们互动最多),并对他们进行评估
- 不要关注“品牌”:公司的品牌与你的个人经历并没有太大的关联。
所以,如果你得到了一份工作,问问你将和哪个团队一起工作,不要接受“加入我们,之后我们会组建一个团队”的工作邀请,因为你可能会和一个团队一起做你不感兴趣的事情,这不利于自己有效地进化。
另一方面,如果你能找到一个好的团队(即使是在一家不知名的公司)并加入他们,你实际上可以学到很多东西。
一些通用的建议
- 学得最多:倾向于选择能让你学到最多东西的工作。
- 做重要的工作:从事有价值的项目,推动世界向前发展。
- 尝试将机器学习带到传统行业:我们在科技行业已经改变了很多,但我认为最令人兴奋的工作之一可能是在传统行业(科技行业之外),因为你可以在那里创造更多的价值。
要点
我试着将Andrew的建议总结如下:
- 养成阅读研究论文的习惯:每周阅读两篇论文作为开始。
- 高效阅读:编制一份论文清单,一次阅读多篇论文,每篇论文都要经过多次阅读。
- 阅读论文时:首先阅读题目/摘要/图表(尤其是)/引言/结论。
- 尝试理解算法时:尝试重新推导数学并通过重新实现来练习编程。
- 尽量掌握最新信息,通过查看ML会议和其他在线资源中的资料。
- 在AI中构建一个t型知识库。
- 尝试加入一个好的团队(在大公司或初创公司),这将帮助你高效成长。
- 从事有用的项目可以帮助你学到更多,推动世界前进。
- 尝试将机器学习应用到其他行业:医疗、天文学、气候变化等。
英文原文:https://medium.com/@mohamedalihabib7/advice-on-building-a-machine-learning-career-and-reading-research-papers-by-prof-andrew-ng-f90ac99a0182