百度 北京 机器学习/数据挖掘 1+2+3面
先说说面试感受,一二面面试官人也是很nice,但是可能面的人实在太多的,下午1点去,面一场差不多就1个小时,等就差不多1个小时,体能消耗挺严重的,不过有现场提供的饮料跟零食,可以稍微补充一下,最后面完都7点多了。
下面的面经说完问题后,比较确定的答案会在问题后的括号写上,但是不确定的就不写来误导大家了。
————————————————————————分割线—————————————————————————————————————
一面:
先来3分钟的自我介绍,之后就开始聊项目,看到有deep learning相关的项目,就问了deep learning
相关问题:如何减少参数(权值共享、VGG的感受野、GoogLeNet的inception
),激活函数的选择(sigmoid->ReLu->LReLU->PReLU
),为什么之前没有深度网络出现(数据量不够+机器性能),由数据引申到数据不平衡怎么处理(10W正例,1W负例,牛客上有原题),如何防止过拟合(增加数据,减少模型复杂度->正则化),说明L1L2正则的效果与为什么形成这种情况(
L1正则稀疏,
L2正则平滑,之后说明就是画图说明正则化
),推导SVM(只是推导基础就可以了,这个比较简单)。最后是做题,非常经典的0-1背包问题。
二面:
依然是自我介绍,之后就是手写k-means的伪代码(就6行),之后让我挑一个熟悉的机器学习算法说一说(这次我还是选了SVM,之后手写推导,这次一直写完对偶),之后就是大数据题目,1KW句子算相似度(还是那套分块+hash/建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。
三面:
一上来就是一道数学题,让推极限(最后面试官说是时间复杂度推导),之后是对于同分布的弱分类器,求分类器均值化之后的分布的均值跟方差;接着写一下信息增益的公式。之后就是问机器学习相关算法,说了一下bagging跟boosting,之后问了GBDT(没做过,只能说说大体思路)。
最后是编程题,这个比较简单,将字符串连续重复出现的字符删到只剩一个,这个可以用双指针,时间复杂度n,空间复杂度1。之后就是c++的数据成员的可见性,继承到子类之后的可见性(这里我是分了不同继承方式讨论的),子类友原函数对父类private能否可见。之后问数据结构,堆是怎么调整的,给定二叉树的先序跟后序遍历,能不能将二叉树重建(不能,因为先序:父节点-左节点-右节点,后序:左节点-右节点-父节点,两者的拓扑序列是一样的,所以无法建立),如果给出一个二叉搜索树的后续能不能建立(可以,因为只要将遍历结果排序就可以得到中序结果)。
三面直接被吊打了,听说是123面的分数加起来算是否通过,希望能赚赚RP求过吧
#百度##算法工程师#