这是一篇不太专业的算法工程师面经,但愿能给非科班想要从事机器学习工做的同窗或学弟学妹一些建议,同时也回馈给予我很大帮助的咕泡学院。目前拿到的offer有:网易、三星、联想、vivo、斗鱼、拼多多、猎聘等等。面经分为两个部分:虐心面试实录和一点人生经验。先上干货再BB,你们能够针对性的选择本身须要的部分,祝你们最后都能拿到心仪的offer啦。
虐心面试实录java
- 网易邮件事业部 数据挖掘工程师 offer
整数翻转,如何处理越界问题
C++多态,静态联编和动态联编,虚函数表
GMM原理,增大数据量是否会更好
模型融合如何作
股票买卖问题,一次买卖和两次买卖
提高树的思想,随机森林和提高树的区别
EM算法数学原理
SVM推导,对偶性的做用,核函数有哪些,有什么区别
分布式计算框架了解哪些
- 百度商业平台部 数据挖掘工程师 二面挂
python两个每行都是数字的文件合并,去重。
shell编程,编辑文件。
进程与线程的区别
卷积神经网络介绍
SVM的推导
大文件求交集,如何解决哈希以后小文件仍是放不进内存
堆排序代码
连续和最大问题,如何证实?
3sum问题,时间复杂度
最短路问题,第K条最短路
- vivo 人工智能工程师 sp offer
bp算法介绍,梯度弥散问题。
svm介绍,优缺点是什么,lr介绍,区别是什么
lr与线性回归的区别
若是要预测房价,用什么模型
若是要预测房价,而且知道一个房间的房型信息,如何构建模型
sigmoid 函数的应用有哪些,为何?
列举十种经常使用的神经网络模型
语音识别模型有哪些
如何识别一我的在喝酒,须要几个模型
- 苏宁 算法工程师 备胎池凉了
卷积神经网络中卷积如何实现,激活函数的意义,损失函数有哪些,初始化参数如何选择
用过哪些深度学习框架,TensorFlow中的session是什么,session和interactivesession的区别
如何实现卷积层权值共享
如何保存模型,读取已有的模型
用过哪些深度学习模型,区别是什么。
了解哪些寻优算法
softmax损失函数是什么
c++ 的 const,static做用
new,delete原理
强制类型转换cast之间的区别
- 腾讯IEG 应用研究 二面挂
svm推导,核函数的体现,经常使用的核函数有哪些
alexnet介绍
过拟合的缘由,有哪些避免过拟合的trick
1G的文本统计词频,输出频率最高的1000个词
手写topk的代码,快排。代码还能如何优化,若是要上线的话还须要作哪些处理
若是分类样本的标签只有必定的几率可信,如何处理
过拟合的缘由,有哪些防止过拟合的方法
mysql查询一段时间中某个用户的数据
- 三星电子中国研究院 机器学习研发工程师 offer
笔试:水管工之类的算法题,求最大深度
模型评价如何作,其中存在哪些问题
决策树算法有哪些,随机森林和GBDT的区别
降维方法,PCA原理
哈夫曼树在机器学习中的应用
文本挖掘算法了解哪些
人流量预测系统如何设计
profession笔试:最优的进程调度算法,至少用多少个cpu
英语自我介绍,口语渣猝不及防
- 联想研究院 模式识别研究员 offer
EM算法数学推导,如何证实算法收敛性
异常值的影响,如何消除
全部了解的机器学习算法有哪些,框架性讲述
梯度降低算法了解哪些,优劣势是什么
二叉树中序遍历,递归和非递归
linux操做指令了解哪些,文本处理指令有哪些
一亿个数的文件,如何分红两个文件a,b,使得a文件的数都小于b,同时文件大小要差很少。
- 拼多多 算法工程师 offer
均匀分布如何生成正态分布
SVM原理,支撑向量越多越好仍是越少越好
二叉树深度遍历,时间复杂度和空间复杂度
二维排序矩阵搜索
项目中的长时间推广问题,如何考虑样本之间非独立的影响。
编程题,矩阵中的最短路,有门有钥匙。动态规划加状态向量。
贝叶斯公式,实际如何计算,如何解决精度问题。
- 五八集团 算法工程师 二面挂
字符串转数字
svm核函数有哪些,如何选取,手写表达式
降维方法介绍
c的虚函数,虚函数指针和虚函数表存在哪儿
Linux 文件权限修改,参数介绍
模型的比较如何作
随机森林和提高树
卷积神经网络原理
如何避免网络的过拟合
如何网络调优
- 猎聘 算法工程师 sp offer
Python 的数据结构有哪些
tuple 和set的区别,set的底层实现
hash表的算法有哪些
svm推导,一直到序列最小化求解。核函数如何体现,有哪些类型。
构建分类器的整个流程是什么
数据清洗方法,缺失值处理方法,降维方法
pca原理推导
决策树算法的介绍
二维排序数组搜索
如何构建欺诈交易识别的模型?
不均衡的数据如何分类
- 新浪移动 数据挖掘工程师 录用排序
归并排序,二维排序数组搜索,中序遍历重构二叉树
svm推导,为何要用拉格朗日乘数法,对偶问题是什么
KKT条件都有什么,如何求解svm的最优化问题
数据不均衡如何解决,抽样获得的分类准确率如何转换为原准确率。
逻辑回归原理,推导求解方法。
为何选用对数极大似然函数做为优化目标,用平方损失有什么问题。
逻辑回归对特征有什么要求,是否须要作离散化,离散化的好处与坏处。
逻辑回归的参数是否能够分布式求解,如何作分布式。
有三辆车,到达时间随机,a车五分钟一趟,b车十分钟一趟,c车十五分钟一趟,求平均等待时间
一点人生经验
我是一名文科类院校的硕士(面试的时候不止一次被问是否是学计算机教育的),本科是信息专业。硕士科研是模式识别方面的,其实说数据分析更贴切,基本属于浪费青春(建议各位喜欢计算机的学弟学妹:珍爱生命,远离文科院校)。同时也由于老板的24小时贴心看护,毫无悬念的没有实习机会,mmp。本身虽然很是喜欢机器学习,可是秋招以前的状态是:编程基础只会python,算法设计全靠调包,深度学习基本不会,分布式框架彻底不懂。到七月份的时候,整我的丧到必定境界,感受基本要告别互联网了。
笨鸟先飞,七月中旬就开始准备秋招了,主要是打比赛、看书和刷题。八月底投简历,投过的公司很是多,然而收到面试的不多。庆幸本身比较能吹,效率还比较高,最后也拿到了一些心仪的offer。过程很痛苦,可是还好有个好收获。总结一下这三个月本身的一些经验感悟,但愿对你们有帮助。由于本身是非科班出身,从此也要疯狂补习,早日跟上大佬步伐,也但愿多跟大佬们交流呀。python
秋招准备mysql
硬实力:项目经验,竞赛,简历。
对于本身的项目,数学逻辑上必定不能有漏洞。多多反思,想一想本身模型的优点,以及换其余模型会有啥问题,伪装有面试官提问本身回答。基本上作到这些,项目上就不会有问题。由于我没有过实习经验,因此对企业关注的技术了解的不多。个人建议是,必定要参加竞赛,不管名次。找工做以前,跟寝室的老铁一块儿参加了百度的机器学习竞赛,虽然没有名次可是真的是积累了不少经验。也正是由于这个比赛,对图像领域有了个概况的了解,动手能力也提升了很多。记住,企业要求的东西不会也不要紧,至少有个归纳性了解,同时展示本身的学习能力和思考深度就行啦。
简历方面,记住一条:本身作过什么不重要,关键是企业想要什么。建议你们都以一个面试官的角度看待本身的简历,或者找找师兄师姐。我如今回头看本身的初版简历,感受像是要去考博士。。linux
- 软实力:编程基础,手撕代码,机器学习。
从八月到如今,leetcode刷了185道题,基本是middle+少许hard,牛客上刷了剑指offer和一些基础题。我本身的感受是,剑指offer用来入坑真的赞,leetcode真的要用心刷。边刷题边总结,基本刷到了150题的时候,就会进入一个百毒不侵的状态。后期基本上就不怕笔试了,手撕代码也很快。
机器学习方面,主要是刷小蓝书《统计学习方法(李航)》和西瓜书《机器学习(周志华)》,经典的算法建议都手推一遍。重点关注损失函数,为何这样定义,有哪些优缺点,多思考方法间的比较。说实话,其实最后均可以总结出套路,后面有空我再总结下。。
面试c++
项目介绍
基本上每次面试开始都是项目介绍,建议事先准备一个项目介绍,聊的时候也不会慌乱错过项目亮点。最好是准备两个版本,一个是简单介绍思想,一个是详细介绍包括细节和公式。在讲本身项目的时候,必定要突出技术难点以及本身的思考,最好有个清晰的框架性说明。针对项目能够预先准备一些问题,而后再讲述的时候能够故意留几个坑,挑起面试官兴趣,趁火打劫让其入坑,这样也更能体现本身对项目了解的深度,岂不美哉。
对于竞赛方面,其实我本身没有啥名次,方法也没有创新。这种状况就尽可能突出本身对于领域的了解,对于经常使用基础模型原理的掌握程度,以及本身在应用时遇到的问题。我在竞赛中是用的只有inception和resnet的微调和融合,以及数据增广。工做很浅显,可是讲述的时候结合实际把inception和resnet的trick原理和优点讲清楚就行。面试
- 基础知识
手撕代码的时候,建议先讲清楚思路再写代码,记得分析时间空间复杂度。若是有多种思路能够分析比较一下。再就是,不要慌,慢慢写,手不要抖。。
机器学习算法的介绍,我通常分为两步:第一步介绍算法基本思想,损失函数,适合于解决哪一类问题,有哪些缺点。若是面试官还有兴趣,就开始第二步推公式。在明确每一步的目的的前提下,强烈建议把公式背下来直接写答案,例如svm拉格朗日函数求导以后的结果,当场求导很浪费时间,不如用来多展示本身。在面试官提问的时候,能够暗中总结一下面试官喜欢的类型,若是一直问数学推导方面的问题,就多讲讲算法原理,若是问了不少实现方面的问题,就多讲讲算法实现方面的trick。这样更有针对性,也更能让面试官霸霸开心。
- 开放性问题
对于设计类问题,其实多看看面经就能知道主要的类型,多看看他人的解题思路同时结合本身擅长的算法一块儿思考,表述时逻辑清晰突出要点就行。我的建议:不要抢答,也不要边想边答。能够先在纸上记下问题中的关键点,以及对应的解决方案。能够提出多种方案,互相比较最后获得最好。让面试官看到你的思考,可是不要出现那种讲到一半讲不下去的尴尬状况。
对于人格类问题,由于文科院校因此认识很多心理学大佬,投射之类的基本套路都naive。表现出对技术的热诚和领导力就行。这种题说话越多越错,你须要的只是热爱技术的态度和坚决的眼神。
- offer的选择
offer选择无非就两个方面的问题:1. 公司环境,行业前景,技术发展。2. 面向薪资的编程。我也不了解不少公司,渣渣就不bb了。建议你们与熟悉的师兄师姐聊,同一届的同窗视野可能没有那么远。我的以为,技术发展虽然重要,钱也不是关键问题,有的时候也须要多关心身边的人呀。人生还长,有些事情不用那么着急的。
- 再BB两句俗话说的好!找工做这种事情,三分靠打拼,七分靠锦鲤!非科班确实很难,因此心态很重要!不要被眼前的不幸击倒,眼前的困难都不是困难!后面运气差的时候还多得很呢。。 总之,必定要调整心态,心态爆炸的时候要多多放松,有妹子抱妹子,没妹子抱舍友,不能被情绪左右。不管结果如何,都要冷静总结。”那些没法将你战胜的,终会使你更强大。“做者:王非池java学习干货面试经验,不按期分享+Q群:282711949。若是你正在找工做或者刚刚学校出来,又或者已经工做可是常常以为难点不少,以为本身java方面学的不够精想要继续学习的,想转行怕学不会的,+Q群:282711949 了解咨询java继续学习。更有免费视频等你来领取。