机器学习工程师:神话与现实
已发表: 2018-05-08机器学习为计算机提供了学习和迭代地更好地完成任务的能力。 它专注于开发动态算法,当暴露于一组新数据时可以改变(修改)自身。 简单来说,机器学习让 Facebook 变得“你想在这张照片中标记你的朋友吗?” ,每次上传合影。 在幕后工作以实现这一切的人被谦虚地称为机器学习工程师。
现在,与数据科学大范围内的所有其他领域一样,机器学习也对它有很多误解。 清除它们正是我们今天的目标。 但是,至关重要的是,我们首先要带您了解机器学习工程师的生活,包括他们拥有的技能和工具。
首先,让我们首先明确区分机器学习和数据科学。
目录
机器学习工程师是数据科学家吗?
数据科学是一个包罗万象的术语,但机器学习的工作方式有一些根本不同。 数据科学和分析师本质上是探索数据并尝试找到适合其业务需求的方法或模型。
另一方面,机器学习完全改变了这种模式。 机器学习工程师不直接处理数据。 他们知道他们想要的结果,但让算法为他们完成工作。 机器学习构建了一台可以击败围棋冠军、标记照片或在语言之间进行翻译的机器。 与数据分析不同,这些目标不是通过仔细探索数据来实现的。 有很多数据要探索,而且要处理的维度太多(例如,围棋游戏的维度是多少?或者,一种语言?)机器学习的承诺是它自己构建模型:它进行数据探索和调音。
数据科学、机器学习和大数据之间的区别!
因此,机器学习工程师不会像数据科学家或分析师那样“探索”——至少不是真正意义上的。 他们的目标不是在他们的数据中找到意义——他们相信意义已经存在。 相反,他们的目标是建立一个可以分析数据并产生结果的模型/算法/机器/系统。 或者,创建一个有效的神经网络——可以对其进行调整以在任何输入数据集上产生可靠的结果。
让我们看看围绕机器学习工程师的一些关键点:
- 他们比典型的数据分析师/科学家拥有更强的软件工程技能。 机器学习工程师与负责维护生产系统的工程师一起工作。 因此,他们需要了解软件开发方法、敏捷实践和最现代的软件开发工具。 他们需要彻底了解从 Eclipse 或 IntelliJ 等 IDE 到软件部署管道组件的所有内容。
- 机器学习工程师专注于让数据产品在生产中发挥作用。 因此,他们的方法是全面的。 他们构成了任何软件开发团队的核心部分,因此知道什么是 A/B 测试。 他们不仅“理解”它,还知道如何在生产系统上执行 A/B 测试。 他们了解日志记录和安全性对任何应用程序命运的重要性。
- 在监控生产中的数据产品时,他们处于警觉之中。 尽管有许多资源可以使应用程序监控过程自动化,但机器学习的要求更进一步。 数据管道、模型、算法甚至系统可能会过时,需要重新训练。 机器学习系统很容易通过破坏为其提供数据的数据管道而被扭曲。 因此,机器学习工程师总是需要知道如何检测这些妥协。
成功的机器学习工程师的一些必要技能:
- 计算机科学和编程的基础知识
- 概率和统计
- 数据建模和评估
- 找到合适的 ML 库来使用并在需要时对其进行调整
- 软件工程和建模


误区一:机器学习工程师让系统像人类一样思考。
虽然这是一个最终的最终目标,但目前还远非事实。 简单比较一下孩子的学习过程和机器的学习过程,你会发现机器学习还处于起步阶段。 例如,婴儿不需要观察数百个人来做一些简单的事情,比如走路或吃饭。 他们设定自己的目标,感知周围的其他人,直观地创建他们的学习策略,并通过反复试验来完善它,直到他们成功。 即使没有太多的外部干预或指导,婴儿也可以成功地学习如何走路以及其他基本知识。
另一方面,机器在学习的每一步都需要监督。 此外,孩子可以毫不费力地全面有效地结合从多个感觉器官接收到的各种输入。 例如,孩子将能够在瞬间识别图片,并且还可以理解写在上面的任何文字。 但是,要教机器同样的东西,我们需要单独的复杂算法,每个算法都用于识别数据、识别噪音和理解文本。
误区二:所有数据对机器学习工程师都有用。
毫无疑问,机器学习工程师也需要数据,但并非所有数据都与机器学习相关。 他们需要涵盖系统需要处理的模式和结果的代表性数据。 数据不应包含不相关的模式,因为机器学习模型将反映那些不相关的模式并在将要使用的数据中查找它们。
您用于训练的所有数据都需要进行良好的标记,并使用与您将要向机器学习系统提出的问题相匹配的特征进行标记,这需要大量工作。 所有这些数据都需要用与您要向系统提出的问题相匹配的特征进行很好的标记。 它也应该是原始的,没有任何不一致或错误。 因此,所有数据对机器学习工程师来说都没有价值——只有相关数据才是!
密切关注下一件大事:机器学习
误区 3:机器学习工程师忽略了预先存在的知识。
许多领域的专家认为机器学习在他们的学习算法中采用了“白板”方法。 他们假设每个机器学习算法都是从零开始的——不知道预先存在的数据。 机器学习工程师更了解学习是一个需要持续监控的漫长过程。 仅仅将数据输入算法是无法模仿的。 因此,并非所有的学习算法都是从一张白纸开始的。 有些人使用数据集来完善预先存在的知识库。 归根结底,这取决于组织的业务需求。
误区四:更简单的机器学习模型总是更准确。
这符合奥卡姆剃刀法则。 但是,让我们告诉你,剃刀只说更简单的解释更可取,而不是为什么。 它们是首选,因为它们更容易理解、记住和处理。 然而,在机器学习方面,有时与数据一致的最简单假设在预测方面不如更复杂的假设准确。 一些最强大的学习算法输出的模型看起来非常复杂——有时甚至在正确拟合数据后继续添加——但这就是它们击败不那么强大的模型的方式。

从世界顶级大学在线学习 ML 课程。 获得硕士、Executive PGP 或高级证书课程以加快您的职业生涯。 由于机器学习是数据科学的一部分,是计算机科学和数学的结合,因此数学知识对于机器学习工程师来说是必须的。 您将需要线性代数、微积分、优化、概率和统计等数学概念的知识来制定和理解机器学习的算法。 更准确地说,您需要对有助于数据分析的数学运算有一个基本的了解。 但最好的部分是,您可以在学习机器学习的同时随着时间的推移学习这些基本的数学概念,并且这些概念中的大多数都比较容易掌握。 我们知道数据科学和机器学习有着千丝万缕的联系,所以机器学习的好坏取决于它所提供的数据和算法吸收数据的能力。 数据科学家需要对机器学习有基本的了解。 数据科学家从大量数据中提取有用的知识。 他们发现趋势并协助开发解决方案以实现特定业务运营的自动化。 为了准确的预测和估计,数据科学家必须掌握机器学习。 这可以帮助机器人实时做出更好的判断并采取更明智的行动,而无需人工交互。 机器学习正在改变数据挖掘和解释。 传统的统计程序已被更准确的自动化通用算法集所取代。 Python 是最常用的数据分析和机器学习语言。 大多数机器学习工程师选择 Python 来应对 NLP 挑战,R 或 Python 首选用于情感分析工作,Java 用于其他机器学习应用程序,例如安全和威胁检测。 Python 已成为数据分析、机器学习和人工智能 (AI) 的首选语言,因为其广泛的库生态系统允许机器学习专业人员轻松访问、管理、转换和分析数据。 Python 因其平台独立性、简单性和可读性而受到机器学习开发人员的欢迎。 数学对机器学习工程师来说是必须的吗?
数据科学家需要机器学习吗?
ML 工程师更喜欢哪种编码语言?