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

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

2025届AI校招群成立!大家快扫码加群找工作!

fef3d5c7cae5239b7eab5235a6e3133d.png

▲扫码领券,进校招群!

转载:新智元 | 编辑:Aeneas

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

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

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

7db3e7949b0a85a2d428ea15434d9901.png

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

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

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

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

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

什么是机器学习工程师?

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

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

4558db4730a81b7e082ff4b3b9ed3509.png

765ff2f8234fbd288a98cf7a59cd3531.png

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

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

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

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

软件工程

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

939fbe2049e0270aa49765511b2ef482.png

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

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

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

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

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

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

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

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

33833bd3f44ad013c7913cebc202fc7d.png

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

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

数据科学

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

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

af213aaa1f14555f3d67a29eb5f64571.png

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

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

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

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

数学与统计学

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

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

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

2ab10e0439132a5e86f8469a7bd22101.png

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

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

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

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

应用领域

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

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

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

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

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

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

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

4a498157bae8eec77f336edde0408a40.png

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

f909ce445a07a28823033a735c18c5ab.png

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

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

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

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

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

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

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

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

实用资源

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

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

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

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

学习编码

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

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

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

6aa60168c370af958b7f2e009a2b9ce8.png

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

45f74d87d7f263f56ae2e06772ecd791.png

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

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

78b39dec708d9d3da072e52f8052fe41.png

学习浅层机器学习

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

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

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

8aa3b6afa2b9ab7d926f586fd49f294e.png

学习深度学习

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

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

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

b8f3ec98ced63c35ba1a8cc39f40b77f.png

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

575430f1d5f33bc01212700f6b510402.png

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

b770a6d8f313283e9542b7360b613050.png

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

885c3e2ab1e1155de6ef4361dfe0fe45.png

建立领域专业知识

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

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

7f6e18f93913ddf9bd51351be0df4a0d.png

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

如果想要开始做项目呢?

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

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

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

b4fe7130141b38fada91fabd6df325aa.png

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

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

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

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

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

学习软件工程

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

f069b69febd5300e7e166dd64bef5118.png

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

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

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

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

学习MLOps

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

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

e0d77650251ffcf160e6113dae307093.png

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

结束语

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

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

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

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

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

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

0cc7499e246574b1365ef3840afd5747.png

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

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

2a3484b1e3a65f4911f42b8ea628054c.png

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

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

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

359126e5cc4eb9edd7684eaf165e4c1b.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

加入AI求职群(知识星球)方式

价格:199元(每天仅4毛钱) 限时立减50!特惠仅149元!

时长:一年(从你加入的时刻算起)

加入方式:扫码下方二维码或者点击阅读原文,即可进入AI算法求职群(知识星球)

建议:进群后,推荐下载知识星球APP使用,同时也可使用小程序或者知识星球公众号进行使用,可以发帖/提问/交流/回答,并可以快速访问群里的资源。

希望这个群可以让你少走一些弯路

1fa3914473e90dadb2c4f542f2cf423c.png

何恺明在MIT授课的课件PPT下载

 
 

在CVer公众号后台回复:何恺明,即可下载本课程的所有566页课件PPT!赶紧学起来!

ECCV 2024 论文和代码下载

在CVer公众号后台回复:ECCV2024,即可下载ECCV 2024论文和代码开源的论文合集

CVPR 2024 论文和代码下载

在CVer公众号后台回复:CVPR2024,即可下载CVPR 2024论文和代码开源的论文合集

Mamba、多模态和扩散模型交流群成立

 
 
扫描下方二维码,或者添加微信号:CVer111,即可添加CVer小助手微信,便可申请加入CVer-Mamba、多模态学习或者扩散模型微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF、3DGS、Mamba等。
一定要备注:研究方向+地点+学校/公司+昵称(如Mamba、多模态学习或者扩散模型+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

 
 
▲扫码或加微信号: CVer111,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集上万人!

▲扫码加入星球学习
 
 
▲点击上方卡片,关注CVer公众号
整理不易,请赞和在看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值