机器学习难入门你只是没遇上对的指南!

2019-02-20 17:07发布

点击上方关注,All in AI中国

作者——Kimberly Cook

如果你对进入人工智能领域感兴趣,但又不知道从哪里开始,那么这篇文章你一定要看,它将会为你详细的讲解一些火爆的编程语言和技能以及面试问题,薪水等多方面内容。

随着越来越多的公司采用人工智能技术,机器学习工程师——即开发人工智能(AI)机器和能够学习并应用知识的高级程序员的需求量增大。 这些专业人员需要进行编程以应对复杂的数据集/算法,进而训练人工智能机器。

虽然很多人担心人工智能会取代他们的工作岗位。但在当前这个阶段,他们大可不必担心。相反,人工智能的发展带动着机器学习工程师等一系列岗位增加。一部分原因是公司需要高技工程师来开发和维护他们的产品。

为了帮助那些对这个领域感兴趣的人更好地理解如何进入机器学习的职业生涯,我们汇编了最重要的细节和资源放入这篇文章。我相信,它一定会成为你机器学习生涯中不可缺少的东西。

什么是机器学习?

根据 TechRepublic 的作者 Hope Reese 和 Brandon Vigliarolo 的说法,机器学习是人工智能的一个分支,它赋予计算机系统从经验中自动学习和提高的能力,而不是被明确地编程所限制。在机器学习中,计算机使用大量的数据集,并应用算法进行训练和预测。

机器学习系统能够快速应用来自大型数据集的知识和训练来执行人脸识别、语音识别、物体识别、翻译和许多其他任务。

为什么机器学习工程师的需求会增加?

求职网站 Indeed 的一份报告显示,2015年6月至2018年6月间,包括机器学习工程师在内的人工智能人才招聘数量增长了近100% 。 报告发现,在同一时间段内,Indeed 上搜索这些关键词的比例也增加了182%。

Indeed 产品高级副总裁拉吉•穆克吉(Raj Mukherjee)对 TechRepublic 表示:"雇主对人工智能人才的需求越来越大。" "随着企业继续采用现有的解决方案或开发自己的内部技术,雇主对这些技能的需求可能会继续上升。"

报告发现,就具体职位而言,94%包含人工智能或机器学习术语的招聘广告都是针对机器学习工程师的。41%的机器学习工程师的职位在发布60天后仍然空缺。

Salesforce Einstein 的数据科学和软件工程副总裁 Vitaly Gordon 告诉 TechRepublic,"软件正在吞噬世界,机器学习正在吞噬软件。机器学习工程是一门需要高质量编码、博士级机器学习工程师和具有商业智慧负责人的一门学科。找到这些稀有的人才,可以将一家公司从追随者提升为所在领域的领导者,每个公司都在寻找这样的人才。"

机器学习工程师可能会做什么?

机器学习工程师可以选择许多不同的职业道路。以下是该领域的一些职位,以及他们所需要的技能,相关信息来自Udacity。

  1. 软件工程师: 你需要掌握计算机科学基础和编程、软件工程和系统设计。
  2. 应用型机器学习工程师: 你需要掌握计算机科学基础和编程,应用机器学习算法和库。
  3. 核心机器学习工程师: 你需要掌握计算机科学基础和编程,应用机器学习算法和库、数据建模和评估。

要成为一个机器学习工程师,最好学习哪些编程语言?

Python和R是机器学习、数据科学和分析领域最流行的编程语言。在2018年使用 Python进行工作的工程师占比66%,比2017年增加了11% 。与此同时,R在2018年的市场份额为49% ,比2017年下降了14%。仍然不可忽视。

根据IBM的报道,在机器学习中,Python、Java 和R是众多工程师首选的语言。其次是 c + + 、c、JavaScript、Scala和Julia。

在开发机器学习应用程序时,算法的训练和操作阶段是不同的,正如ZDNet 所报道的那样。 因此,有些人在训练阶段使用一种语言,在操作阶段使用另一种语言。

"对于'普通的机器学习'来说,使用什么语言并不重要,"斯通公司的数据科学负责人路易斯·爱德华多·勒·马森告诉 ZDNet。"但是,当你需要为数以百万计的并发集群提供真正的在线学习算法和实时推理,并在不到500毫秒的时间内做出响应时,这个话题不仅涉及到语言,还涉及到架构、设计、流控制、容错性和弹性。"

成为一名机器学习工程师还需要什么其他技能?

一般来说,机器学习工程师必须熟练掌握计算机科学和编程、数学和统计、数据科学、深度学习和解决问题。 下面是 Udacity 提供的一些所需技能的分类:

  1. 计算机科学基础与程序设计:数据结构(堆栈、队列、多维数组、树、图)、算法(搜索、排序、优化、动态编程)、可计算性和复杂性,以及计算机体系结构(内存、缓存、分布式处理等等)。
  2. 概率与统计:概率相关内容(条件概率、贝叶斯规则,独立性)和由此衍生的技术(贝叶斯网、马尔可夫决策过程、隐马尔可夫模型)。 统计测量(均值、中位数、方差) ,分布(均匀、正态、二项式) ,分析方法(方差分析、假设检验)。
  3. 数据建模和评估:寻找模式(相关性、聚类、特征向量) ,预测性质(分类、回归、异常检测) ,并确定正确的准确性 / 误差度量(例如,分类的对数损失或回归的平方误差之和)和评估策略(顺序与随机交叉验证等等)。
  4. 应用机器学习算法和库:机器学习算法的标准实现可以通过库、包和 api (如 scikit-learn、 Theano、 Spark MLlib、 H2O 和 TensorFlow)获得。 有效地应用它们意味着选择正确的模型(决策树、神经网络、支持向量机、多模型集合)和适合数据的学习过程(线性回归、梯度下降法、遗传算法、袋装法、增强和其他特定模型的方法),以及理解超参数如何影响学习。
  5. 软件工程和系统设计:机器工程师通常致力于开发适合于更大的产品和服务生态系统的软件。这意味着他们需要了解不同部分如何协同工作,以及与各部分进行通信(使用库调用、 REST api 和数据库查询),并为你的部分构建其他人可以使用的接口。这包括了解系统设计和软件工程最佳实践(包括需求分析、系统设计、模块化、版本控制、测试和文档)。

机器学习工程师的平均工资是多少?

美国机器学习工程师的平均工资是134,449美元。根据来自 Indeed 的数据,就人工智能相关工作而言,它在薪水方面排在第三位,仅次于分析总监($140,837)和首席科学家($138,271)。

人工智能和机器学习工程师工作最热门的市场在哪里?

根据Indeed(http://blog.indeed.com/2018/08/23/artificial-intelligence-report/)的数据,几乎12%的人工智能工作岗位都是在纽约找到的。纽约也是美国所有大都市中数据工程师、数据科学家和分析师职位需求最集中的城市,为位于那里的媒体、时尚和银行业中心提供技术支持。

在人工智能工作集中度方面,纽约市排在旧金山(10%)、圣何塞(9%)、华盛顿(8%)、波士顿(6%)和西雅图(6%)之后。 圣何塞的机器学习工程师职位最多,算法工程师、计算机视觉工程师和研究工程师的职位也最多。

有哪些典型的机器学习工程师面试问题?

那些申请机器学习工作的人在面试中可能会遇到许多不同类型的问题,测试他们在数学和统计学、数据科学、深度学习、编程和解决问题方面的技能。

一些机器学习工程师在面试中可能会被问到的问题包括:

  • 在过去的几年里你在做什么?
  • 你熟悉哪些人工智能和机器学习工具?你对它们的熟练程度如何?
  • 你是怎样做到紧跟不断变化的技术?
  • 如何清理和准备数据以确保其质量和相关性?
  • 如何处理数据集中丢失或损坏的数据?
  • 使用机器学习的伦理含义是什么?

Capital One负责机器学习的常务副总裁戴夫卡斯蒂略(Dave Castillo)告诉TechRepublic,求职者在面试时向招聘经理提出问题也很重要。

"面试是一种双向对话,"卡斯蒂略说,"候选人问我们的问题和我们问的问题同样重要。"我们不仅要确保候选人是公司的正确选择,而且公司也是候选人的正确选择。

我在哪里可以找到从事机器学习的资源?

机器学习工程师有不同的职业道路。学习Python、R或Java等编程语言是一个很好的起点。对于机器学习的细节,有大量的在线开放课程(mooc),包括Coursera(https://www.coursera.org/learn/machine-learning);edX(https://www.edx.org/learn/machine-learning)上的课程

以及Udacity上(https://www.udacity.com/course/machine-learning-engineer-nanodegree%E2%80%94nd009t)提供的学位。

你还可以通过在真实数据上(如Kaggle)进行实践来获得实践经验。加入当地组织,向该领域的其他人学习也会有所帮助。

编译出品

文章来源: https://www.toutiao.com/group/6659958065585979917/