作者:辛俊波
链接:https://www.zhihu.com/question/29291174/answer/44180349
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

非大大,作为刚经历过校招的人说几句。
1)笔试:
投过的所有机器学习的校招岗位中,没有一个,哪怕是一个笔试环节是涉及到机器学习的。清一色全是常规的计算机专业基础知识。以百度为例,全是大题,前面几道简单题,简答的程序语言基础,操作系统等。后面全是编程大题,主要考察数据结构和算法

2)面试:
一开始大多都是介绍自己做过的项目,如果是面机器学习岗位,一般介绍的时机器学习相关的项目经验,这个时候就是向面试官展示你熟悉的机器学习模型的时候了。我自己介绍以及被问到过的有
模型上:SVM, LR, 决策树,贝叶斯分类,监督学习和无监督学习,BP神经网络,EM和K-means联系,knn,正则化,协同过滤等
数学上:牛顿法、随机梯度下降法、拟牛顿法、BFGS等
其他:mapreduce原理,python一些机器学习库(自己用过),推荐系统理解

因为我个人的项目有一个是和SVM相关,所以几乎所有的面试都推导过SVM的公式,被问到最深的时候还叫我讲解怎么用SMO求解SVM的对偶优化问题。大多数面试中,把SVM的理解深刻推导讲解了一遍之后,就花去了不少时间,剩下时间面试官再问我其他模型的简单理解,时间就差不多了。
所以我个人理解,重点熟悉熟练掌握一些你自己用过的机器学习模型。熟悉的定义是:模型的应用场景,原理,公式的推导,用的什么优化方法,有什么优缺点,和其他模型比较如何,怎么改进等,都要知悉。当你能结合工业界需求去讲那就更好不过了,比如LR, DNN在CTR中的应用,贝叶斯分类器在垃圾邮件中的分类等。

推荐书籍:
1、李航的《统计学习方法》。机器学习面试宝典,此书所有模型能够推导一遍,应付面试我觉得基本足够了
2、Harington的《机器学习实战》。python实现的机器学习代码,不讲原理只讲实战
3、Bishop的《Pattern Recognition and Machine Learning》
4、清华大学的《最优化理论与算法》。一切机器学习到最后无非就是优化模型,深刻理解优化的数学方法,对理解模型很有帮助

当然,以上的回答是针对机器学习的面试的,如果是从事这个岗位,以上的书是远远不够的,知乎上也已经有很多类似回答了。
 
作者:杨煜
链接:https://www.zhihu.com/question/54308150/answer/141629873
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

计算机专业研究生一枚,这学期初秋招刚找到一份机器学习的工作,仅仅把我的校招经历分享给大家,我的经历可能对社招的前辈们没什么帮助。由于是校招,每种算法考察的程度都不深。答案中不会出现具体的应聘公司,基本都是国内最知名的互联网公司,大约十来家吧。
首先我面试的都是校招机器学习岗位,没有遇见专门的深度学习岗位,所以就针对机器学习来说了。
面试内容一般都是做过的项目、语言相关、算法coding、机器学习。
1.做过的项目
项目方面我没做过机器学习相关的,求职过程中在这上面吃了很大的亏,如果能有相关的项目或比赛经历再好不过了。不过没有项目也不用灰心,这对在校生来说不算是硬伤,只要你的基础知识够扎实,同样能通过面试。(但最好还是有~)
2.语言相关
编程语言不算是硬性要求,有的面试官问了,有的干脆没问。我用的最熟的是C++,Java和Python也会用,有些面试官听了就会问我一些C++相关的问题,多数都会问到虚函数和纯虚函数,用C++面试的同学可以重点看一下这个。工程性开发性的问题问的不多,就一次面试遇到过问我一些预处理、链接库之类的问题。
3.算法coding
这个基本到哪都会考,动态规划、贪心、树、链表都是常考题。为了应对这种问题我的做法是在leetcode上刷题,我也就做了100道左右,基本就能应对面试中的算法coding了。如果用C++的话在leetcode上可以锻炼使用STL容器,许多算法coding题用STL容器来写非常方便(我个人写这种题已经不用数组了)。另外把答案用一个函数的形式写出来是个很简洁的方法。
4.机器学习
不用说这部分是机器学习面试的重点。面试中遇到的机器学习算法主要有线性回归、朴素贝叶斯、决策树、GDBT、随机森林、Adaboost、逻辑回归(和Softmax)、SVM、神经网络和卷积神经网络。遇到很多次让写逻辑回归的极大似然估计的推导。SVM会问思想,我SVM掌握的太少答的不好。神经网络会问随机梯度下降和反向传播,要写出式子来的。卷积神经网络就遇到过一次,当时不知道后来上网学习了一下挺有意思的。
损失函数、过拟合、算法的优缺点是经常问到的点,另外遇到的其他问题有这么几个:机器学习算法中哪些是回归算法哪些是分类的。他们的产品要做用户流失预测须要提取哪些特征的。其他我还遇到过倒排索引、推荐算法之类的问题。
以上,希望能给即将找工作的同学们带来帮助(●'◡'●)
 
 
 
作者:daily lin
链接:https://www.zhihu.com/question/54308150/answer/142762072
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

前些天刚刚面了俩家。传统机器学习算法也不难,把李航那本刷完就够用了。SVM对偶问题可能要多看看。python的sklearn对这些传统算法封装好,可以了解一下。

我面的分为项目和代码。
✔项目: 基本上是按照简历来展开。面试官也不一定直面问你简历上写的,他可能看着你的简历想到他们现正在做的项目遇到的问题。也不一定是深度学习如RNN 或CNN,可能是数据存储,如何数据读取使的内存有限下读取速度快。设计一个读算法,数据从G到T的增加如何保障读稳定。这就考基本功了,这次问的是数据读取,下次可能就问带宽,外溢等等。从这个观点看,我觉平时积累知识的时候还是要掌握得一些,一次性弄懂。面试官还问了现场推导反向更新规则,解释caffe每个超参的作用。没有问传统机器学习(naive bayes, svm等等)。
✔代码: 面试官直言问,你有没有在哪里刷过题。我说在leetcode,然后面试官说你随便说个你印象比较深的题吧。天,顿时我就懵逼,还能这样考?一时不知是兴奋还是心慌,突然想不起来任何东西。然后想起了3sum,想到先序中序。我回答3sum问题,然后面试官要我讲一下算法,三个for循环最差O(n^3)。然后面试官说有什么方法可以优化,又蒙圈了,自己给自己挖坑啊!后来胡乱想了个我说2个for,然后再query。最挖坑的是,我说查询是O(1)时间。然后在面试官引导下我想到了二分,真是羞愧难啊!后来 出来后我赶紧得得去查一下正确答案,要先排序O(nlgn)。然后从第一个开始for ,gap=0-A[k],然后再来一个while,i在k+1,j在尾,A[i]+A[j]-gap<0 i++; A[i]+A[j]-gap>0 j++; 所以O(n^2)够了。(如有更好的算法求建议)。最后我面试时回答的是O(n^3lgn)。自己挖的坑,跪着也要爬起来 (T_T)。面的时候千万要保证不要说出自己含糊的答案,一定要确保正确,就这样。
个人意见真诚手打,仅供参考。大神请绕道,不喜勿喷,谢谢。
 

标准的理论(VC bound,model selection, overfitting)

标准的模型(SVM,Random Forest,Decision Tree,NN)

标准的优化算法(MCMC,MLE,EM,SGD)

标准的库(TensorFlow,WEKA,Spark)



作者:留少武
链接:https://www.zhihu.com/question/54308150/answer/141727001
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
 
嗯说一下昨天面试被问的几个问题:

  • 解决网络过拟合的手段有些什么呀
  • Dropout的为什么可以解决过拟合呀
  • Batch-normalization的思想是什么呀
  • 类别不平衡的时候怎么办啊
  • 目标检测中anchor box的做法和adaboost人脸检测中的滑窗检测有什么区别啊?
  • 跟踪和检测有什么区别啊?


作者:匿名用户
链接:https://www.zhihu.com/question/54308150/answer/150991535
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
 
作者:FranktheTank
链接:https://www.zhihu.com/question/54308150/answer/138870281
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

更新log:
1/30/2017 补充:如何准备面试
——————————————————————————————————————————
如果简历上有相关的深度学习project的话, 一定会被深入问吧...

剩下的东西很多情况下取决与面试的公司平时一般做啥.

之前有朋友面过一个传统ML + NLP + 一点点DL的position (Entry Level), 面试题目涵盖如下, 可以感受一下:
  • 用Map Reduce implement矩阵乘法
  • NLP相关的encoding问题 (CBOW vs Skipgram)
  • 不同的activation function的pros/cons
  • Gradient Boosting 相关问题
  • Random Forest 相关问题
  • SVM的Gaussian Kernel 的 dimension
  • 用Regex分析文本
  • 如何用python/R 读取JSON, 并且洗数据
  • 用C++ implement Monte Carlo
  • coding: 用DFS走迷宫

如果我是面试官,可能还会问:
  • 用过哪些DL的library呀?
  • 现在的DL 的state of art model有哪些呀?
  • 如果如理diminishing gradient的问题呀?
  • 如果同时处理文本文档+图片呀?
  • 如果防止overfitting呀?
  • 如何pre-train model呀?
  • 能否自己在服务器上用distributed computing部署一个现有的model 呀?

如何准备面试?
楼下@杨煜 同学的回答已经非常全面了。我再加几点:
  • 机器学习:个人感觉学好深度学习,有一个扎实的机器学习的底子是很重要的。所以很多position虽然打着深度学习的标签,但做的东西往往是和普通的机器学习密切相关的(这里所谓的“普通的机器学习”通常指的是那些不需要很多计算量的模型)。撇开某些”特定的深度学习任务“(如图像识别,自然语言分析),很多情况下深度学习是在尽可能的用一个non-linear的model去更好的fit你需要处理的问题。但是对于入门级position来说,fit model (e.g. 调参)很多情况下只是最后的20%任务。其余的80%时间还是在洗数据。举一个很好的例子:在我实习之间,我请教过一个做机器学习(业界cutting edge)的师兄,问他们平时工作是如何的高大上的。他说的回答是:“第一步,我总归是画一个scatter plot..” 所以说,除了某些特定的任务外,深度学习很多情况下只是在给你的结果锦上添花。但俗话说“garbage in, garbage out”。 很多时候数据的好坏才是最关键的。
  • 做过的项目:如果申请者是机器学习相关的专业出身,很多情况下会自带一些项目,这在面试中是个加分项。对于转专业的同学们来说,“项目”这个topic有可能会是个死循环 --“不去实习哪来的项目,没有项目哪来的实习?” 在这个点上,我个人的建议是“打好机器学习的基础,抓好深度学习的理论”。缺project的同学大可参与一些kaggle,拿到一些名词是最好。现在也有一些刷project小组(如Bittiger, 无利益相关)供大家参与。
  • 语言相关:这个其实是应position而异的。如果你的职位是Google AI/Deep Mind这种专门开发新模型的position,你可能需要掌握扎实的底层语言基础(C/C++?)。如果是偏应用为主(比方说用LeNet来获得encoding),熟悉掌握python和相关的library(e.g., Keras)已经足够。
  • 算法coding:赞成。毕竟不是software engineering,有时间多做project吧。Leetcode 刷到medium基本已经能够应付了。