各大公司的算法岗面经
ps:目前只整理问题,后续会放出相应的解答
1、2018年网易人工智能事业部(计算机视觉)
作者:xnghit
链接:https://www.nowcoder.com/discuss/74187?type=2&order=0&pos=23&page=1
来源:牛客网
基础算法:
实现sqrt函数,不能使用二分法
岗位算法:
resnet解决了什么问题?
为什么深度网络网络层数变深了效果反而变差了?
推导softmax用于多分类的交叉熵损失函数?
手写图像语义分割的几个网络的损失函数
FCN,DeepLab v1 v2 v3的区别,和DeepLab和PSPNet有什么区别呢?
看过图卷积网络没有?3D卷积看过吗?问了TensorFlow内部是如何实现卷积的?
手推SVM(出镜率奇高的支持向量机)
学习率设置,如何调参?
总结:
1 遇到面试官的问题,自己不太清楚面试官想问什么的时候,要即使问面试官,及时沟通。
2 遇到算法题时,若一时想不出解法,可以举例子理解理解题意再写。
3 深度学习中用过的网络,损失函数一定要会写,参数设置是什么一定要搞清楚。
4 在面试中尽量要讲自己所擅长的东西发挥到极致(所谓拖延时间),这样面试官觉得时间够了,就不问你其他基础知识了。
5 面试这个东西运气成分占很大,有的面试官偏偏很懂你做的东西,自己做的水就被他一眼揭露出来。
6 技术面的几轮,一般越往后越难,基础不扎实很难过最后一轮总监面,希望大家好好补基础,与君共勉。
2、2018阿里巴巴 (计算机视觉)
作者:丶飞比寻常
链接:https://www.nowcoder.com/discuss/74234?type=2&order=0&pos=26&page=1
来源:牛客网
一面来的很快,简历投出去一天半就来第一次电面了,提前电话约时间,对面试官好感度飙升,一面面试官很和蔼,上来例行自我介绍,接着介绍项目,因为项目上写了故障检测和图像分割的项目,先问了故障检测用的什么模型(我用的SVM),问了些简单的数据预处理,残缺样本处理方式,多分类方式,然后提到图像分割,问了具体实现方案,使用的深度学习框架,准确度计算方式,召回率,有没有用传统的分割方法和深度学习做对比,各自的优缺点。然后就是例行的问问题环节,因为一面感觉总体比较简单,就聊了半个多小时,大部分时间都是自己在吹牛,该答的也还答的不错,面试官映像还行,一面结束。
过了两周多点二面,仍然是电话面。上来老规矩自我介绍,仍然是聊项目,这次比一面稍微详细点,解释了下用到的神经网络结构,改进方式,以及准确度的计算方式,然后问了所知道的优化方法,三种梯度下降各自的优缺点,自己作还提到了动量方式的梯度下降,没解释的很清楚,接着问到tensorflow一些使用,几种优化函数,用过tensorflow中哪些算法模型。完了问了俩c++的小问题,怎样理解继承和多态,深拷贝浅拷贝,感觉前面网络结构解释的不是很清楚,自己一点c++基础答的都有点慌,二面感觉不太好,半个小时就草草结束了。(二面问的问题还是比较基础的)
等了两天半,接到三面通知,还是电话约时间,这点还是挺好的。三面视频面,上来老规矩,自我介绍完让写一段程序,把数组元素更新为除该元素外其他所有元素的乘积,返回新数组,不能用除法,不要用O(n^2)的方法,一下没想出来,还是题刷少了。后来面试官解释说这个环节考的并不是算法,而是简单考察下编码能力,在提供的编辑器中也是不能调试的,写完直接给面试官看就行。没想出来就换了个题:将两个数组合并为一个无重复数字的数组,写完就着程序问了下函数参数为类的时候传参时发生的拷贝次数,怎样避免,返回值是否能为引用,还有很多c++基础问题没记清....接着问了两个概率问题,一个扔色子,最多仍两次,第一次扔完可以自行决定要不要扔第二次,取最后一次扔色子的结果为准,求:尽可能得到最大点数的数学期望;第二题,类似于轮盘赌,俩人轮流扔硬币,扔出正面获胜,求:先扔者获胜的概率。概率题完了接着还是聊图像分割的项目,具体聊了一下整个项目的流程,自己在项目中干了什么,接着简单问了下激励函数,ReLU的特性、优缺点,自己多说了下leaky ReLU,再来就让描述一下所有了解的防止过拟合的方法,重点提了下early Stopping和DropOut,下面好像考察的就不是细节,而是对整个深度学习方法思想的把握了,因为项目写了手势翻页,原本用opencv实现,面试官问怎样用深度学习的方式来解决这个问题,这里卡住了,还是基础不够好,临时用了些目标跟踪的思路,感觉不符合面试官的预期。最后问了俩开放问题,感觉应该是HR问的,如果进了阿里怎么安排自己的工作和未来发展,自己提到了无人车,顺手问了自己对于无人车相关技术实现的想法,目前这些技术的局限性在哪,还有从技术角度对最近无人车事故的看法。最后就是我的提问时间,因为有现场写程序,持续了接近两个小时,三面结束。
三次面试阿里的面试官人都很好,而且都会提前约时间,三面中程序没思路也会给提示,苦于自己基础不好,准备也不够充分。回顾三次面试的过程,除了项目之外,其实面试官的问题都不算难,深度学习的问题也都是基础,没怎么深入问神经网络结构,加上部分的c++基础,开始感觉自己还是有机会,怪只怪自己基础不够好,再好好准备,下次努力吧。
3、腾讯c++岗
一面
成都4月11日1816房间
介绍自己的项目、难点在哪里、怎么解决的
介绍C++11特性
介绍fork函数
介绍time_wait状态
为什么tcp连接握手需要三次
介绍迭代器失效。push_back会导致迭代器失效吗。
红黑树的特征,介绍
哈希冲突的解决方法。
进程和线程的区别
你都使用什么线程模型
介绍协程
介绍快排算法
什么是稳定性排序,快排是稳定性的吗,为什么
快排算法最差情况推导公式
析构函数虚函数为什么
构造函数为什么不能是虚函数
打印在纸上的题目,考察:new [] 对象。static 成员。子类构造函数具体调用了啥。拷贝构造函数与赋值函数的区别。等号在拷贝构造函数出现的时机。什么时候需要赋值函数。深拷贝与浅拷贝。虚函数的调用时机。
笔试过程中(之前牛客笔试。面试官居然打印了我的笔试所有答案和结果,包括选择题和算法题,提交了多少次,失败了多少次)一道题的思路。考察虚指针的初始化时机。
随机出一道纸上的题目。给定前序遍历ABC后序遍历CBA,求中序遍历是什么,画出来两种情况。
笔试过程中(之前牛客笔试),第一道算法题的思路
有100个弹珠,双方轮流拿,每个人只能拿1~5个,无法拿的人输,必胜解法。
最近学什么(服务器编程)。之前学什么(TensorFlow),怎么学习的。你对Tensorflow强大的神经网络是怎么看待的。
家庭情况了解。
面试官话不多,答完很少继续追问。错了会引导你,张弛有度,不苟言笑,全程在打字(不知道在做什么)。
二面
面完特别难受,感觉自己实践太少了。什么教研室真是太耽误找工作了,天天被催搬砖。之前还不觉得,现在真是感觉考研教研室的话一定要找好的教研室才行。
成都4月13日2707房间
自我介绍
系统调用是什么。你用过哪些系统调用。什么系统调用会耗时长。
gdb调试用过吗。什么是条件断点。
函数指针和指针函数的区别。写个例子出来。
介绍udp的connect函数。
索引是什么。多加索引一定会好吗?(索引这个承认了看面经,但是后一个问题自己想出来了)
上一次面试中,你有哪些问题你回去查了。
上一次面试中,你的代码有问题,你知道吗。
你回答的问题是从哪里学习的。你这两天在干什么?
你能实习多久,你是来不了实习的吧,就算给你发了offer你还是要找导师同意才可以的吧。(说道这里好难受,没办法去实习,真的是,哎)
给你提一些建议,看下gdb调试,看下数据库知识,看下网络编程,多实践。
面试官还是很和善的,算了,为秋招做准备吧,一首凉凉送给自己。
分割线
早上面完后中午一点后查了居然是HR面试,感觉中奖了。无憾了。好好补些基础吧
作者:linanwx
链接:https://www.jianshu.com/p/d5aa63a27172
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
4.京东数据与算法类
作者:willishu
链接:https://www.nowcoder.com/discuss/74056?type=2&order=0&pos=47&page=1
来源:牛客网
算法小白
做过哪些项目
随机森林了解么,讲一下随机森林原理
随机森林在怎么用于回归
讲一下CART的节点划分
讲一下基尼不纯度
随机森林和GBDT的区别
随机森林建立新的树要考虑什么
随机森林的随机体现在哪里
讲一下实验室项目结束
总共35分钟左右。
ps:注意京东的数据与算法岗都要求你需要会基本的机器学习算法
5、腾讯机器学习岗
作者:zwxxj
链接:https://www.nowcoder.com/discuss/73806?type=2&order=0&pos=76&page=1
来源:牛客网
今天刚面试完,一面刚出门就跪了,虽然没过,也发给大家面试内容。面试的是应用研究-机器学习职位
进门先是自我介绍,然后问了一下学习方向,我是机器学习方向的,就问我最熟悉哪些算法,我基本上说了一些常见的,面试官选择了SVM,问题有以下:
1、SVM的作用,基本实现原理;
2、SVM的硬间隔,软间隔表达式;
3、SVM使用对偶计算的目的是什么,如何推出来的,手写推导;
4,、SVM的物理意义是什么;
5、线性回归的表达式,损失函数;
6、做过哪些项目介绍;
7、如果给你一些数据集,你会如何分类(我是分情况答的,从数据的大小,特征,是否有缺失,分情况分别答的);
8、如果数据有问题,怎么处理;
9、手撕代码,根据前序,中序创建二叉树。
感觉腾讯比较重视基础的问题,以上问题都回答了,面试官说挺好的,然后出门一查状态跪了,想了一下,可能是我说话语速比较快,估计好多地方可能是没有表达清楚,给还没有面试的小伙伴们一点经验。
6、腾讯C++一面面经
作者:Accompany
链接:https://www.nowcoder.com/discuss/73301?type=2&order=0&pos=107&page=1
来源:牛客网
1.一上来就是自我介绍 ,然后根据的你的简历对项目(堆了半个小时 2 3 4 5 6都是从项目里面衍生出来的, 其他的项目知识点内存池等, 太多了就不写了)。
2.vector和list的区别的,应用,越详细越好。
3.C++ STL 内存优化
4.给你1MB的内存,你们怎么设计, 才能使其利用率最高,产生的碎片最少
5.用户态到内核态的转化原理。(答起了部分)
6.linux内核中的Timer 定时器机制。(不知道)
7.TCP的三次握手四次挥手 ,拥塞,流量,可靠性的原理。
8.TIME_WAIT状态分析。
9.C++ 类成员初始化,为什么按顺序顺序, 构造函数的调用和 代码扩展,还有初始化列表?
10.类成员初始化的方式。
11.const成员函数的理解和应用。
12.50 亿个整数中, 找一个确定的数? 有内存限制, 并且无序
7、阿里机器学习七面面经
由于工作地点选在北京,HR沟通后要求去现场进行面试。
一面(现场面)
由于现场面大部分原理都需要手写解释。
1、监督学习非监督学习啥区别,word2vec 属于啥类型
2、xgb,gbdt啥区别
3、l1,l2正则原理、区别
4、xgb中l1正则怎么用的
5、python 中 list 底层怎么实现
6、list dict有什么区别
7、手写对dict排序
8、介绍项目,从项目中又问了一些
二面(现场面)
二面大哥是临时叫来的,没看过我的简历,就对简历中的项目进行探讨,讨论了一下实现的方式。
三面(现场面)
1、自我介绍
2、介绍项目
3、集成学习介绍(boosting bagging stacking原理)
4、stacking blending区别
5、分析为什么使用xgb(提示,从特征维度,样本维度等进行比较)
6、过拟合的判断方法
7、过拟合如何解决
8、概率题 X是一个以p的概率产生1,1-p的概率产生0的随机变量,利用X等概率生成1-n的数
9、手写代码 两排序链表合并
四面(现场面)
1、自我介绍
2、介绍项目
3、手写代码 数组中第k大的数
4、构造堆的时间复杂度
五面 交叉面(视频面)
1、自我介绍
2、平时成绩
3、python 中 key-value的数据结构
4、dict底层如何实现
5、如何解决哈希冲突
6、非监督学习举例
7、解释k-means原理
8、距离的计算方法
9、监督学习模型如何选取
10、场景题 知道所有信息,为用户推荐饭馆
11、算法题 两个300G的大文件,求两个文件的交集
六面 HR面(电话面)
1、自我介绍
2、拿了哪些offer,为什么选择阿里
3、有哪些优缺点
3、性格如何,性格上有什么缺点
4、学习有什么收获,面试有什么收获
5、薪资有什么要求
七面 总监面(现场面)
总监面史上最难,全程懵逼,每个问题问到不会为止,面试时间大约持续2小时。
1、大概介绍项目
2、详细介绍论文,我的论文方向是交通,就二面面试官稍微讨论了一下,总监大佬让逐一介绍创新点,每一个点讲到逻辑清楚为止
3、介绍比赛,问题都是从比赛,项目展开
4、详细分析xgb原理,怎么选分裂点,为什么用二阶泰勒展开,xgb里面正则项怎么表示。L1,L2正则区别(我用概率跟最优化理论分析完,总监大佬又让我从梯度下降解释为什么L1稀疏),
L1正则如何求梯度。xgb,gbdt区别,gbdt为什么用梯度,用梯度什么好处。最后问了问团队怎么分工。
5、算法题 数组中和最大子序列
问了好多细节,大概就记得这些。