剑桥小姐姐的国内AI算法面试经历

正文

一晃又是冬天,终于快回国了,剑桥这里也应景的散散漫漫地飘起了雪花。刚过去的2018年对于我来说是格外不寻常的一年,这一年我开始不再只是为了A+的期末成绩而抱着山一样的资料找寻可能考到的知识点,而是从各种现实的问题中开始认真审视AI的价值,它的未来,它目前的困境,和于我来说,它是不是真的适合我。临近硕士毕业,除了每天在实验室一呆十几个小时的实验,我也开始接触国内的工作机会,毕竟,我的博士申请还没任何音讯,尽力去做的事情,就不要再费尽心力去考虑它的结果吧。

受到CVer群主的启发,我觉得把我近半年来的面试经验作为我在CSDN上的第一篇文章再合适不过 :)

先介绍一下背景,博主本科曼彻斯特大学数学专业,硕士剑桥大学应用统计学专业人工智能方向。最近半年申请了国内百度、商汤、Face++和其它几个公司的AI,计算机视觉相关的工作岗位,目前已经收到百度、商汤和其它几个公司的offer,大都base北京,还有其它的几个职位都还在面试中。请原谅博主从本科起就不在国内,对于国内的公司非常陌生,有些公司的名字就不写了。

百度面试经历

剑桥小姐姐的国内AI算法面试经历

  1. 请自我介绍一下

  2. 看到你项目写到使用过Faster rcnn,请问Faster rcnn的优势是什么,为什么在这个项目使用Faster rcnn

  3. 能介绍一下 Faster rcnn RPN的作用和原理吗?

  4. ROI pooling 的主要作用是什么?知道 ROI align吗? 它们两个的区别是什么?

  5. 说一下Faster rcnn anchor机制,分别说一下 RPN阶段 两种Loss分别是什么?

  6. Faster rcnn有什么不足的地方吗?如何改进?还使用过其它的框架吗?

  7. BN的原理

  8. 能介绍一下你经常用的optimizer吗?

  9. 解释一下什么是凸优化

  10. 编程题,手推SVM, 补全CNN部分BP的代码

  11. 编程题: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值,就是平时写的滑动窗口最大值

  12. 编程题: Leetcode 315原题,线段树,好像也是一个算法竞赛题。

  13. 开放性题目:如何进行数据预处理,如何进行数据归一化等等,最后还抛出一个他们业务中正在做的项目中遇到的问题。

总结:百度面试,技术面试总共3轮,记得的题目就是上面这些了。感觉面试的范围还是很全面的, 对编码能力和解决问题的能力格外看重。

商汤面试经历

剑桥小姐姐的国内AI算法面试经历

1.还是介绍自己... ...

2.看到你做过目标检测的项目,能说明一下你在项目中主要做了什么吗?

3.能解释一下梯度消失或者梯度爆炸的原因,以及如何解决吗?

4.请问你在Faster rcnn中使用的哪个基础神经网络模型,VGG还是ResNet? 能介绍一下常用的神经网络模型吗?

5.看到你使用过LSTM,请问LSTM主要解决什么问题,它的三个门分别是什么,有什么作用?

6.能从数学层面分析一下梯度消失或者梯度爆炸的原因吗?

7.说一下dropout可以解决什么问题,为什么有效?

8.请介绍一下你常用的 Loss 函数, cross entropy的原理是什么?

9.你知道的凸函数求极值的方法有哪些?我们在机器学习中经常使用梯度下降,为什么不使用牛顿法?

10.如何将高维的变量映射到低维?

11.过拟合的原因及解决办法

12.平时使用什么编程语言? 请介绍一下python中闭包的作用?

13.c++中,类成员变量可否同时声明为虚函数和静态函数

14.编程题:找出数组中两数之和为指定值的所有整数对,时间复杂度为O(n)

15.编程题: 找出数组前K的数

16.开放性题目:一个5层的教学楼,每层有若干个教室和大于2个的楼梯,请建立一个数学模型计算出火灾发生时所有人员撤出的时间,并列出你考虑的主要因素

总结:商汤的面试,非常注重基础,喜欢能说出自己想法的候选人,博主在面试中多次和面试管argue,比如在答第10题时,博主犹豫了一段时间,面试管提示:你听说过PCA降维吗, 这个问题可以通过PCA解决。我解释说,PCA并不能完全解决您的这个问题,因为PCA只能解除线性相关,无法解决高阶相关性,可以考虑Kernel PCA。另外,整体感觉商汤的面试官幽默又不失严谨,博主常年在国外读书,有时不知如何将一些专业术语翻译成中文,因此会再三和面试官确认问题,所以有了如下的对话:

面试官:你能解释一下 cross entropy吗?

我:cross 什么?请问您说的是英文名字吗?

面试官:是,我是说的英文,哈哈哈哈

我:不好意思,我是担心我中文不好,真不是有意冒犯... ....

面试官: 没事,是我英语太不好,哈哈哈哈,哈哈哈

然后是面试官长达半分钟的大笑,而我一脸懵逼 : )

其它公司的面试

1.能解释一下xgboost的原理和实现过程吗?

2.解释 L0 L1 L2正则化

3.各种激活函数的优缺点

4.Bagging和Boosting的区别

5.Max Pooling和 Average Pooling的区别,使用场景分别是什么?

6.1 * 1卷积核的作用

7.Loss 不收敛的原因和解决方法

上面的问题,博主都没有给出详细的答案,因为实在觉得这些问题都比较基础~~暂时想到这些问题,也许以后会再补充。

面试下来,感觉遇到的大部分面试官都非常专业,在面试最后都会详细地回答我问道的问题,也验证了一位已经工作过的朋友的话,其实,面试官比你更希望你能赢~

大家加油!

---End---

另外,你如果想提前了解国内各大公司的面试经验和如何内推的话,欢迎加入AI算法岗求职大本营(知识星球)。

PS:本文作者已经成为星球的嘉宾

2019AI算法岗求职群(知识星球)

本星球主要面向今年(2020届)找工作的人群(研一/研二/大三等),目前已有超过200+同学加入。星球旨在分享AI算法岗的秋招准备攻略(含刷题)、面试经验和内推机会(含提前批)等。

上一篇:Clojure 用后感


下一篇:clojure打包发表jar 及java 调用