毕业陷入迷茫?吴恩达教你如何成为AI业界大佬

近来,硅谷迎来裁员潮,机器学习领域的求职压力也有所增加。如何规划 ML 职业生涯,才能获得长期成就?吴恩达教授为机器学习领域的毕业生提供了一些建议。

这篇文章内容取自斯坦福大学教授、Coursera 联合创始人吴恩达的课堂演讲,主题为《关于在机器学习领域获得成功职业生涯的几点建议》。


本文提到的职业建议位于视频后半部分。

演讲主要包括以下几部分内容:

  • 如何找到一份工作

  • 成功的 AI 从业者模式

  • 如何选择一份工作

  • 机器学习职业生涯的误区


机器学习专业的学生在完成学术研究之后,通常会从事这一领域的工作,或者继续读博。

通常有两种类型的公司会需要 AI 领域的人才。一种是大型科技公司,比如 Facebook、谷歌。另一种是年轻的,充满活力的初创公司。

吴恩达教授提到一点:无论朝哪个方向走,你都应该确保自己从事的是重要且有意义的工作。本文作者 Richmond Alake 详细介绍了吴恩达教授的这一观点,并结合自身经历谈了谈这些建议的具体内容。

首先,如何找到工作?

如何找到一份工作


机器学习领域的工作竞争激烈,大部分人都了解这一点,已经做好心理准备,但你可能不知道公司招聘时看重哪些技能和素质。

多年来,吴恩达教授在 AI 团队中和各类企业中积累了深厚的工作经验和领导经验,他给出了一些建议:

编程技能

机器学习研究工作要求个人至少要掌握平均水平的编程技能。程序员平均要掌握两到三种编程语言,并且达到中级水平。

机器学习领域的从业者也应具备编程技能,并且应该了解几门常用的编程语言,例如 Python、Java、JavaScript、R 语言等。

为什么需要掌握多种语言的实践知识呢?

以我自己为例,我目前是一名计算机视觉工程师,我需要用到 3 种不同的编程语言。我用 Python 来实现模型(TensorFlow)和编写脚本,用 javascript 来实现模型(tfjs),最后,我还要用 Swift 将模型和计算机视觉技术集成到 iOS 应用程序中。

回答技术问题的能力

在简历通过之后,你就会进入面试的下一阶段,通常是电话面试和现场面试。在这两个面试阶段,你都需要回答机器学习相关的问题,比如解释梯度下降变体之间的差异,描述新型神经网络架构的特性。

理论知识的实际应用

面试之前,你可能在学术研究机构中度过了几年,所以已经习惯了大学采用的基于理论的考试方法。

但是公司招聘的不是只掌握理论知识的人,而是能够将机器学习中的理论概念、技术以及思维进行实际应用的优秀人才。

比如,你首先要从概念上理解批归一化的好处,但是只有会用并且大量用过 Jupyter notebook 或 GitHub repo 的人才能够在招聘中脱颖而出。

业余项目

证明和应用所学理论知识的一个好方法是在你的工作任务中加入一两个业余项目,这是你展示技术、创造力和问题解决能力的绝好机会。

持续学习

一些传统领域的职位不需要随时更新专业知识,但在机器学习领域则完全不是这样。作为一个热门学科,人工智能领域里每天都有新开发的技术,每周都有更新的工具和库,每个月都有大量新发表的研究论文。

在机器学习领域里,你不能停止学习的脚步。我目前正在参与这个领域的研究,利用研究和开源项目中的技术,尽管如此,我还是会经常看到有全新的神经网络推动计算机视觉特定任务的发展,成为某方向的新 SOTA。

你的雇主总会希望你不满足于现有水平,保持求知欲望。机器学习从业人员需要永远处于领先技术的最前沿。

成功的 AI 从业者模式


AI 包含很多子领域,如机器学习、NLP、语音识别、CV 等等。吴恩达表示,职场的最强候选人和成功的 AI 从业者都用一种「T」形方法来学习 AI 子领域。

也就是说,他们对很多子领域都有一个大致的了解,但只深入其中的几个。

以我个人为例,我在机器学习、计算机视觉和机器人学方向进行了深造。通过学习,我对 AI 的一些关键子领域有了基本了解。但在论文、个人项目和职业路径中,我只关注三大领域:计算机视觉、自然语言处理和深度学习。

下图显示了我在大学毕业、完成 pwn 项目并开始工作之后构建的「T」形知识路径长什么样。

在研究生阶段学完 ML、CV 和机器人学相关课程之后,我获得了 AI 主要子领域的基本知识。

大学毕业后的人工智能领域知识。

在我完成论文并开启自己的职业生涯时,我的学习路径是 T 型的。我专注于深度学习的子领域计算机视觉。由于关联度较高,在研究过程中我也获得了神经网络、机器学习、自然语言处理(图像标注方面)和图像处理等临近领域的知识。当然,对于一个研究者而言,要想成为深度学习和计算机视觉方面的专家还有很长的路要走。

在完成硕士毕业论文并开始职业生涯之后我所获得的 AI 领域知识。

深度知识

深度知识我们提到了很多遍,但深度意味着什么?在吴恩达看来,深度知识由以下几个方面定义:

  • 项目

  • 开源贡献

  • 研究

  • 实习


同样,在特定子领域里做个人项目可以让你的专业知识更加深入。这不仅可以让你成为成功的 AI 从业人员,而且会让你有更多参与面向实践任务的机会。

如何选择一份工作
吴恩达意识到,拥有机器学习专长的人很受欢迎。对于一些人来说,选择多是一件好事,但对于另一部分人来说,选择多了反而容易出错。

以下是吴恩达写给学生的工作选择建议:

选择一个优秀的团队

在吴恩达看来,团队的选择非常重要。在选择团队时要注意以下几个因素:

  • 互动

  • 沟通

  • 成长


吴恩达建议,你所在的团队应该很容易实现组员之间的互动,通常这样的团队包含 10-30 人。此外,你还要留意团队成员的努力程度,以及他们的个性、职业道德理念能否对你产生积极影响。

为什么这点如此重要?因为行为研究表明,和你相处时间最长的五个人的平均值就是你的各方面行为得分。

找准自己的定位

在决定接受一份 offer 之前,一定要弄清楚你要从事的工作是什么。

通常情况下,招聘广告中给出的职位描述并不能反映真实的工作内容。有时候,某个职位的职责范围会被夸大,这很容易令人失望。还有时候,招聘广告会淡化某个职位的工作量,这会导致你入职不久就陷入倦怠。

避免失望和倦怠的最好方法就是直接和你的上司对话,了解任务的内容和交付时间。

此外,你还可以与类似岗位上的组员交流,了解一下他们的日常工作。

忽略公司品牌形象

公司都有自己的品牌形象和外部认可,但这往往只是他们想让你看到的东西,而且通常是最好的一面,会让你在选择时产生先入为主的偏见。

吴恩达表示,从一般经验来看,公司的品牌形象和你在这家公司的个人经历关系不大。

在选择一份 AI 方面的工作时,团队比公司更应该考虑,选择行业时也是如此。

简单来讲,对于一家石油公司和一家医疗机构的图像分类机器学习项目来说,二者的区别其实只在于他们用来训练 ML 模型的数据集以及模型的应用。机器学习技能可以在行业之间迁移。

选择一份感兴趣的工作,考虑长期目标

人类是一种受到内部和外部因素激励的生物,如果内外激励都不具备,我们就会陷入懊悔、不安甚至是失望,

对此,吴恩达给出的建议非常直白:

「选择一个你不会觉得无聊的工作」。

我还喜欢吴恩达的另一个观点:迫不及待地进入某个角色并不是什么好主意。

在找工作期间,我拒绝了很多 offer。这些 offer 表面看起来都很不错,但都需要我做出一些我不想做的个人牺牲。

还有一些 offer 短期来看非常不错,但如果考虑未来十年的职业生涯,我并不觉得它们是最佳选择。

我想要成为一家成功公司的 AI 领导,因此我要以比平时更快的速度深入这家公司。在这种情况下,一个大的团队会让我成为小透明,因此不是我的最佳选择。相反,在一家创业公司工作可以让我获得更多的自主权和学习的环境,加速我的职业发展和成长。

因此,一定要选择一份适合你个人目标和长期发展的工作。

机器学习职业生涯的误区

做一个万事通

在人工智能这个领域,做一个「万事通」不一定有什么好处,反而意味着你在每个分支领域知识浅薄。这不是确保你在人工智能或者机器学习之路上拥有长远发展的最佳路径。

从长远来看,专注于获取深度知识会获得相应的回报,尤其是在人工智能这样的领域,精通某个子方向的人往往更受欢迎。

没有耐心

我经常因为没有耐心而内疚,但老实说,在机器学习这种快速发展的领域,你很多时候会焦虑于自己吸收知识的速度不够快。

但通过对那些在职业生涯中取得长期成就的人的深入观察,我意识到,在人工智能的任何一个分支领域建立起真正的技能、知识、经验都需要时间。

我们这一代人习惯于即时满足,急于看到快速成形的结果,最终会损害我们获取知识的进度。

没有实质性项目

拥有一个自己的业余项目对机器学习生涯大有好处,但问题是,这个项目必须具备一定的水平,才能给外部评审者留下足够深刻的印象。

因此,有十个平庸的业余项目不如有两三个真正有影响力的项目,这能更好地展现出你的技术能力。正如吴恩达所说:质量胜过数量。

结语

在吴恩达演讲的最后,他总结了成就成功 ML 职业生涯的三个要素:

1、一定要在有利于学习的环境中工作;
2、确保你所做的项目和工作对他人的生活有积极意义;
3、做有助于实现个人目标的决定,这将使你获得长期成功。

原文链接:https://towardsdatascience.com/how-to-navigate-a-career-in-machine-learning-according-to-andrew-ng-stanford-lectures-9e10f09047f0
产业斯坦福大学计算机科学系吴恩达
1
相关数据
TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

推荐文章
暂无评论
暂无评论~