CV算法挂经合集
本人本硕中流985,研究生做的cv方向,只有一篇c类水文。春招的时候比较轻松找到了一家中厂cv算法的实习,所以低估了秋招的难度。秋招一直投的cv算法,奈何本人太菜,也没有亮眼的经历,基本上都挂了,下面的基本都是挂经。
面经
1、字节提前批(教育部门)
提前批投的教育部门,以为会简单点。
(1)一面
论文的背景和创新点。
目标检测:两阶段方法与一阶段方法的对比及其优缺点,focal loss的表达式,anchor free方法的优缺点。
机器学习基础:神经网络权重初始化方法和优化方法;防止过拟合的方法;boosting与bagging的区别;l1 norm与l2 norm的区别。
编程:实现计算IOU的函数,扩展:当bounding box与坐标轴不平行时怎么计算,说出思路。
(2)二面
论文的细节和创新点。
编程:leetcode 1047
2、京东提前批
(1)一面
主要问简历上相关的东西。
编程:给定一个有序数组,统计目标值的个数。(二分查找,找到目标值的下界和上界。)
(2)二面
选择简历上觉得最好的一个项目细讲,要对细节比较熟悉。
编程:最短路径问题。
3、oppo提前批
(1)一面
简历上的项目:创新点、解决的问题。
物体检测发展历程以及不同方法的优缺点,在实际应用中要考虑的问题。
应用问题:做一个行为识别的系统的步骤,需要考虑哪些问题(回答的是应用场景、对模型的推理速度、准确率和计算量的要求等)。
4、科大讯飞提前批
(1)一面
简历中比赛分工和细节;attention的原理;svm核函数作用;cnn的组成和各部分的作用;排序算法;B树和B+树;堆内存和栈内存等。
5、百度(自动驾驶部)
(1)一面
简历上的项目;防止过拟合的方法;VC维;局部极小值的定义(一阶偏导数等于0,二阶偏导数大于0);大网络为什么不容易陷入局部极小值(鞍点远多于局部极小值点);c++虚函数、智能指针、传值和传引用。
编程:Z形打印二叉树(leetcode原题)。
(2)二面
项目,物体检测的一些问题,感受野的计算、交叉熵损失
编程:快速排序、并查集。
(3)三面
详细讲简历上的项目,一道开放性的问题。
6、拼多多
(1)一面
简历上的项目;曾经遇到过的困难和解决方法;Faster RCNN中RPN的细节;最熟悉的机器学习算法。
编程:一道dp问题。
(2)二面
论文细节;基础问题:网络权重初始化方法、优化方法Adam、多卡训练时超参数怎么变化(lr、迭代次数)、python中的多线程与多进程。
编程:找数组中第k大的数、numpy实现bn层。
(3)三面
问了两个概率问题。
编程:顺时针打印矩阵(leetcode原题)。
7、bigo
(1)一面
主要问简历上的项目以及项目中用到的一些东西。
编程:python实现NMS。
8、vivo
(1)一面
论文的细节和主要贡献;数据增广的方法;网络不收敛的解决方法;轻量级网络;有没有改进过loss和网络结构。还会问笔试中没有做出来的题。
9、图森未来(感知算法工程师)
(1)一面
简历上的内容;基础知识:bn层的原理以及在推理阶段怎么加速,softmax loss以及后面的一些改进loss,softmax loss和triplet loss的区别等。
(2)二面(代码面)
两道编程题:一道是二分法求函数零点,另一道是bfs。
一些基础知识:git的基本使用,python相关问题、多线程等。
(3)三面(首席科学家王乃岩博士面)
这一面应该是经历过最硬核的面试了,主要针对简历上的项目提问。一直在问为什么,你为什么要这么做,别人为什么那样做等等。要给出数学上的解释,而不是一些泛泛的结论。一定要对简历上的内容以及常用的方法非常熟悉,还要对这些内容有比较深入的理解。
10、字节(被后端捞起来了)
(1)一面
主要问一些基础知识。数据库:主键和非主键、唯一索引、索引实现用的数据结构;操作系统:进程间通信的方式、socket建立连接的方式。
编程:Z形打印二叉树;给一个数,交换其中一些数字的位置,找到大于原来的数的最小的数。
(2)二面
数据库SQL查询语句,java、c++和python之间的区别,python2和python3的区别等。
编程:数组中有一个数只出现了一次,其他所有数都出现两次,找到只出现一次的数字(leetcode原题);一个dp问题。
总结
1、面试的一般流程是:自我介绍,简历上的项目(一般占大部分面试时间),问一些基础问题,编程题,向面试官提问。准备的话也主要针对上面几个部分准备。简历上的项目一定要非常熟悉,讲清楚项目的难点、解决方案、创新点等。基础知识问的比较多的有:bn、dropout、防止过拟合的方法、权重初始化方法、优化方法、各种网络结构、物体检测中的NMS、IOU计算等;机器学习有时会问到svm、gbdt、xgboost等;c++、python的基础;操作系统基础;排序算法;常用的数据结构等。编程题我主要刷了剑指offer和leetcode上的三四百道题,感觉面试中的编程题基本上都能应付。
2、一定要提前做好规划,早准备早投递,不要等到投递截止的前几天才投,那时候可能早就没hc了。找靠谱的内推人也很重要。
3、cv算法今年确实很卷,投cv的话在论文、比赛、实习中至少要有一到两个比较亮眼的经历。身边不少转开发的同学最后都收到了很不错的offer(大厂、中厂的SP、SSP)。
4、能实习的话尽量早点实习。
5、暂时没有拿到offer也不要太心急,最后补录还有不少机会。