18 岁时,我找到了自己梦想的机器学习工程师工作,许多人认为这个职位竞争非常激烈,并且是为拥有多年经验的专业人士保留的。旅程并不轻松。您可以在题为“我作为自学成才的程序员的旅程”的系列文章中了解我的旅程。

如果您有兴趣成为一名机器学习工程师但不知道从哪里开始,那么您来对地方了。在本文中,我将分享成为机器学习工程师的完整路线图🚀。该路线图是通过与多位自学的机器学习工程师👩🏽💻👨💻的广泛研究和讨论制定的。

无论您是初学者还是有一定经验,本指南都将帮助您朝着职业目标迈出下一步🎓。

本文摘自我的 机器学习工程路线图 GitHub 中的存储库。

端到端机器学习🤖

图 1:机器学习项目生命周期

机器学习不仅仅是使用一些公开可用的干净数据构建模型。构建机器学习产品需要多个步骤。图 1 显示了构建可能产生影响的机器学习产品所需的端到端步骤。我有一个专门的文章系列,详细介绍了上图中显示的每个步骤。

我会将资源划分为不同的学习层次,也会提供学习每个主题的最佳资源。学习的层次是:

  1. 准备学习数据科学 📊
  2. 核心数据科学基础知识 📈
  3. 机器学习工程 🤖

1. 准备学习数据科学📊

应用数学🔢

应用数学是线性代数、统计学、概率论和微积分的组合。有很多人认为,要想进入数据科学领域,你需要精通数学。除非您想成为一名机器学习研究员,否则上述主题的基础知识就足够了。如果你很好地掌握了高中数学,那就没问题了。你总是可以去研究生院成为一名机器学习研究员,或者在找到工作后开始学习复杂的数学。

尽管如此,下面我会提到伦敦帝国理工学院在 Coursera 上提供的一些关于线性代数和微积分的优秀资源。他们的视频可在 YouTube 上公开观看。对于统计和概率,我对 MIT OpenCourseWare 🎓 的课程有一些很好的推荐。

线性代数:机器学习数学:线性代数 (Coursera)、(YouTube)

统计数据: MIT 18.650 应用程序统计 (YouTube)

可能性: MIT 6.041SC 概率系统分析和应用概率 (YouTube)

结石:机器学习数学:多元微积分 (Coursera)、(YouTube)

编程语言💻

决定语言:

编程语言是机器学习 (ML) 工程师、数据科学家和研究人员开发和部署 ML 模型的重要工具。机器学习需要能够处理大型数据集、执行复杂计算以及与强大的库和框架集成的编程语言。编程语言的选择对于机器学习项目至关重要,因为它会影响开发时间、模型性能和可扩展性。

在选择机器学习编程语言时,需要考虑几个标准:

  • 学习曲线:学习语言的容易程度,
  • 社区:拥有大型活跃社区的语言意味着可以在线获得更多资源、工具和支持,
  • 库和框架:机器学习项目每个步骤的现有库(如图 1 所示),
  • 行业需求: 你应该考虑不同语言的行业需求,
  • 表现:处理大型数据集时,性能是需要考虑的关键因素。

Python 和 R 是最流行的机器学习语言。其他编程语言包括 Julia、Java 和 C++。让我们根据上面讨论的标准来比较它们:

基于不同标准的语言比较

如果你想成为一名具备机器学习技能的软件工程师,那就选择 Python——你甚至不需要三思而后行。另一方面,如果你想成为一名数据科学家,你可以选择 Python 或 R。但请记住,如果你想转型,Python 将为你的职业生涯提供灵活性。就个人而言,我向您推荐 python 🐍。

🐍 Python 初学者:

Programiz 为各个级别的 Python 开发人员创建了丰富的资源。他们的课程是视频和文字资源的结合,受到了很多人的好评。

面向对象编程对于机器学习工程非常重要。它将帮助您使用和理解 pytorch、transformers 等框架。不过不用担心这个🎥 面向对象编程(OOP)Python YouTube 上的课程已满足您的需求。

🔗 以下是额外资源,以防上述资源不符合您的口味:

注意:面试官喜欢问数据结构和算法方面的问题(主要针对实习生以外的角色)。我在这里没有提到他们的资源。但您可以在完成此处提到的所有步骤后重新访问它们。一开始不要太强调。

恭喜,您完成了旅程的第一步🎉。

2. 核心数据科学基础知识📈

数据收集与探索 🔍

数据收集和数据探索是核心数据科学基础,如机器学习生命周期图(图 2)所示。 Python 库 Numpy、Pandas 和 Matplotlib 将成为您核心数据科学的助手。

📗 用于数据分析的 Python:使用 pandas、NumPy 和 Jupyter 进行数据整理,作者:Wes Mckiney 将绰绰有余。初学者应从本书开始,因为它涵盖了基本的 Python、ipython、NumPy、Pandas 和 Matplotlib,然后是一些记录的数据分析项目和代码实现。

我见过许多人跳过学习华而不实的深度学习的核心数据科学基础知识,当他们开始致力于端到端机器学习来解决业务问题时,这导致了很多问题。因此,最好尽快学习,而不是事后后悔。其他资源:

提示:上面提到的所有库都有精美的文档。也请随意探索它们。

SQL

数据科学是对数据的全方位研究。要处理数据,我们需要从数据库中提取数据。这就是 SQL 发挥作用的地方。 SQL 是处理数据库时使用最广泛的编程语言,并受到各种关系数据库系统的支持,例如 MySQL、SQL Server 和 Oracle。数据科学家可以使用 SQL 命令控制、定义、操作、创建和查询数据库。

许多现代行业已为其产品的数据管理配备了 NoSQL 技术,但 SQL 仍然是许多商业智能工具和办公室操作的理想选择。这就是为什么它已成为许多数据库系统的标准。现代大数据系统如Hadoop、Spark也仅使用SQL来维护关系数据库系统和处理结构化数据。

我听说过关于🔗的好消息 SQL 教程 — 面向初学者的完整数据库课程 课程可在 YouTube 上观看。

其他资源:

笔记:

1. 面试官喜欢针对数据科学职位提出 SQL 问题。

2.在数据科学的初级阶段人们通常会对学习大数据工具有疑问,我个人认为,在数据科学的初级阶段没有必要学习大数据工具,但是如果你有兴趣学习它,你可以学习稍后再说。对于这个问题有不同的看法,我希望你看看这个quora答案的答案。

3. 机器学习工程 🤖

数据准备/特征工程

大多数时候,原始数据无法直接输入模型。这些原始数据需要根据模型和手头的任务来准备。无论模型是机器学习还是深度学习,数据准备都很重要。机器学习需要特征工程,而深度学习是通过神经元学习这些特征。

数据准备根据项目和数据的不同而有很大差异。所以,对Python有很好的了解会有很大帮助。您将必须根据您的要求学习不同的库(随着您从事更多项目,您的数据准备技能会提高)。我对学习数据准备和特征工程的建议如下:

机器学习

对于机器学习,我只有两个建议给你。

  • 📗 Geron Aurelien 的 Scikit-Learn 和 TensorFlow 机器学习实践(第 1 部分)

深度学习

MIT 6.S191:深度学习简介是 MIT 的持续课程。您可以在他们的网站上找到详细信息。本课程有视频讲座、代码作业和出色的项目,所有这些都将帮助您拥有良好的作品集。如果你真诚地完成整个课程,我的其他建议都不会比这个更好。

  • 📗 Geron Aurelien 的 Scikit-Learn 和 TensorFlow 机器学习实践(第 2 部分)

深度学习有不同的领域,例如强化学习(RL)、自然语言处理(NLP)和计算机视觉(CV)。上面的 MIT 课程有关于 RL 和 CV 的很好的资源,但它错过了谈论 NLP。以下是它的资源。

  • 📗 O’REILLY 的实用 NLP

注意:许多机器学习工程大学课程都是公开的。您只需要在 YouTube 中搜索它们并浏览它们的播放列表即可。

MLOP

MLOP 是模型部署、模型服务、模型监控和模型维护的组合。我花了很多功夫去了解 MLOP,因为我找不到好的资源。我最近发现了一门 MLOPs 课程,其中包含所需的一切。我分别学习了所有这些主题,但本课程的所有内容都在同一个地方。

以上课程没有视频教程。 Krish Naik 的 MLOPS 课程系列对于初学者来说是一个良好的开始。但我仍然推荐所有级别的 MadewithML 课程。

我还会推荐 Alfredo Deza 和 Noah Gift 的 📗 实用 MLOP。它是对课程的一个很好的补充,提供了可以立即在项目中实施的实用知识。 🚀

这篇文章只是一个开始

是的,你听到了。这只是众多资源的开始,这些资源将帮助您找到数据科学家或机器学习工程师的工作。请继续关注以下资源:

  • 数据科学项目,
  • 数据科学组合详细指南,
  • 数据科学简历详细指南,
  • 准备工作面试等等。

我愿意接受读者的建议。如果您希望我改进本文的某些部分,您可以发表评论、发送电子邮件或提交拉取请求。

请继续关注😀,直到下次。