本文作者阿萨姆,原载于知乎专栏,AI科技大本营经授权转载。

这是来自知乎圆桌的一个回答。

机器学习工程师,绝不是一个笼统的概念,每一个特定的位置,对“合格”的考量完全不同。你自认为是一个合格的机器学习工程师吗?究竟什么才算得上“合格”?以下内容供参考,当然,你最好有自己的想法。

这是个开放问题,不同公司、岗位、方向的机器学习工程师工作内容大不相同,很难用统一的标准衡量。既然无法放到一个维度来对比,那我们就来分类讨论一下。但不管如何分类,一个合格的机器学习工程师需要有过硬的基本功和整合知识的能力。

1. 大公司和中小型公司有「不同的岗位定位」

大公司对于岗位的细分程度较高,希望员工的单项技能掌握程度高,喜欢专精型人才。

这种职位的设定哲学是因为大公司的需求是稳定,希望每个人都是“可替换的”,不希望你参与项目的过多环节而导致尾大不掉。当你离开后只需要找一个有类似技能的人替代,就像替换一个机器上的小零件,而不影响到全局。因此,大公司更倾向于培养在少数方向上有深入理解的人。这也解释了为什么大公司的岗位非常繁杂,随便列举常见的几个和人工智能相关的职位:

  • 机器视觉工程师

  • 数据工程师

  • 算法工程师/研究员

  • 深度学习算法工程师

  • 无人车工程师

  • 数据分析师/科学家

  • 自然语言工程师

这些岗位间之间有很多重叠的部分,比如机器视觉工程师和无人车工程师可以有很多相似的工作内容。这种专精岗位一般要求你在特定方向出类拔萃,可以适当放宽其他要求。比如可能要求你深入理解机器视觉,但不要求你精通Spark或者自然语言处理。

而中小型公司因为资金和能力的限制,更需要通用型人才,职位一般也分得没那么细。正所谓“我是革命一块砖,哪里需要往哪搬”。在中小型企业,公司希望机器学习工程师可以独挑大梁,完成从数据收集、清理、建模、调整、到部署上线,甚至维护和更新的一系列工作。因此在大部分中小型公司的机器学习工程师也做了全栈的工作,捎带着把网站做了的也不是没有...

用一张图来描述大公司和小公司对于人才需求的不同。

2. 机器学习工程师的通用技能

虽然公司有大小之分,但我们对于机器学习工程师也有基本的技能要求。这些基本要求不过分强调深度,但追求广度,是一个“合格”工程师应该掌握的。简单概括包括:

2.1. 业务能力:

  • 理解问题的痛点,明白如何用机器学习方法看待商业问题

  • 懂得数据需求,能收集重要的数据和必备的信息

  • 具备从模型中攫取价值的能力,明白模型的最终目的是产生商业价值

2.2. 数据能力:

  • 数据整合能力:能够将不同渠道的数据整合(数据库、excel、JSON等),合并、去重等

  • 数据处理能力:缺失值处理(发现与补全)、数据格式转换、数据压缩、过采样欠采样等

  • 数据可视化:能够使用基本的数据可视化工具来分析数据,不管是R的ggplot2还是Python的Matlibplot,或者tableau和Qlik

2.3. 模型与算法理解

  • 理解基本的机器学习算法,明白不同场景下的经典解决方案,不迷信算法。比如小数据集的简单问题用线性模型就够了

  • 具备基本的统计概率知识,知道如何避免数据中的陷阱

  • 理解经典模型的基本调参,可以解释分析模型的输出结果

2.4. 编程能力

  • 熟练操作如Python,R等语言,知道特定算法的工具包如Sklearn

  • 熟练不同语言下的数据结构,知道如何可以高效的处理数据如pandas

  • *懂得分布式运算会有所帮助,明白如何在线上部署机器学习模型也是亮点

3. 整合为王 - 1+1 > 2

虽然在第二部分中介绍的每一个技能似乎都不复杂,但机器学习工程师的精髓就在于整合,掌握以上所有的操作。当你可以把一系列技能掌握时,你一个人就是一支军队。给出一个简单例子以供参考,比如你在一家互联网公司想做一个信用卡欺诈预测模型,希望可以实时检测信用卡盗刷。基本的流程:

  • 了解可使用的数据范围。比如你们有客户的基本信息,消费的信息(地点、时间、金额),消费场所的信息(是否是欺诈高发行业)。

  • 收集和整合一切可用的历史信息,对数据进行必要的清洗。

  • 使用可视化技术对数据进行初步分析。可视化可以在建模前帮助你节省大量的时间。

  • 考虑要使用的模型和建模。以这个问题为例,如果我们把盗刷考虑为独立事件,那么可以简单的用普通分类器,如逻辑回归先建个模型试试。我们也可以把盗刷考虑为在时间轴上的事件,即你的消费历史会影响盗刷的可能性,那么就要考虑时间序列的上的相关性,可以使用循环网络或者把时间作为一个输入用于建模。

  • 对模型进行回测和验证。在正式交付上线之前还需要进行大量的验证、微调、和性能优化。如果模型A需要3分钟做出预测准确率为99%,而B模型只需要3秒但准确率是98%,可能我们会选择模型B。

  • 将预测模型部署上线,并进行后期维护。随着收集到了新的数据,对模型进行线下更新训练并替换线上的模型。

不难看出,这一套流程中处处都要求极好的工程能力。一个人很容易可以拥有其中一部分技能,但很难同时掌握所有的技能。这解释了为什么高端的机器学习工程师“洛阳纸贵”,这也是检测你是否合格的一个标准。

4. 职业选择 - 大公司 vs. 小公司

那么做机器学习该选择大公司还是小公司呢?这个取决于两点:

  • 如果没有特别厉害的履历,建议从中小型公司做起,积累经验。

  • 如果不打算专精一个小领域,中小型公司可以帮助你快速了解整个流程。

小公司的风险在于有没有“厉害的老师傅”可以带你做这一套流程,这个可遇不可求。但可以在面试的时候了解到公司的技术实力,要求和带你的师傅直接沟通。对于初入职场的人来说,有试错的本钱,小公司也是不错的选项。知乎上一直有种浮躁的风气,非Google微软不去,BAT才勉强能接受。

而大公司的风险在于你的技能可能会局限在一个方向上,如果你不能成为领域专家,那么会进退两难。真相是,大部分人都不会成为领域专家。很久以前我还是一个C语言工程师的时候的产品是一款3D建模软件,我的入门老师傅已经在这个这个软件的透视功能上花了10年时间,常年维护几个C文件。今年年初他告诉我公司合并后他被裁员了,现在正在求职很不容易,不免唏嘘。他就是被公司“锁死”在了一个小方向上,当公司不再需要他时,市场上没有他的一席之地。

因此,计算机领域的知识更新迭代很快,不管你在大公司还是小公司,都不要贪图安逸的生活,被温水煮熟的青蛙太多了。不过,求职更像是买彩票,随机性很强,所以随缘即可。

5. 写在最后

最后以我一贯的观点作为结尾,不要迷信算法,不要相信有某种算法可以包打天下。时间也要花到那些看似不重要的环节上,比如清理数据的技巧。对于机器学习工程师这个岗位来说,过硬的综合能力更是关键,这是合格工程师的必备技能。所以我建议先培养对整个数据的操作流程的理解,再逐渐寻找适合自己的专精方向。

比如你的工作中接触了很多自然语言处理,可能慢慢的你就会在这个方向懂得越来越多,成为偏NLP的算法工程师。就像游戏中的加点,你要先把基础技能加满,再加高级技能。

图片来源: Stupid Question 218: What are T-shaped, Pi-shaped and Comb-shaped skills, and which one should I aim for?(http://t.cn/ROC0EOt)

从人力资源管理角度来看,机器学习工程师的技能像是上图中的一个进化过程(从左至右):

  • T字形人才:有很好知识基础(T的上面一横)以及特定领域的深度(T的那一竖)。

  • Pi型技能人才:随着能力加深,T字型人才可以有更多的专精技能(两个竖道)。

  • 梳子型技能:很好理解,你最终会期待进化成一个有很多专精技能的高端人才。

所以,先掌握通用技能,再培养专精技能是一个适合我们普通人的升级路线。推荐阅读我的回答和文章[1,2,3,4]了解如何培养通用技能。不要期望一天就可以掌握所有技能,然后升职加薪走上人生巅峰。残酷的是,我们大部分人这辈子甚至都不会成为T字形人才,能帮我们养家糊口的还是通用技能。

但只要你一直默默砥砺前行,相信我,时间时间会给你答案[5]。

推荐阅读

[1] 阿萨姆:面试官如何判断面试者的机器学习水平?

https://www.zhihu.com/question/62482926/answer/210531386

[2] 如何用3个月零基础入门机器学习?

https://zhuanlan.zhihu.com/p/29704017

[3] 阿萨姆:数据科学工作者(Data Scientist) 的日常工作内容包括什么?

https://www.zhihu.com/question/22696468/answer/212250226

[4] 阿萨姆:计算机专业学生在大学四年内可以做些什么来丰富简历?

https://www.zhihu.com/question/64244262/answer/218292148

[5] 我的滑板鞋(约瑟翰·庞麦郎演唱歌曲)_百度百科

https://baike.baidu.com/item/我的滑板鞋/14694274

作者 | 阿萨姆 资深数据科学家

原文地址

https://www.zhihu.com/question/63881785/answer/243635446

互动

你觉得你达到以上合格的标准吗?或者你根本不认同以上标准,你有自己的一套判定逻辑?留言区请发表你的看法。

热门关键词

吴喜之 | 杨强 | 周志华 | 图灵奖得主姚期智 | 今日头条李磊 | 蚂蚁金服漆远 | 犀牛科技创始人陈一昕 | eBay数据科学家李睿 | 迅雷创始人程浩 | 亚马逊AI主任科学家李沐 | 日本机器学习领军人杉山将|商汤科技联合创始人杨帆

☞ 点赞和分享是一种积极的学习态度

所以,你自认为是一个合格的机器学习工程师?相关推荐

  1. 我要做一个合格的网络工程师

    我对网络有着极其浓厚的兴趣,无奈生在一个小城市,没有什么机会参加什么正规的培训,自己的基础也很差,可是我决定通过自学参加全国的网络认证考试,做一个合格的网络工程师,而不是一个随处可见的垃圾网络管理员! ...

  2. 如何成为一个合格的算法工程师?这对你来说也许并不是很困难

    基础 算法.数据结构 这俩是基础中的基础,作为一个合格的算法工程师,你可以写不出来红黑树,也可以不懂网络流,但是最基础的排序.递归.动态规划.树.堆栈.队列等算法和数据结构是一定要会的,并且还需要有一 ...

  3. 如何成为当下一个合格的算法工程师

    如何成为当下一个合格的算法工程师 知乎上看了SimonS大神的一个live做了一些笔记 一,Q&A部分: 1.一个特征分析的例子...(听不懂) 2. 还是一个机器学习的例子,(听不懂)大致, ...

  4. 软件性能测试需要什么资格,一个合格的性能测试工程师需要掌握哪些技能

    问题描述:性能测试工程师究竟需要掌握哪些技能才称得上一个合格的性能测试工程师? 精彩答案: 会员 裸奔的蜗牛: 1.能搭建一个稳定.可重复的测试环境,能够保证测试结果的正确:保证达到测试执行的技术需求 ...

  5. 对不起,我骗了你,我不是一个合格的前端工程师

    我是一个梅州人,在深圳上班,从上图可以看出我是一个大专生,其实不是的,我欺骗了大家,我是06年高中毕业,因为读书偷懒,并没有考上一个好的大学,结果阴差阳错的跑去茂名读了一个中专,读中专的时候并没有好好 ...

  6. 如何成为一个合格的硬件工程师,如何学习硬件设计?

    如何成为一个合格的硬件工程师,如何学习硬件设计? 现在很多准备毕业的大学生或是毕业刚出来没多久的大学生,会发现自己从事的岗位所用的知识跟自己在学校学的东西很多都搭不上,在学校各种专业课各种优秀,但是到 ...

  7. 一名合格的机器学习工程师需要具备的5项基本技能,你都get了吗?

    目录 前言 计算机科学基础和编程 概率论和数理统计 数据建模及评估 应用机器学习算法和库 软件工程和系统设计 机器学技术的发展展望 参考文献 转自Arpan Chakraborty 前言 你是否对机器 ...

  8. python工程师证书-【一个合格的Python工程师需要达到怎样的编程水平】

    如何才算精通Python?在Python学习中,我们都有哪些误区?相信你看完这篇文章都会得到解答. 如果不能,我希望这篇回答能让你意识到自己Python知识还存在哪些不足,在之后的学习中,从哪些方面去 ...

  9. 学习web前端,合理的学习路线,如何成为一个合格的前端工程师

    学习前端,首先应该列举出整个前端的知识图谱,然后制定一个合理的学习线路图,逐个击破,只要保持学习的热情和持之以恒,肯定能成为一位合格的前端工程师.前端算是目前互联网研发岗中门槛相对较低的,只要具备完整 ...

最新文章

  1. 新手零基础学习Python第一步,搭建开发环境!
  2. Android React Native 笔记(二):Component生命周期
  3. Docker将在存储上崭露头角?
  4. PHP笔记-PHP中构造函数要注意的地方
  5. datagridview使用mysql_使用DataGridView进行增删改查,并同步到数据库
  6. java renderer_Java TableCellRenderer显示奇怪的行为
  7. 221. Maximal Square
  8. 孙玄:微服务架构何去何从?
  9. python入门之后须掌握的知识点(excel文件处理+邮件发送+实战:批量化发工资条)【二】
  10. 普法Android.mk中的一些宏和Android.bp对应关系
  11. el-table中的表格的相同项合并(单元格合并),包含多层合并
  12. 如何让Join跑的更快?(文末送书)
  13. 使用MTS加快mysql奔溃后binlog恢复
  14. Latex的使用(Ctex+TeXstudio)
  15. RCTF2019web题目复现之rblog和ez4cr
  16. mysql 启动 pid update_MySql服务器启动错误“服务器退出而不更新PID文件”
  17. 【ReentrantLock】
  18. 移动端APP渲染原理
  19. 虚拟主机环境WinWebMail邮件系统的常见问题处理
  20. 操作系统概论知识总结

热门文章

  1. word中用EndNote引用文献,之后再打开插入新文献,格式显示错误的问题
  2. 用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本
  3. 事件流--事件冒泡现象及阻止
  4. 反射 -- 通过字符串操作对象中的成员
  5. oracle rman异机恢复
  6. 对象模型创建SharePoint2010多选字段SPFieldMultiChoice
  7. (转)互斥对象锁和临界区锁性能比较 .
  8. Java 线程 笔记(1)
  9. 技术图文:进一步完善自动化交易系统 - 04
  10. vibe前景提取算法示例代码