【2020年阿里-算法工程师面经-已发意向书】
【1面】
1、自我介绍、项目介绍
2、死锁出现的原因以及如何避免
3、算法题:畅通工程
https://link.zhihu.com/?target=https%3A//blog.csdn.net/xunalove/article/details/88598238个人感受:基础层。没有细问项目,聊了一些分布式训练、操作系统相关的东西,因为我说我不会,所以都是面试官在教我,基本没怎么问问题,最后要求用C++写一道medium算法题。面试官很和善,算法题没写出来,还给我提供了思路,感谢。
【2面】
1、自我介绍、项目介绍
2、梯度消失、爆炸原因及其解决方法
https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_25737169/article/details/788476913、模型压缩的方法
https://zhuanlan.zhihu.com/p/678718644、介绍轻量级网络
https://zhuanlan.zhihu.com/p/315587735、介绍分布式训练
https://zhuanlan.zhihu.com/p/56991108同步训练存在木桶效应,需要各个设备的计算能力要均衡,而且要求集群的通信也要均衡。
异步模式理论上存在缺陷,容易发生梯度失效问题,但因为mini-batch随机梯度下降本身就是梯度下降的一个近似解法,且即使是梯度下降也无法保证全局最优。
在实际应用中,在相同时间内使用异步模式训练的模型不一定比同步模式差。所以这两种训练模式在实践中都有非常广泛的应用。
6、pytorch与tensorflow的区别
https://zhuanlan.zhihu.com/p/37102973摘抄总结:
TensorFlow 是一款强大而成熟的深度学习库,有强大的可视化性能,以及用于高水平模型开发的多个选项。它具备生产就绪的部署选项,也支持移动平台。如果你符合以下情况, TensorFlow 会是个很好的选择:
- 开发用于生产的模型
- 开发需要在移动平台上部署的模型
- 想要非常好的社区支持和较为全面的帮助文档
- 想要丰富的多种形式的学习资源
- 想要或需要使用 Tensorboard
- 需要用到大规模的分布式模型训练
PyTorch 仍然是个比较年轻的框架,但发展迅速。如果符合以下情况,PyTorch 就比较适合你:
- 正在做机器学习研究,或开发的产品在非功能性需求方面要求不高
- 想要获得更好的开发和调试经验
- 喜欢很有“Python 味”的东西
7、过拟合原因和解决方法
https://zhuanlan.zhihu.com/p/476569568、bn层作用
9、介绍网络:Faster-RCNN、YOLO、SSD、YOLOv1、YOLOv2、YOLOv3、Masker-RCNN、GAN
10、如何提升mAP,举个例子
11、如何解决不收敛的问题,举个例子
12、介绍优化器
13、CenterNet的实现细节(argmax)
个人感受:应用层。2面问了很多项目上的细节以及基础知识,主要以检验基本知识体系为主。不会的我直接说不会,面试官就换了一个问题问,非常和蔼和有耐心。最后还对学习方向进行了指导。基础知识一定要牢固,多思考为什么,模型好在哪里以及解决问题的思路。
【3面(交叉面)】
1、项目介绍
2、你是如何选择数据集采样标准的
3、RCNN、Fast RCNN 和 Faster RCNN的区别
4、如何解决过拟合
https://zhuanlan.zhihu.com/p/476569565、如何使用ML知识分配算例
6、和初中生解释ML
7、假如你和你的leader意见相左,如何解决
个人感受:战略层。面试官从美国打来电话聊了1h,非常感谢他的时间(当时美国已经11 PM 了)基础知识问了15min左右,主要考察我解决问题的思路,以及对知识的理解和运用层面。最后对我的个人发展提出了指导性的建议,非常感谢。
【4面】
1、项目介绍
2、如何部署算力
3、为什么选择RetinaNet
4、对数据、算法、算力的看法
5、混淆矩阵角度解读召回率和准确率
6、纳什均衡
7、反卷积和上采样
8、什么是排序算法的稳定性
9、稳定和非稳定的排序算法都有哪些
10、描述一下堆排序、什么是大顶堆、什么是小顶堆
11、描述一下二叉搜索树
12、时间复杂度为O(n)、空间复杂度为O(k)的树的搜索方法
https://zhuanlan.zhihu.com/p/101321696