面试创业公司算法工程师
两轮技术骨干,一轮技术总监,最后CTO,然后hr。总共四轮技术+hr,还是小有收获的。
总体觉得面试问题灵活,难度中和公司业务衔接的知识点结合强。下面说下具体的流程:
一、一面
1、两道代码(时间复杂度)
2、k-means的伪码(提及了EM)
3、项目有挑战的地方,调参
4、讲解word2vec
5、大致谈了下深度学习
6、偏差-方差分解,过拟合和欠拟合的措施,提出了L1和L2正则,说明为什么L1比L2稀疏。
二、二面
1、编代码(动态规划,代码检查以及异常处理非常有必要)
2、logistic回归的损失函数以及讲解
3、避免过拟合的措施,在统计领域对权重怎么控制(机器学习上的正则和惩罚项,统计上的假设检验)
4、如果有新的流数据过来,怎么更新模型(可以采用随机梯度下降,计算增量更新权值)
5、怎么确定某个特征项和类别之间的相关度(互信息(熵)公式,原理,还有什么?)
6、XGboost了解吗
7、讲小论文
三、三面
技术总监
1、三面主要是介绍实习的项目,通过项目了解你的业务逻辑。这部分答的不好
2、最后聊了很久公司的业务点
四、四面
CTO是北大博士机器学习毕业的,又发了好几篇厉害的paper,后来在微软待过
1、可能学术性比较强吧,上来直接让手推SVM,带上松弛因子
2、然后具体讲了下SMO解决凸二次规划问题的优势,对比梯度下降和牛顿法、拟牛顿法
3、最后介绍公司怎么用机器学习结合业务,从数据中挖掘信息
说实话推公式还是很艰难的,脑袋其实到四面就很累了。好在之前自己动手推过,虽然时间久了点,大概流程还记得。在CTO的纠错下,勉强推完了。SMO算法也只是简单了解过,所以大致思路讲下来了,具体涉及不深。面试官很仔细的讲了它来自哪篇paper以及改进,还有发明这个算法的人。。
五、hr
聊了下薪资待遇,说是沟通下再给回信(已通知,但还是纠结校招,如果七月份就好了)
最后总结下比较可控的因素在面试中:
基本礼仪不说了
1、互动
互动很重要,编程题答不上来没关系,但一定要积极的去想解决,根据面试官给的思路一步步回应,不懂就诚恳的问。
2、细心
写代码一定要清楚面试官是不是让你写伪码,不是的话就有必要写上异常处理以及return和函数头部。而且写出的算法或者提及的时间复杂度都要知道,会问。
3、引导
虽不能说主导,但这方面是有点可控的,学会引导面试的进程,主动说出你最近学的啥,你比较擅长啥。
4、最后一个问题
通常会问你有没有什么可问的,一定要问,不管是公司业务还是自我的提升,表现出感兴趣。