人到中年,成功转行机器学习工程师?国外小哥狂刷吴恩达LeCun,教你18个月转行
人到中年,成功转行机器学习工程师?国外小哥狂刷吴恩达LeCun,教你18个月转行
人到中年,想转行成为机器学习工程师是否可行?一位成功转行的国外工程师Max Mynter用亲身经历给出了肯定的答案。他不仅分享了自己的成功经验,还为有类似愿望的人提供了一份详尽的转行指南。
什么是机器学习工程师?
在开始之前,Mynter首先明确了机器学习工程师的定义。他认为,机器学习工程师是在组织中工作,并使用机器学习来解决业务案例的人。他们需要创建、改进产品,或让组织更高效地工作。与之不同的是,机器学习研究人员更注重在科研中开发新颖的方法,而不一定需要解决眼前的业务需求。
机器学习工程师的必备技能
机器学习工程是一个跨学科的职业,需要掌握软件工程、数据科学和数学等不同领域的技能,以及应用领域的一些知识。
软件工程
一个合格的机器学习工程师必须会写代码,但更重要的是,需要具备软件工程师的能力。原因如下:
- 机器学习需要处理大量数据,通常超出了手动处理的范围。
- 机器学习工程师的绩效是通过业务反映的,因此需要能够部署模型并将其集成到更大的产品环境中。
- 了解计算机的内部工作原理和构建定制工具的能力可以提高开发速度。
- 软件工程技能有助于更快地自动化和迭代实验过程。
OpenAI联合创始人Greg Brockman曾表示,优秀的软件工程师在学习机器学习方面具有巨大潜力。因为机器学习最终是一门计算机科学的学科,而软件工程是让计算机科学成为有效应用的方式。
数据科学
ML工程师需要具备处理数据的能力,包括处理混乱的现实世界数据记录、收集和理解数据、设计有用特征以及解释模型输出的敏感性。数据科学家的经验表明,构建优秀模型的关键在于花大量时间处理数据。
ML工程师还需要具备研究能力,能够识别相关论文并将其方法应用到自己的领域。
数学与统计学
虽然日常工作中可能不会明确使用数学知识,但了解正确的数学知识对于理解当前问题的数据、选择合适的算法至关重要。机器学习工程师需要掌握实数微积分、线性代数和概率论的基础,以及数值方法和优化理论的知识。统计知识则有助于理解特定问题的数据。
应用领域
ML工程师可以从特定领域知识中受益,这有助于他们更好地理解用例、用户和可用数据,以及处理特定类型数据和合适模型的专业知识。例如,用于文本的语言模型、用于视觉的CNN或用于时间序列的RNN。
成为机器学习工程师的途径
通常有两种途径进入机器学习工程:
- 数据科学路线:首先精通数学和数据工作,然后学习必要的软件工程技能。
- 软件工程路线:先成为一名有能力的软件工程师,然后转向学习数学、数据和机器学习技能。
对于自学者来说,软件工程路线更为推荐,因为即使具备基本的数据和机器学习技能,对公司的价值也是显著的。许多业务问题相对简单,部署简单模型就可以产生价值。
实用资源
以下是帮助你进入ML工程的结构化课程建议:
学习编码
建议从Python开始,因为其在机器学习和数据科学领域拥有强大的生态系统和丰富的资源。哈佛的CS50课程和赫尔辛基大学的《编程基础》都是很好的选择。同时,建议阅读《Dead Simple Python》等书籍以加深理解。
学习浅层机器学习
吴恩达的《机器学习专业化》课程是一个很好的起点,可以帮助你培养处理数据的技能。
学习深度学习
如果你喜欢吴恩达的教学风格,可以继续学习深度学习专业课程。如果偏好大学风格的课程,Yann LeCun在纽约大学的深度学习讲座是一个不错的选择。fast.ai和《程序员实用深度学习》一书则提供了更实用的方法。
建立领域专业知识
完成深度学习基础后,可以选择一个领域进行深入研究。Huggingface上有很多课程可以作为入门读物。
学习软件工程
Fullstackopen课程是Web开发和分布式系统的良好切入点,涵盖了许多对机器学习工程师有价值的工具和实践。
学习MLOps
fullstackdeeplearning是一个很好的资源,可以帮助你了解如何在整个生命周期中管理和设计ML产品。
时间规划
- 从零开始学习:全职投入大约需要18个月。
- 作为开发转行:如果已经是一名开发人员,大约需要6个月时间学习浅层和深层的机器学习。
- 作为数据科学家进入机器学习领域:需要额外投入时间学习软件工程能力。
总结
要成功转行成为机器学习工程师,你需要做到以下几点:
- 学习计算机科学基础知识和编程
- 掌握经典(浅层)机器学习和必要的数学知识
- 按照特定课程学习深度学习
- 学习MLOps和软件工程
- 在特定领域建立专业知识并构建作品集
祝你好运!