点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

编辑:Amusi(CVer) |  来源:知乎

https://www.zhihu.com/question/347545092

本文仅作为学术分享,如果侵权,会删文处理

你见过最差的算法工程师能差到什么程度?

作者:Guosheng Hu
https://www.zhihu.com/question/347545092/answer/934820526

真事。

这周面试了一个候选人,面CV/DL/AI的TechLead。简历很牛逼,做过很多CV的工业项目,涵盖detection, OCR, face recognition, fire/smoke detection等好多项目. 给我们讲了45分钟做得项目,讲得很自信。我挑了一个大项目,我说你在这个项目中的贡献是什么?他说整个项目的所有算法部分都是他实现的。

OK,我开始进行深度学习的技术面。

我先问了两个深度学习的中等难度的问题,他都说不知道。有点冷场,那我赶紧问点简单的吧。我说,深度学习网络,进行分类时有哪些loss?他犹豫了一下,回答: relu.

瞬间把见过大场面的我还有同事都震住了。

作者:王喆
https://www.zhihu.com/question/347545092/answer/864222675

我们组一个年轻的印度小哥,UCSD毕业的,按说教育背景也不错,写model serving过程中的一步。每个request开20个线程计算。

我说你一个m*n复杂度的过程,m和n还都小于100,有必要开20个线程计算吗?你那线程开销绝对比并行计算收益大多了好吗。不听,给我说(大概意思):

并行计算比较cool,老老实实写那个过程太boring

行吧,不听不听吧,自己折腾去吧。

过两天给我说load test的时候server的latency翻倍,我一看线程数都超过JVM上限了能不翻倍吗。

讲这个倒不是想取笑这小哥,而是跟大家讨论一个问题,就是什么是比“技术上最差”更糟糕的情况。

如果你只是基础差,但总体上是一个严谨的人,其实到不那么麻烦,就是按部就班的学习,按部就班的积攒工程经验,无论是哪个领导还是老同事应该都是乐于帮助这样的年轻人的,因为总体来说你还是在解决问题,哪怕速度慢一点,你总归在成长,而且是让系统整体混乱程度降低的。

最差的算法工程师其实是什么呢?是自己对技术的感觉很差,但对自己的感觉挺好,试图用一些比较fancy的手段解决问题,但实质上引入了更高的系统复杂度,增加了系统潜在风险,这样的人,其实对整个团队是负能量的存在,始终需要更senior的人帮着擦屁股,这无形增加了整个团队的工作量,这就是最差的算法工程师。

我特别喜欢的一句话是:

“不带评论的观察是人类智慧的最高境界”

希望刚入行的算法同事们能够知道这句话的意义,其实公司不急于让每个人都发表意见,在自己技术能力不那么足的时候,不带评论,不带主观情绪的去学习一段时间,好好思考一下别人为什么要做出这样的技术决策,好好积攒一下自己的技术感觉,这是最重要的。相信度过最初的积累阶段之后,你能够为团队做出,为整个系统做出“熵减”的技术决策。

作者:胡津铭
https://www.zhihu.com/question/347545092/answer/1212688723

先歪个题,从反面回答一下,我碰到什么样的算法工程师会认为他/她是优秀甚至是卓越的大佬,并选择紧紧抱住大腿不松手。之前与@熊风学长还有很多来自不同公司的前辈们讨论过这个问题,本文很多观点也是来源于他们,这里也感谢大家的指点。总得来说,以下几个特点是我特别留意的,如果碰到了我就会认为这位很厉害:

  1. 基础非常扎实。问他/她一些比较经典的算法,能够很清晰地说出算法的特点、适用的场景、坑点、里面的细节等等。

  2. 工程能力很强。我是一位“工程狗”,自己的工程能力很菜,但对工程能力强的同学非常崇拜 Orz 如果碰到一位算法工程师的工程能力很强,仅凭这一点,我就认为他/她基本上一定是大佬Orz

  3. 重视代码的测试。算法岗的工作并不完全就是调参炼丹,往往也是需要去写一些代码的,例如写些spark/sql代码获得特征,写模型等等。既然是写代码,就可以而且应该在其中加上测试。实际上,根据我的经验,如果碰到某个其他地方好用的模型在自己的场景下效果很差(不reasonable得差),那很可能是数据、特征的处理代码有问题,或者模型的代码有问题。这种问题可以用单元测试(断言等)来提前发现,也可以用一些sanity check来发现。

  4. 对场景业务的认识很深刻。软件工程没有银弹,机器学习也没有银弹。用什么样的特征、什么样的预估目标、什么样的评价指标、甚至什么样的模型,这些东西都是要与场景业务结合的。换言之,工业届里,业务先于技术。很多大神在这个方面做得尤其出色。

  5. 在实际场景中,注重先把整个pipeline搭建起来。个人认为,这一点在实际应用中往往应该是最优先的。搭建起来之后,机器学习系统的上下游也都可以工作,也可以更好地判断系统的瓶颈所在,把好刚用在刀刃上。这其实就与做开发的程序设计一样,较早地抽象出比较好的接口、搭建一个系统原型是很重要的。

  6. 能够持续学习新的知识,跟踪最新的成果,对各种模型的motivation有自己的理解,有自己的insight与vision。这里举几个我自己学习过程中碰到的例子来说明一下这点。例如,推荐系统中,在Youtube 16年的推荐paper中,为何step1和step2的优化目标是不一样的?人脸检测中,MTCNN为何要分为多阶段?landmark检测中,3000FPS为何要分为两个阶段?(这些是设计相关的motivation)Google的wide&deep为何在Google store的场景下效果好,而在其他的场景下效果不一定好(这是对场景的motivation理解)?文字检测中,PixelLink为何要引入link?OCR中,CRNN为何要引入一个RNN?机器学习系统中,LightGBM是如何针对xgboost存在的哪些缺点进行改进的?(这些是对改进的motivation理解)我认识的一些大佬们会主动结合文章思考这些问题,有的时候会有与paper所claim的不同的理解(毕竟写paper的story很多时候也不一定靠谱,大家都懂),甚至还会做实验验证自己的理解。然后拿这些问题来考我,在我思考不出来后再告诉我他们的理解与实验结果Orz

  7. 做多数实验之前有自己的假设,根据实验结果会根据实验结果做进一步实验,或修正假设、或进一步探究。

  8. 自己参与的项目,对其中与自己比较相关的内容的细节比较清楚,自己负责的部分能够了如指掌。

  9. 能系统性地分析出机器学习整个系统的瓶颈所在,并提出相应的解决方案。当系统效果不好的时候,知道如何去debug,找到问题所在,改进系统的性能。这方面是我个人尤其欠缺的点。

相应地,这些也是我要努力提升的地方。如果我是面试官,我想我也会从这些方面去考察算法工程师的候选人。当然了,以上几点不一定要面面俱到,例如很多大佬不一定工程能力很强,但仍然可以做出很好的东西。换言之,上述特点的precision应该很高,但recall不一定特别高。不过,在我看来,与以上描述相反的算法工程师,即基础不牢、工程差劲、不做测试、不怎么考虑场景、在搭建起pipeline之前过早地沉迷于某一步的优化、不学习新东西、拿所有实验当黑箱炼丹等等,这样的算法工程师(其实就是我了)在我看来就比较一般。而差劲的算法工程师,在我看来,是不仅这些方面做不好,还瞧不起这些方面的人。

作者:LinT
https://www.zhihu.com/question/347545092/answer/865893798

强答一波,讲讲在学校或网上见到的现象(AI方面,严格来说,这些人放到今天的行业标准下,基本不可能成为一名算法工程师)。

(纯属吐槽,请勿对号入座)

百度百科型选手/PPT选手:常见于各类创新竞赛、课程答辩,张口闭口一定是「人工智能」「神经网络」,上来一定要气压群雄,尽管对各类AI问题的进展没有任何了解,但是在他们这里,各种算法一定是封装好了,准确率100%,拿来就可以用(plug-and-play)的。什么文本情感分析做舆情监控啊,人脸识别智能面试啊,不在话下,章口就来。

博客型选手:大概率尝试过Andrew Ng的网课,但大概率没看下去,手里一定有一本Python深度学习,对原理不求甚解,数学公式大概都不想看,论文不想读,辗转各个博客网站希望找到一个好一点的解读;跑了一通实例代码,很有成就感,可能会在某个博客网站发布一篇博客,标题诸如《自然语言处理入门-XXX》,成功为网络贡献一篇与其他博客雷同率90%的文章,虽然文章名字像是一个系列,但是相信我,他大概率不会再发布同系列的文章了。

Github选手:常常和PPT选手合作,拿到需求,「人脸识别是吧?」,Github一搜,好多仓库,全克隆了再说;挑挑拣拣,调试了半天,依赖装完代码跑通了(没有error),任务完成,功德无量,接下来的任务交给其他队友!

AI+型选手(教师):传统方向出身,没有学过ML/DL,在AI兴起以后,把DL当万精油用,深度学习预测地震啊,深度学习验证软件啊...管它什么数据驱动不驱动,经费拿到手就行了。这类老师对AI的认知可能和PPT选手差不多,比学生多的本领就是写本子、打招呼了。带一个PPT选手加一个Github选手,基本上可以在各类创新竞赛/项目中拿到还不错的成绩。

名词流选手:行走的AI术语词典,讨论问题时就喜欢堆砌名词,但从不解释,故弄玄虚,让外行有一种「不明觉厉」的感觉,其实一些言论根本经不起推敲。

潮流型选手:走在AI潮流前列,除了最新的算法,其他的都是垃圾,「不加attention?你这算法不行!」,「2019年了,还用概率图模型?!」这类人对算法应用场景一无所知,对新算法的狂热程度堪比娱乐圈流量小生的疯狂粉丝们。

何去何从型选手:多半是半路出家,转行想做AI的,但是奈何基础弱,一心只想挣大钱,所以会很迷茫,于是到知乎抛下一个问题:「非cs科班可以学xxx吗?」「本人xx,应不应该xxx?」。奈何这类问题没有什么深度,基本得不到什么可以参考的回答。这类人问题不在没有基础,而在没有主见。

(别打我...)

作者:盛夏的果核
https://www.zhihu.com/question/347545092/answer/840206839

EMMMMMM,原回答不够严谨,下文所说的仅为AI算法工程师。

————————以下为原回答———————————

0级算法工程师——只知道神经网络和几个名词,这一级的人一谈到算法和人工智能,无脑牛逼(或无脑diss)就完事了。

1级算法工程师——拜读过西瓜书/小蓝书/花书,看过算法视频教程,对算法基础知识有一定的了解;掉过几个算法包,跑过几个模型和典型数据。这一级通常是调包侠,调参怪。口头禅:xxx算法模型是真的强!实际上对于算法原理思想一无所知,看的书也只是囫囵吞枣。

2级算法工程师——参加过一两个算法竞赛/项目,跑过知名的几个效果好的算法模型,并且获得了中规中矩的成绩(前10-20%)。此时认为算法不过如此,数据处理、特征构建、模型选择无非那么几种套路,仅仅靠着模型融合和毫无想法的数据处理过程来上分。这一级充斥着大量的校招算法工程师,承担着大中厂算法岗炮灰的角色。

3级算法工程师——参加一些算法竞赛并获得比较靠前的名次,对于使用的模型和方法有叫深入的理解,竞赛中存在独立和较深刻的思考。或者有关于算法项目相关的论文。这一级在基础算法能力上来说已经过关,可以找到还不错的工作。比较容易担忧的是自身的工程能力。

4级算法工程师——除了比较扎实的算法基础外,还有比较不错的工程能力。不仅理论知识过关,同时能将算法结合到业务场景、实际项目当中去,并对算法本身进行一定的更改以适应背景。这一级的人已经能成为offer收割机了,往往能拿到心仪的offer。

(我认为四级已经是绝大多数算法工程师的上限,对于工程师来说继续升级需要的是对相关业务的理解、敏锐度和工程能力了,超越了“算法”本身的范畴)

…………

N级算法工程师

对于现有的算法进行创新和改进/开发算法框架造福AI领域等造成比较大的影响的巨佬。这一级答主根本无法想象那种高度,实属算法领域的大牛级人物。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

最差的算法工程师能差到什么程度?相关推荐

  1. 最差的算法工程师能差到什么程度呢?

    来源:https://www.zhihu.com/question/347545092 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 最近小伙伴都闷在家里了,该干嘛干嘛,关键是等出来了,千万不 ...

  2. 你见过最差的算法工程师什么样?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale 作者:知乎答主,来源:DataFunTalk 文章作者:Xiaotian Z ...

  3. 你见过最差的算法工程师都有哪些表现?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读:你见过最差的算法工程师什么样?"百度百科型选手?& ...

  4. 搞算法的都很强?不一定!你见过最差的算法工程师什么样?

    转载于 Datawhale 作者:知乎答主,来源:DataFunTalk 文章作者:Xiaotian ZUO.LinT.纳米酱.王喆 等 内容来源:知乎问答 https://www.zhihu.com ...

  5. oCPC实践录 | 广告算法工程师的自我修养

    ​这是AITBOOK的第31篇原创文章 2019年即将过去,2020年马上到来,在这个时候做一下总结,发一下展望是最合适不过的.2019年互联网广告的发展已有人总结为令人失望,2020年估计也好不到哪 ...

  6. 机器学习算法工程师需要掌握的技能与要踩的坑

    1. 前言 本来这篇标题我想的是算法工程师的技能,但是我觉得要是加上机器学习在标题上,估计点的人会多一点,所以标题成这样了,呵呵,而且被搜索引擎收录的时候多了一个时下的热门词,估计曝光也会更多点.不过 ...

  7. 一个机器学习算法工程师的基本素质~

    本文出处:https://zhuanlan.zhihu.com/p/21276788,原作者:吳YH堅 1. 前言 本来这篇标题我想的是算法工程师的技能,但是我觉得要是加上机器学习在标题上,估计点的人 ...

  8. 最佳适配算法和最差适配算法_影响开放社区的最佳(和最差)方法

    最佳适配算法和最差适配算法 在开放社区中建立良好声誉之后-希望如我们在上一篇文章中所讨论的 ,通过成为该社区的积极成员并为该社区做出积极贡献,您将建立起健康的信誉"银行余额"您可以 ...

  9. 目标检测:采用卡尔曼滤波、 帧差法 、三帧差法、 背景差分法、 meansift算法

    本程序主要包含五个算法 卡尔曼滤波. 帧差法 .三帧差法. 背景差分法. meansift算法的目标追踪跟进 并用Gui进行了系统的设计和更新 Mansift主要根据第一个数据的设计 得到目标框,然后 ...

最新文章

  1. python安卓版下载安装-python手册中文版apk下载
  2. 推荐《求医不如求己》,实用
  3. leetcode题目解析(js)--链表
  4. 30.jvm.gc(GC之详解CMS收集过程和日志分析)
  5. 15.concurrent-control并发控制
  6. linux打印jvm内存堆栈_5款强大的JVM 性能调优监控工具
  7. Linux系统(五)负载均衡LVS集群之DR模式
  8. 百度经验 回享计划
  9. cocos2dx 圆盘抽奖_cocoscreator之微信小游戏的抽奖转盘
  10. 4位院士的4个正确决定,成功扭转疫情!建议人人都该知道
  11. 卷积交织/解交织C++程序
  12. 【李宏毅2020 ML/DL】P25 ELMO, BERT, GPT
  13. jQuery ajax error函数(交互错误信息的获取)
  14. java中设置http响应头控制浏览器禁止缓存当前文档内容
  15. Linux访问交换机FTP,华为交换机使用FTP查看下载文件
  16. IDEA鼠标光标变黑块问题解决
  17. 新型肺炎疫情蔓延下的游戏行业会更火爆吗?
  18. VMware解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  19. 云和恩墨校园猎手招募令
  20. 如何设置UISwitch的大小

热门文章

  1. C初级_函数、分支、循环、图形库复习
  2. 实用技巧:Win11自带截屏、录屏功能
  3. mannose-CHO|甘露糖-醛基|甘露糖-聚乙二醇-醛基|醛基-PEG-甘露糖
  4. 阿里云Redis报NOAUTH Authentication required
  5. Gremlin学习--图的汇总与分组统计计算
  6. 踩坑List.addAll抛出UnsupportedOperationException
  7. 单相电机数显调速器 STM8S003F3P6单片机控制,性能稳定,调速准确
  8. Input dataset is not organized (height = 1) Input dataset is not organized (height = 1)......
  9. 数字货币呼之欲出,但这些套路须警惕!
  10. “巫妖王”袭来,工作游戏何去何从