2024年3月29日高德算法实习生岗位的一面面试。
这次面试主要是为了积累经验,虽然有些问题没有答上来,但还是希望能为大家提供一些参考。
面试过程
- 请介绍一段与算法相关的项目经验。
- 请解释Xgboost和GBDT的区别。
- 回答:两者都是梯度提升模型,但Xgboost使用二阶泰勒展开,而GBDT使用残差进行训练。Xgboost的决策树可以是回归树或分类树,训练速度较快,因为可以并行训练。
- 你有进行调参吗?目标是什么?
- 回答:调参包括树的深度、弱分类器的类型和迭代次数。
- Xgboost的损失函数是什么?
- 回答:我提到使用了L1 loss或L2 loss,但具体忘记了。
- L1 loss和L2 loss的区别是什么?
- 回答:L1 loss是绝对值损失,L2 loss是平方损失。L2在预测值和真实值差距较大时下降速度更快,但对异常值敏感。
- 刚才提到了y,那么x呢?有对数据做预处理吗?
- 需要做数据预处理吗?
- 有没有进行归一化、标准化?
- 回答:了解过batch normalization。
- batch normalization的运用场景是什么?
- 什么场景用batch normalization,什么场景用layer normalization?
- 回答:不清楚,需要查一下。
- 深度学习用过什么模型?
- Yolov3和Yolov8有什么区别?
- 面试官更想知道为什么速度和性能有很大提升。
- 对Yolov3和Yolov8的原理有了解吗?
- one stage和two stage的区别?two stage的第一个stage在干嘛?
- Yolo的损失函数是什么?为什么可以把two stage变成one stage?
- 你知道Yolo的目标函数是什么?
- 还有其他的目标检测方法吗?
- 回答:提到了传统方法如匈牙利匹配加卡尔曼滤波,现在也有更多的目标检测算法,如直接用神经网络进行输入输出。
- 回答:提到了传统方法如匈牙利匹配加卡尔曼滤波,现在也有更多的目标检测算法,如直接用神经网络进行输入输出。
反问环节
- 可不可以对我提一些建议?
- 回答:简历上的内容要尽可能了解其机制和原理。例如,写了Xgboost,就会问相关的原理和信息。面试官会关注解题能力、为什么要用这个方法、还有哪些候选方法、对比、哪些原理和机制更适合当前的业务场景。
- Yolo:虽然不是所有人都了解,但还是会问v3和v8的区别、目标检测的历史、为什么从two stage到one stage、每个迭代版本优化的目的是什么。在解决问题时选择正确的模型。
- 面试官想听为什么选择这个方法,这个方法有哪些优点。例如,可以说因为部门问题,前后的上下游输入输出只能用two stage的方法,先进行b-box的选择,再对b-box进行分类。对精度要求不高、对可解释性要求较高、计算速度要求快、不需要非常准确的情况下可以用传统方法。
- 专业不对口有关系吗?
- 回答:场景有交通方向的工作。应届生主要看学习能力和技术能力。应届生可能不会参加过多的项目,不用太在意答不出来的问题。
建议
如果有二面的话,主管会比较看重学习能力、表达能力和技术能力。一个遗憾是没有表达清楚数学建模想解决的问题是什么。面试前需要提前回忆一下。
#软件开发笔面经#