Py学习  »  机器学习算法

知乎高赞:面试官如何判断面试者的机器学习水平?

机器学习初学者 • 2 年前 • 155 次点击  

面试官如何判断面试者的机器学习水平?

高赞回答一

作者:wei chris
链接:https://www.zhihu.com/question/62482926/answer/210794177

几个必问的问题,
1问一些面试官和面试者都熟悉的问题,把握一下面试者的深度

2问一些面试官熟悉,而面试者不熟悉的问题,考察一下应变和理解力

3 问一个面试官不熟悉,而面试者熟悉的问题,考查一下表达

4 问个过往项目,有什么地方可以优化。考查一下迭代意识

5 给一个公司现有项目问题,看看解决实际问题能力

机器学习技术日新月异,面试者的技能储备和公司需要严丝合缝的匹配,其实很难。核心能力不错的话,其实已经可以了!

高赞回答二

作者:王喆
链接:https://www.zhihu.com/question/62482926/answer/529823808

自己拿过Hulu,阿里,腾讯,美团的算法工程师offer,也作为面试官面试过100+候选人,简单谈一下机器学习工程师的面试,说白了就一句话,

把你做过的机器学习项目的细节讲清楚,有自己的理解,对经典的以及前沿的机器学习知识有所了解

机器学习面试要考察三方面的内容,1、理论基础,2、工程能力,3、业务理解

之前有的答主罗列了几乎所有知识点,面试者能够逐一准备当然是好的,但我不相信有任何人能够对所有问题有深入的理解。也正因为这一点,面试官一般不会大面积的深入考察所有知识点,面试时间也不允许,但资深一点的面试官只要从简历出发问你一个项目,这三方面的能力也就都考察到了。毕竟魔鬼躲在细节里嘛。

我记得我的一位面试同学介绍自己实习时候用过XGBoost预测股票涨跌,那面试官会由浅入深依次考察:

  • GBDT的原理 (理论基础)

  • 决策树节点分裂时如何选择特征,写出Gini index和Information Gain的公式并举例说明(理论基础)

  • 分类树和回归树的区别是什么?(理论基础)

  • 与Random Forest作比较,并以此介绍什么是模型的Bias和Variance(理论基础)

  • XGBoost的参数调优有哪些经验(工程能力)

  • XGBoost的正则化是如何实现的(工程能力)

  • XGBoost的并行化部分是如何实现的(工程能力)

  • 为什么预测股票涨跌一般都会出现严重的过拟合现象(业务理解)

  • 如果选用一种其他的模型替代XGBoost,你会选用什么?(业务理解和知识面)

除了上面的问题,我会再检查一下面试者对NN,RNN,个别聚类算法,模型评估等知识的理解程度以及对GAN,LSTM,online learning是否有基本理解,这是考察面试者对经典以及前沿的机器学习知识的了解程度。再稍微检查一下面试者对工具的了解程度,写一段简单的spark或者map reduce的程序,如果无误的话,那么可以说这位面试者的机器学习部分是完全合格的。

当然,如果你介绍的项目是用CNN实现的,这条考察线路当然是不一样的,大概会是

LR推导->梯度消失->激活函数->TensorFlow调参经验这条路,大家体会意思就好。除此之外,还有其他工程方向的面试官会着重考察coding和一些算法题目,那是另外一个话题了。

根据我去年的面试经验,即使清华北大的同学也往往无法回答完整这些提问。一项答不出来的话无伤大雅,但两项答不出来我基本会给fail或maybe。

所以真的希望大家严肃对待写在简历上的东西,面试官会刨根问题的问到骨子里。但就我个人而言我不会深究面试者简历之外的东西,比如故意问一问GAN的细节让你一定要答出来,我认为这样毫无意义,有故意刁难之嫌。

最后再谈一谈对算法工程师面试更深一点的理解,其实面试的根本目的是找一个你愿意在一起工作的靠谱的工程师

那么对于公司来说,什么人靠谱呢?有不错的知识储备,有钻研问题的能力。所以面试官不仅会考察你知识的广度,还会考察你项目的深度。只有深度没有广度,你学习新问题花的时间可能会过长,这不符合公司的利益,只有广度没有深度,你可能不具备攻坚克难的素质和潜力,这也不是一个合格工程师的标准。另外我们招的是工程师,不是科学家,不要求你是理论全才,不用样样精通,但因为招的是工程师,你得懂得解决业务问题,你要熟练的使用工具。

那什么人你愿意一起工作呢?对于工程师来说,当然是能一起讨论问题,一起碰撞出新的idea的人,所以面试的时候很多面试官会问你一些开放的问题,就像上面说的“如果选用一种其他的模型替代XGBoost,你会选用什么?”。面试官其实不期待你给出什么高大上的答案,他们希望的是你去说出你的想法,你去跟面试官讨论迭代,一起解决这个问题。其实这一点是很多面试者缺少的。也许有的时候是由于紧张或者不自信,你不愿意说出自己初级的想法,这样的考虑是多余的,没有任何解决方案一开始是完美的,大胆说出你的想法,讲的条理清晰,也许面试官会帮你完善你的方案,这就是一个你愿意共事的人的标准。

高赞回答三

作者:匿名用户
链接:https://www.zhihu.com/question/62482926/answer/221091254

湾区某司员工,我们组在招 ML Engineer/Data Scientist,所以近几周面了不少人,有电面有onsite,讲一下个人经验。

首先我很佩服高票回答能在面试中问那么细的,就我的经验而言,电面或onsite一场无非一个小时左右,对于单个面试官来说,能对面试者机器学习方面的基础知识和数理、编程基础有些了解就很不错了。由于面试流程所限,在我司根本不可能有让人花大半个小时闷头实现个神经网络。

因为我们组偏重应用,做机器学习的目的都是为了解决实际问题,所以招人时对机器学习知识和工程能力都有要求。基本上每个人都要有能力做到:建模、跑实验、作分析、清理大量数据(TB级以上)、实现并部署模型到生产环境。所以我下面描述的面试内容并不仅限于机器学习。

一般来说面试流程是这样的:

基本有两类面试情形:

情形A: 偏重机器学习基础、数理知识,及利用机器学习解决问题的能力

单场面试:

  1. 问一下做过的项目,挑一个最有意思的详细问

  2. 问一道涉及机器学习简单数学推导的题,一般是概率或者优化之类,然后要求写代码实现

  3. 给一个实际的应用场景,要求面试者设计基于机器学习解决方案:从用什么模型,用什么特征到怎么部署到生产环境,什么都可以问。一般题目都是简化自我们工作中实际遇到过的问题。

情形B: 偏重算法数据结构、大数据处理、机器学习系统实现等

单场面试:

  1. 问一道一般的算法题,不至于太难,一般用来测试面试者对常用的数据结构是否熟悉,工程能力是否扎实,写代码时思维沟通是否清晰,还有代码风格之类

  2. 问一道涉及MapReduce的题,当然不会是最简单的那种word count,一般也是需要一定思考的。

  3. 问一些关于机器学习系统的题,比如分布式算法,比如在线学习的系统如何设计等等。

总结

其实还有很多不错的回答,大体上与以上三个回答类似,我就不一一列举了。祝大家面试顺利!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111119
 
155 次点击