反馈,阿里机器学习面经,也是对我研究生期间的一个总结分享

先做总结

像我们这样的渣硕,能进入阿里,运气与内推必须兼得,内推来自导师的一位师弟,我非常感谢他,让我省去了在笔试纠缠的时间,以及把我推向合适的岗位。内推的另一个好处就是及时掌握面试的进度,当然,从笔试一步步杀上来的大佬,我是非常佩服的。
而面试时你的策略、口才,还有推理逻辑能力决定了运气降临时你是否能把握住机会。还有就是,实习以及工作经历可以加分很多,我给大家的建议就是能在研二春招时进入实习,转正或其他大厂的秋招会容易的多。
找工作,有时候还是看机遇,比如我这个实力,去面正儿八经海康大华的机器视觉岗位,估计会被秒的渣渣。另一种情况就是,我的一位能力非常不错的同学,就是因为沟通问题,光是倒在hr面上就有2次,今年3月份就开始准备找工作了,直到11月才定了offer。

写在前面

阿里的这次面试,历时2个多月,4轮面试,时间如此之长是我始料不及的,毕竟小伙伴去网易,前后上下午还是2天就面完了,拿了offer。在此期间我也准备了不少面经,有操作系统、计算机网络、数据库等,有刷算法题,有机器学习基础的,最终发现,死记硬背没有用,靠的还是平时积累,以及你解决问题的思路和能力。

准备的资料目录:

  • xgboost模型
  • CNN卷积神经网络
  • RNN递归神经网络
  • 传统机器学习笔记
  • L1、L2正则
  • caffe框架
  • 操作系统
  • 计算机网络
  • 排序
  • 算法题
  • 数据库
  • B树、B+树、红黑树
  • 数据结构
  • 收集的一些面经

15年

本科毕业后,我去了某大型国企做自动化,一年后业务调整,转岗去做网络相关的业务,深感自己基础薄弱,又爱好计算机,于是14年年中,决定考研后,我每周都申请出差,甚至一个人做2个人的工作,为了就是白天干活,晚上有自由的时间呆在酒店里看书(出差的话,时间自由支配,不需要上下班,不需要打卡什么)。
15年春,过完年的我,每天下班回家还沉迷在dota2不可自拔,直到单位高升的大领导找到我谈话,想把我借调去他那干活,我才想起来还有考研这一回事。回到位置上一查,嘿嘿,还不错。虽然我对学历不是很看重,但是当我看到屏幕上370多分的成绩单,想到之前没有勇气拼一把报浙大,还是挺遗憾的。不过也不错,好歹是母校的研究生。
拒绝了领导和老大请辞,交了离职书,在亏了半年的奖金后,我回到了学校。后来我才知道,学历对应届生的影响,比我想像中的要大。而学校与学校之间,差距是明显的,这也导致我研究生期间异常辛苦。

  • 能去好学校就去好学校,减少许多波折,学!历!非!常!重!要!。当然,有时候计算机专业除外,感觉计算机行业并没有那么看重学历,可能是因为缺码畜吧,能力还是很重要的。不过学历不好,敲门的时候会困难许多

学习与项目

这一块就不多写了,导师下面只有我一个人想做深度学习,第一年真的是补基础,上课时就抱着mac自学,回寝室搞环境经常弄到1-2点。后来课题组新申请了项目,整个项目只有我一人,装caffe被虐,看文献被虐,写python被虐,找数据被虐,其中之苦无处诉说。收获就是,我对整个系统从数据获取、特征选择、数据预处理、网络选择、调优、评价等的流程非常清楚,在面试的时候带来了很大的好处。
忠告:实验室好与坏差距就在于传承;好的实验室是让你站在师兄的肩膀上去探索,导师的项目都是技术前沿,从你进入学习到独立承担任务,在团队支持下都会有一个较为平顺的过渡期。而我是一个人在泥地中摸索,撞了墙还不知道咋回事,非常打击个人信心。不过我也非常感谢这段经历,工作不是都一帆风顺的,虽然我一度想放弃,最终坚持了下来。

kaggle这样的竞赛经历非常加分,非常非常非常有用。机器学习、深度学习等项目最大的难点其实就来自于真实的数据,真实的应用场景,处理这些数据的过程到最终建模,评价,就是一个很好的成长

17年6月

就这样到了秋招季,比起外面世界里,那些实习经历丰富、本硕985、211计算机专业、简历光鲜的优秀学子们来说,我只是一个工作了几年,因为热爱代码而跨专业考回母校的双非渣硕。像BAT这样的大厂,是不在我们这种渣硕考虑之内的,虽然学校里比我渣的人更多,但我分析了一下,自己弱势明显:

  • 本科非计算机,面试官印象不好
  • 学校非985、211,难过hr的简历关
  • 我只希望去机器学习、深度学习的岗位,要求高、岗位少
  • 投简历时,不考虑开发岗位,原因是我java基础更差,没写过一行java代码,什么spring,什么虚拟机,都不知道。

在试着内推了一下海康的算法岗,连简历都没过的情况下,我对找大公司岗位的热情降到了谷底,最终给自己的定位就是去创业公司快速成长,到时候再跳槽。暑期忙于小论文的修改,看着身边同学参加BAT的笔试、面试、被刷,我居然非常庆幸,没有在这上面浪费时间。而同时,我也非常迷茫,回到学校后,再次就业并不清楚自己实力到底如何,想着至少找个公司试试吧。就这样,发完论文时,已经是8月底了,而各大厂的秋招,已经进行了大半。

9月中旬

听闻一起做外包项目的小伙伴,拿了网易的java岗offer,着实为他感到高兴。这时而我的导师,也在微信里发了这么一句话:"xxx,阿里招人,我向我的一个师弟推荐了你,你好好准备下,尽快联系他",伴随着一张微信名片。看到时,我犹豫了,因为我没有信心,而且我也没准备,甚至连面经也没看过。既然老师给了机会,我也努力一下,最多也不过是和同学一样,被拒,就当增加一次经历。

说起来,我的导师其实是个非常nice的人,也很认真,跟着他去给本科生上课(一周大概3-4门课),他从来都是慢慢说,慢慢写,直到写满整个黑板,而不是放ppt对着念。研究生期间他虽然不允许大家出去实习(为这个事我曾经和他闹的比较紧张),但是对我们的学术上所有事情都亲力亲为,每一个同学的论文他都会仔细修改过,也鼓励过我继续做算法,我非常尊敬他。

建议

但是对于不读博的研究生来说,我们最终还是要面对找工作的事情,面向工资编程的对吧。那么我建议在不和老师闹僵的前提下,尽量去企业实习(6个月最好,3个月时间太短),学术上效率要高,毕业的要求都达不到的话,实习再多也没用不是

  • 研一期间不要顾着完成作业就行了,已经不是本科生了,尽早跟上师兄师姐的研究进度,争取能完成小论文初稿
  • 研二上学期把导师的项目做一部分,然后小论文发表出去
  • 研二下学期,参加大厂、专业相关小厂的实习生招聘,和导师沟通,争取6个月的实习时间。当然,这期间不能一点都不顾实验室,实习生工作任务不会那么繁忙,在公司里有空时就做做导师的项目。
  • 转正、或冲刺一搏秋招,研三上学期完成大论文初稿和导师项目。
  • 春招、毕业答辩,正式offer,报道。

时间是过的很快的,就这么几段时间,过了,那就过了。我就是因为对比其他同学来说,活干的多一点,和老师沟通也比较多,虽然一度比较僵,最后导师还是帮我推荐了工作机会。

面经

发了简历,过了许久,2周、3周?我在路上接到了一个电话,开始了正式的面试历程:
当时的记录如下,全凭记忆吧,比较简洁:

一面

  • 1.什么是有监督训练,什么是无监督训练,举一个无监督例子(一开始没有进入状态,我居然忘了什么是无监督算法,我就扯了下卷积神经网络一开始提取的图像特征是无监督的,举例:无监督k-means)
  • 2.怎么解决过拟合问题:决策树剪枝、svm松弛变量、L1,L2正则化,dropout (面试官补充了一个 Early Stopping,其实这个方法在项目中使用还是比较多的,但是我不清楚叫early stopping,其实就是评价训练正确率、测试正确率曲线,提早结束训练)
  • 3.L1,L2是什么,有什么区别,在什么情况下使用L1,什么情况下使用L2
  • 4.什么是交叉验证
  • 5.还有什么方法可以减少过拟合(从数据预处理角度,比如降维:PCA,还有就是平衡不同类数据的权重,图像中减去数据集的均值)
  • 6,如何解决数据缺失的情况(丢弃、补0、补均值、补固定值、补预测值,通过我之前做的实际项目,分别阐述这样做可能会造成的后果)
  • 7。LR、SVM、决策树 的区别(一开始问我区别,我讲了LR和SVM对中心点分类的区别,面试官提示了一下,不用讲这么深,从模型复杂度,激活函数等方面来阐述)
  • 8.SVM中需要解决的重要数学问题是什么(拉格朗日对偶问题 ,具体的数学内容我说不太了解,面试官说没关系),其实是应该是把有约束条件的解转化为无约束条件的解,梯度下降法使用了什么重要的数学依据(函数的局部最小最大值)
  • 9.为什么要做数据归一化,在梯度下降时有什么好处(加速梯度下降,减少梯度下降时的摆动,根据下降曲线进行讲解,很容易得出)
  • 10。什么是前馈传播,什么是反向传播,推导一下反向传播算法,(手写一个三层神经网络,w11,w12,w13,w21,w22,w31。我说的时候有点把自己绕晕了,不过bp其实理解了就这么回事,实际使用时就是一行代码)
  • 11.有哪些特征选择的方法(不太理解意思,跳过了。后来想了想,的确不太了解,其实是特征工程,怎么评价选择的特征优劣,比如卡方检验、相关系数检验、pca等),这个问题我回答不出来,原因是我主要做图像相关的项目,特征工程是没有用过的。
  • 12.简述下kmeans算法,如何选择k的个数(说了和业务相关),k-means++是怎么确定k的个数,面试官提示k和业务无关(++没接触过,不是很了解,他说没关系,http://www.cnblogs.com/dudumiaomiao/p/5839905.html)。
  • 13.GBDT和随机森林的比较(BGDT是指梯度提升树)(刚好复习的时候看到过这个题,就大概说了下,一个boosting,一个是bagging,处理方式是偏差和方差等)
  • 14.模型评价指标 ROC、AUC(我回答的不是很好),然后又问我精准率和召回率是什么,用0,1样本来说明(我手写推导了一下TP、TN等)
  • 15.有没有用过tensorflow,(我说用过,框架不太好改,虽然有keras的封装,自己后面主要还是手写算法,或者用pytorch)
  • 16,DNN也就是深度学习,问我深度学习正确率很高,是否是真的很有能力。(我从计算资源和时间成本方面做了下解答,意思是不能盲目相信深度学习,大样本下的深度学习,其实就是包含了各种可能性的一种超强分类器。面试官是觉得深度学习非常不错的。不过我和我导师的研究结果,还有根据生物神经科学相关的一些研究,还是觉得生物的学习并不是深度的,人脑的功率只有20瓦,而且脑神经的信息传播比较简单,传播速率也并不快,深度学习还没有触摸到人脑的本质)

面试官很友善,一开始我还没有进入状态,他会解释他问这个问题想问什么方向,过程中还会给我提示,让我也超常发挥了一些。

一面是压力面,问题很广,很多都没有准备过,全凭自己理解回答

二面

一面离二面过了很久,因为内推时间太晚了,一面结束的时候,已经9月底了,马上又赶上国庆,秋招差不多结束了。想着既然面试了,就把所有面试都走走完吧,于是耐心等待。
一周之后,国庆回来,二面,二面没做纪录,全凭记忆吧:

  • 自我介绍
  • 选择一个自己印象最深刻的项目,基本上从项目展开
  • 随时会打断,问你这么做的原因,为什么不那样做
  • 项目大概讲了40分钟,基本上方方面面都说到了,后面问了几个排序算法以及时间复杂度,时间就差不多了
  • 现在在用什么语言,愿不愿意转java
  • 之前为什么离职,想要考研,为什么想读计算机,职业规划是怎么样的
  • 还有什么问题要问他的

这个面试官应该是这一组的负责人吧,没有问特别多的基础知识,一直在考察我的工程能力,运气也挺好的,也是一个非常nice的面试官,说我本科不是科班出身,学习能力挺好的,并没有特别在意我本科的专业。

二面主要聊项目,这个时候面试策略与逻辑就很重要了,如果只是简单介绍,问一句答一句,面试官会发现时间还很多,就会问一些基础问题,很容易问到你的知识盲区,然后挂了。如果从项目出发的话,你表达能力+,逻辑能力+,就很容易得到面试官的认可

三面

部门内的面试通过后,继续走流程,几天后:三面,是交叉面,感觉上应该是淘宝那边的业务算法同学。
因为也没问太多基础题,所以全凭记忆:

  • 1.自我介绍
  • 聊项目,这次项目感觉没有上一次有激情了,巴拉巴拉,所以互相聊完呢,发现时间才过了20多分钟,我心里一紧
  • 卷积神经网络的结构,怎么调参的
  • 场景题:怎么去判定淘宝上好评与差评是不是刷的。确认了一些数据来源以后,讲了文本分析,通过监督学习的方式筛选好评与差评,面试官继续问还有没有别的方法,我想了下:通过IP地址、时间等特征的聚类,分离一些特别明显集中的好评,那么就是刷的。面试官问:还有没有继续改进的可能,我:通过交叉数据,停留在页面上的时间,搜索的关键字,找过几个同类产品等特征。
    这个问题是我最狼狈的一个问题了,因为完全没有接触过,全凭自己去猜
  • 有没有参加过什么比赛 (非常遗憾,没有。前文我也大概提过,15年的时候,深度学习还不是很热,实验室就我一个人做这个方向,项目压力又大。所以后面的同学,多去参加一些比赛,哪怕最后照搬前几名的思路,也会有很多收获)
  • 学习深度学习的途径是什么? 逼乎(哈哈),一些公众号,还有每年整理的会议论文。
  • 你有什么问题? 我就问题上一个题目,发现我和面试官的思路差不多

这个面试官比较严肃,有点怕怕的感觉。

HR面

三面过后,我知道了自己的评级,运气比较好,A-。不过比较遗憾的是,内推的师兄明确说HC没了,每一轮面试其实都是要走流程的,所以我的阿里面试之路也就到此为止,看了一下自己的状态,面试中,看来是呆在简历池里了。我心态也比较好,毕竟大厂不在我的计划之中,这次面试收获很多,我还是比较知足的。

到了11月初,面过了一个比较看好的小厂,岗位也是算法岗。不过对面的hr不太厚道,要求我先去实习,说offer要等我转正再谈,我想想也好,免得浪费我三方次数,自己一直也没有实习经历,趁到过年前还有4个月,可以去实习下,于是就开始了实习之路。公司还是挺好的,也非常有潜力,和家里人沟通了一下,做好了毕业后在这的准备。

直到。。

幸运女神的降临,11-28日,收到阿里hr小姐姐的电话,帮我安排了第二天现场HRG的面试。一些大佬拒了阿里的offer,加上一些调整因素吧,我的简历被部门捞了起来。懵逼中,也没准备hr的面试,第二天就这么去了阿里西溪园区。

  • hr面就一道题,具体内容我就不说了,基本上就是和你聊聊各个时期的经历。我也就一五一十把各种情况说了一下,包括当初从考研到决定考研的慎重决定心里路程说了一下,然后具体说了什么也不太记得了,就不放了。
  • 你有什么想问的。 我:部门情况,岗位相关业务场景是哪些。
  • 然后,30分钟左右,hr说就到这吧,我:非常感谢,再见!我就出来了,然后,我就回去上班了,有了之前2个多月的经历,我发现自己异常平静。

录用意向书

阿里的流程的确是非常的长啊,2个礼拜差不多吧。收到了意向书,至于最终还会不会出意外,已经不重要了,对我来说这个结果已经是非常满意了。这次面试是对我3年前那一次选择最好的肯定,也给了我继续在这条路上前行的动力。

意向书

完。

此面经与大佬的经历无法相比,不可借鉴,纯分享

#阿里巴巴#
全部评论
很好的一篇文章,其实自己慢慢萌生了毕业后边工作边考研的想法了!看了楼主的一些领悟之后,受益良多!
点赞 回复 分享
发布于 2017-12-14 00:39
楼主很励志
点赞 回复 分享
发布于 2017-12-14 08:52
问下楼主,项目怎么准备??
点赞 回复 分享
发布于 2018-04-05 07:02
哪个部门,文娱吗?
点赞 回复 分享
发布于 2017-12-13 20:44
膜拜大佬
点赞 回复 分享
发布于 2017-12-13 20:47
膜拜大佬
点赞 回复 分享
发布于 2017-12-13 22:29
已经成为大佬
点赞 回复 分享
发布于 2017-12-13 22:41
点赞 回复 分享
发布于 2017-12-13 23:22
恭喜楼主 膜拜大佬
点赞 回复 分享
发布于 2017-12-14 06:29
大佬
点赞 回复 分享
发布于 2017-12-14 10:27
恭喜大佬
点赞 回复 分享
发布于 2017-12-14 10:34
膜拜大佬
点赞 回复 分享
发布于 2017-12-14 10:35
膜拜大佬!
点赞 回复 分享
发布于 2017-12-14 12:05
收获很多,我也是自己一个人摸滚打爬,我也会向大佬学习,加油
点赞 回复 分享
发布于 2017-12-14 20:57
厉害👍方向也是挺重要的
点赞 回复 分享
发布于 2017-12-15 13:22
bm
点赞 回复 分享
发布于 2017-12-15 14:44
一个人走这条路很辛苦,各种误打误撞
点赞 回复 分享
发布于 2017-12-15 15:12
日后回过头来看,之前的所有努力付出都是有回报的。楼主好棒~
点赞 回复 分享
发布于 2017-12-15 15:25
膜拜大佬!
点赞 回复 分享
发布于 2017-12-15 15:31
先收藏,一会儿看,谢谢大佬
点赞 回复 分享
发布于 2017-12-30 10:53

相关推荐

满意offer一个就好:springboot学完就差不多了,面试的话,数据库操作系统计算机网络这些基础问的比较多,要去大厂redis也要会,消息队列可以晚些学没关系(我是进了腾讯云智才学的)
点赞 评论 收藏
分享
评论
72
641
分享
牛客网
牛客企业服务