众所周知,机器学习面试主要分为三个方面。
算法基础(理论概念)
工程代码实现及前沿技术复写能力
业务思考深度及思维发散广度
我们默认参加机器学习面试的都是有一定工作经验的同学(至少完整参与过一个项目)
大概的面试问题如下:
Random Forest 原理(理论基础)
CNN的实现过程及可优化位置,Why?梯度消失?激活函数?(理论基础)
随机森林为什么不能用全样本取训练m棵决策树?(理论基础...当时没听懂还让他们pardon了一次)
RF和CNN是怎么结合的,这样做优点是什么?(工程能力)
CNN的调参有什么经验?(工程能力)
Data feature 怎么提取?什么是OOB?(工程能力)
为什么采用这两种算法解决异常数据识别及原因分析的问题?如果精度不够,需要对算法进行怎样的调整?(业务理解)
后续优化和迭代的思路?(业务理解)
这几年我也陆续面过一些算法工程师的求职者,除了项目本身的考察外,我问的大部分问题如下:
常见的分类算法有什么
特征工程
Kmeans或者KNN的原理
在kmeans或kNN,为什么 用欧式距离来计算邻居之间的距离?可以用别的方法吗?为什么?
Overfitting怎么解决?
LR和SVM的关系与区别?
判别式模型和生成式模型?
LSTM结构推导,为什么比RNN好?
除了机器学习理论基础,还要考察工程能力就是我们所说的代码编写。刷题,是最有效的方式。