人到中年,成功转行机器学习工程师?国外小哥狂刷吴恩达LeCun,教你18个月转行...

ff4de51437b5d5e32d818e5279ebeacd.jpeg


  新智元报道 

编辑:Aeneas

【导读】人到中年,想半路出家转行成机器学习工程师,可行吗?最近,这位成功转行的国外小哥用一篇干货满满的硬核博客告诉我们:完全可以!

转行成为一名机器学习工程师,可行吗?

国外一位成功转行的Max Mynter告诉我们——完全可以!

5d11b05c3f65c5f3dfd99cb0e434d888.png

收到了多条X私信后,他决定把自己的成功经验写下来。

他强调说:我不是Karpathy,但我可以算一名扎实的中级机器学习工程师。

他是通过刻意的努力,才成为一名工程师的。而且,就是在最近,他刚刚从业余爱好者转成了一名专业人士。

863f2842ad78e27794d383503d023653.png以前,Mynter从事的是社会学和物理学

因此,他写下来这篇博文,希望为有类似愿望的人们提供可行的路线图和资源,从而为职业生涯奠定基础。

什么是机器学习工程师?

在开始,Mynter给我们提了一个问题:什么是机器学习工程师?

因为机器学习以及相关职位名称及其混乱,Mynter特意和人合写了一份34页的白皮书。

74d91d817d9582022457e9da3f768213.png

73dfe69498160cfe7727b40de127e4e3.png

在指南中,机器学习工程师指的是在组织中工作,并使用机器学习来解决业务案例的人,这就意味着创建、改进产品,或让组织更高效地工作。

注意,机器学习研究人员与之不同。他们强调的是在科研中开发新颖的方法,但并不需要解决眼前的业务需求。

机器学习工程师的必备技能

机器学习工程是一个跨学科的职业,我们需要掌握软件工程、数据科学和数学等不同领域的技能,以及应用领域的一些知识。

软件工程

当然,一个合格的机器学习工程师必须会写代码,但最重要的是,你需要是一位有能力的软件工程师。原因如下——

38fe12379f6465aa63ddd8c3a5352d04.png

首先,由于机器学习是在数据中发现模式,因此机器学习工程师必须能够处理足够数量的数据。通常这意味着数据量超出了手动处理的量。

其次,由于机器学习工程师的绩效是通过业务反映的,因此这个岗位就需要能部署模型,并且将其集成到更大的产品环境中。

可以说,如果没有为用户提供任服务,那一个工程师的工作就是失败的。

最后,如果了解计算机的内部工作原理,以及构建定制工具的能力,你的开发速度就会大大提高。

直觉和专业知识确实可以极大地帮助你设计模型,但在实验过程中构建机器学习模型,始终是必要的。

在这个过程中,机器学习工程师需要尝试大量有根据的猜测,并且探究怎样会让效果更好。

这个过程迭代得越快,最终的输出就越好。而软件工程技能有助于更快地自动化和迭代,并且使得各个实验更加高效。

作者还援引了OpenAI联创Greg Brockman的观点。

f08e8daccfd97839e06bbff7c1734115.png

Brockman曾表示:学习机器学习其实比学习软件快得多,优秀的软件工程师潜力巨大

可以说,机器学习最终是一门计算机科学的学科,而软件工程,就是让计算机科学成为有效应用的方式。

数据科学

由于ML是从数据中学习模式,因此ML工程师需要具备处理数据的能力。

他们需要能够处理混乱的现实世界数据记录,知道如何收集、理解这些数据,还要能设计出有用的特征,并且解释模型输出的敏感性。

39ea08864ada80ae78e62459d5812f02.png

最棘手的错误并不是内存不足,而是当训练循环运行后,模型输出了看似正确但其实是错误的结果时。

数据科学家一次又一次地尝到惨痛的教训:想要构建一个优秀的模型,最优秀的方法就是花大量时间处理数据。

ML工程师还需要的一个技能就是做研究。

你需要识别与你手头问题相关的论文,并且能够复刻这些方法,应用到自己的领域。

数学与统计学

机器学习工程师需要掌握什么样的数学技能?这个问题很难量化。

在大多数情况下,你在日常中不会明确地需要用到它们。

然而它总是隐性地被需要。

633a92b4e1b2a3f7d3481dee378f5cb5.png

因为了解正确的数学知识,对于理解当前问题的数据、选择合适的算法来说至关重要。

为此,机器学习工程师需要具备实数微积分、线性代数和概率论的基础。这些是用于构建和训练许多机器学习模型的核心数学理论。

而在训练LLM或处理大型数据集时,你会从数值方法和优化理论的知识中受益。

最后,为了理解特定问题的数据,你还需要掌握统计知识。

应用领域

虽然ML更像是一个通用工具箱,但ML工程师却可以从特定领域知识中受益匪浅。

一方面,它们会帮你更了解你的用例、用户和可用数据。

另一方面,他们发展了处理特定类型数据和合适模型的专业知识。

例如,用于文本的语言模型、用于视觉的CNN或用于时间序列的RNN。

成为机器学习工程师,有哪些途径

通常,进入机器学习工程有两种途径——

  1. 数据科学路线。首先,你需要精通数学和数据工作,开始使用机器学习,然后学习必要的软件工程技能。

c25e29f563b571f01949cb4d88ee2a98.png

  1. 软件工程路线。当你成为一名有能力的软件工程师,可以在职业生涯的某个时候转向学习数学、数据和机器学习技能。

32fcfbef2f8ada5e8543edb843dc08d9.png

在作者看来,对于自学者来说,2是更好的路线。

这是因为,即使拥有基本的数据和机器学习技能,你对公司也是有用的。

许多业务问题相对简单,只要部署简单模型,就已经可以产生价值,而困在Jupyter笔记本中的出色模型,只是一个玩具而已(尽管非常有趣)。

当然,这并不意味着你可以放弃数学了——永远不要保平庸!

如果你碰巧在大学攻读定量学位,那在默认情况下,你上的课会或多或少遵循路线1。

在这种情况下,请在上学期间或学期结束后,花一些时间来学习软件工程知识。

学习计算机科学并专门研究机器学习,同时进行大量实习,以学习行业级的协作开发,这两条路可以同时进行。

对于路线1,这可能是最佳选择。

实用资源

以下是一系列帮助你进入ML工程的结构化课程。

它们更多是为你提供相关技能的建议,而不是明确的课程。

你可以随时进行切换,使用你更喜欢的资源,或者通过直接做项目来掌握所需技能。

你肯定最清楚如何最有效地学习。涵盖本路线图的内容,比如何涵盖它更重要。

学习编码

上述两条路线的基础,都是学习编程,使用计算机。

由于Python的机器学习和数据科学生态系统最为强大,且拥有最多的可用资源,因此是一个安全的选择。

哈佛的CS50课程,涵盖了Python的基础知识,对编程和软件工程做了精彩的介绍。

3bceaff8a141e774b088bb7c32cc1be2.png

如果想更深入了解一下,可以去看赫尔辛基大学的《编程基础》。对于已经学过CS50的人,可以浏览一下前几章。

fd812e9e2a35eba9c8690e4d8be40643.png

虽然你并不需要了解Python的内部工作原理,就可以将其用于数据科学和机器学习,但这些东西在以后会非常有用。

请将《Dead Simple Python》之类的书放在床头柜上,并时不时地阅读一章。

a969bd423cb3c5b703fb107863a4d1e4.png

学习浅层机器学习

学会了编码,你就可以开始学习机器学习了。

你应该从浅层的学习算法开始。它们比神经网络更直观,你可以藉此培养处理数据的技能,无需增加复杂性。

吴恩达的《机器学习专业化》是一个很好的资源,它一直是许多人进入AI的门户。

b7fb9294a0224b9797db0f2509a96122.png

学习深度学习

了解了ML的基础知识后,接下来你就可以转向深度学习、当前的行业标准和强大的工具箱。

如果你喜欢吴恩达的教学风格,就可以继续学习深度学习专业课程。

如果你喜欢更具大学风格的课程,我推荐Yann LeCun在纽约大学的深度学习讲座。

d672afa8b985fa083b1b07ef0a33ac62.png

如果你需要更实用的方法,fast.ai和随附的《程序员实用深度学习》一书可以帮你。

722727dee90036962cd09b6bebb4460e.png

这些资源还涵盖了一些必要的数学知识。如果你发现自己的知识缺乏,deeplearning.ai有深度学习数学课程。

e724208e9a14b2d9c7f9f1340c730fcc.png

这本书让我受益匪浅。它的章节和实际示例既可以用作教学,也可以作为参考。

8042893cd171c3d2ddc9d3b7c0281229.png

建立领域专业知识

一旦掌握了深度学习的基础,就该选择一个领域进行深入研究了。

如果你还不确定选择哪个领域,Huggingface上就有大量课程。

2bc426ece584a56b2d3e3a728bd43166.png

这些课程本身当然不够,但它们是很好的入门读物,可以为您提供研究出论文的基础、背景和词汇,并为你可以构建的项目提出想法。

如果想要开始做项目呢?

软件、编码、机器学习——对于所有这些项目,一些理论知识都是必要的,但工程其实是一种实践,你可以通过实践来学习。

如果你已经完成了课程练习,构建了一些项目,就可以做一些更具野心的事情。

通过建立作品集,你可以更自由地探索自己的兴趣,由新手升级为专家。

354e653215b6c69fa39e942821410f75.png

一般来说,拥有一个或几个令人印象深刻、架构良好、值得花费一个月时间的创新性项目,比拥有许多基本项目要更好。

而且,它会让你学到更多。

想要申请成功,让这些项目变得切实可行就变得非常重要。

你可能需要写一篇博客或推文,来介绍自己的学习成果。

但你能做的最令人印象深刻的事,就是构建一个前端,以便其他人可以尝试。

学习软件工程

Fullstackopen课程是Web开发和分布式系统的很好的切入点。

192ed14874d70bb4c96ee0bc17e66984.png

它不涉及机器学习,但涵盖了许多工具和实践,它们对于机器学习工程师来说非常有价值,例如构建分布式系统、数据库和容器化。

通过这些知识,你就可以部署模型,为用户提供界面。

本课程使用的是JavaScript,因为它是网络语言。

虽然这一开始可能令人畏惧,但竟然你已经走了这么长一段路,此时硬着头皮给自己的工具包添加另一种语言,也是值得的。

学习MLOps

还有特定于ML的软件工程和开发实践 (MLOps)。

要了解如何在整个生命周期中管理和设计ML产品,fullstackdeeplearning 是一个很好的资源,可以让你了解一个大概。

681d66d9ed7a28b5ca430935252dd6a2.png

选择让你的ML工程师生活更轻松的实践,应用到你的项目中,这些努力都是值得的。

结束语

作者表示,如果你遵循本指南,一定可以成为入门级ML工程职位有竞争力的候选人。

因为你既掌握了必要的理论知识,做过的项目也使你成为了几个重点领域的专家。

然而,要成功找到工作,拥有技能只是做到了一半。

你还需要与人交流,展示你的技能。

你可以通过选择实习获得良好的推荐,或者留下来,另外还可以试着获得投资。

FreeCodeCamp的创始人Quincy Larson,就写了一本很棒的书,关于他成为软件工程师的旅程。

6507af0fad39bf58047a6550eaa62acd.png

尽管他的目标角色略有不同,但这些经历会非常适合你前半段的旅程。

FreeCodeCamp播客上有这本书前100集的有声读物,比如在Spotify上。

ebda798e5e4e5c6b8e24c7cec2528f0c.png

需要注意的是:路线图看起来很简单,但实践起来并不容易。

学习机器学习和软件工程很困难,但这不是巫术。

其他人在你之前就已经做到了,如果你下决心,就可以做到(这里有另一篇文章,指导你如何有效地学习困难的东西)。

9b1890fe4e4b5dffcc30225d6ed5677c.png

为了给您一个粗略的了解,这是我预计需要多长时间,具体取决于您的起点。

从零开始学习

如果您全职致力于此路线图,预计需要大约18月的时间,从0开始学习所有内容。

如果你可以上大学,这是最简单的途径。大学可以为你提供所需的社区、指导、课程、实习资源。

如果你想从不相干的行业转行,请一定要利用起之前的经验。即使想要离开,你的专业知识也会让你与众不同。

作为开发转行

如果你已经是一名开发人员,你将很快变得有价值。

下班后,你可以花大约六个月的时间,学习浅层和深层的机器学习,以及你缺乏的数学知识。

你此前的软件工程经验非常有价值,会受到雇主的高度重视。

甚至你会更加幸运,不需要做出任何牺牲。

一旦转行成功,你就可以在工作中学习,并获得报酬。

作为数据科学家进入机器学习领域

如果你是一名数据科学家,你大概率迟早会因为缺乏软件工程能力,而触到职业天花板。

作者直言:自己就是如此。

对于数据科学领域的从业者来说,转向机器学习或多或少是一种自然的职业发展轨道。

如果投入额外的时间来学习,就可以加速你的职业生涯。

你可以在当前的工作资源中寻找ML项目,花几个月时间来完成它们,然后构建一个组合,来让自己转型。

概括

总的来说,你需要做到以下这些事——

  1. 学习计算机科学基础知识以及编程,通过CS50课程和专用Python资源

  2. 学习经典(浅层)的机器学习,为数据工作奠定基础,培养直觉

2.1) 建立微积分、线性代数和概率论的数学基础(数值和优化会更加分)

  1. 按照特定课程学习深度学习,例如Yann LeCun的NYU讲座、fast.ai或deeplearning.ai的深度学习专业课程

  1. 从fullstackdeeplearning中学习MLOps

4.1) 如果有必要,可以通过fullstackopen来学习软件工程,比如学习Web开发以及分布式系统、DevOps和关系数据库的基础知识

  1. 寻找您想要从事的领域,通过建立你的作品集来发展专业知识。你可以从Hugginface课程中找到一个起点,跟随你感兴趣的兔子洞,通过论文实现构建一些有趣的项目。

做完这些,你就可以去投简历了。

祝你好运!

参考资料:

https://www.maxmynter.com/pages/blog/become-mle

 
 
 
 

601ccfeb7c7a499377c87e25ca22dbf3.jpeg

 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961)

4397b091370f40645a57c0870833fda6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值