阿里蚂蚁-机器学习算法-一 ,二,三面面经

阿里一面

1.自我介绍下:
我是XXX的硕士,机器学习专业,我研究方向偏向于深度学习;然后我本科是XXX的物联网工程专业,本科做过两个项目:1)基于大数据的股票市场分析 2)基于用户操作的推荐系统 ;研究生阶段目前印象最深是做了两个项目:1)机器人课程作业中的challenge 2)现在正在做的基于model的智能机器学习框架,着重介绍在最后一个,然后问了下实际工作,完成程度,贡献度。最后追问了一个对于物联网的看法

2.hashmap介绍先说了下自己知道JAVA的hash map的用法,python中dictionary也是用hash表实现的:首先利用hash()将key和value映射到一个地址,它通过把key和value映射到表中一个位置来访问记录,这种查询速度非常快,更新也快。而这个映射函数叫做哈希函数,存放值的数组叫做哈希表。 哈希函数的实现方式决定了哈希表的搜索效率。具体操作过程是:

  1. 数据添加:把key通过哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。
  2. 数据查询:再次使用哈希函数将key转换为对应的数组下标,并定位到数组的位置获取value。

但是,对key进行hash的时候,不同的key可能hash出来的结果是一样的,尤其是数据量增多的时候,这个问题叫做哈希冲突。如果解决这种冲突情况呢?通常的做法有两种,一种是链接法,另一种是开放寻址法,Python选择后者。

开放寻址法(open addressing):

开放寻址法中,所有的元素都存放在散列表里,当产生哈希冲突时,通过一个探测函数计算出下一个候选位置,如果下一个获选位置还是有冲突,那么不断通过探测函数往下找,直到找个一个空槽来存放待插入元素。

3.算法:快排的时间复杂度和空间复杂度?平均多少?最差多少?还有那些排序的时间复杂度是O(nlogn)?知道排序中的稳定性吗?我:快排的时间复杂度我记很清楚是O(nlogn),空间复杂度是O(1),平均就是O(nlogn),最差是O(n^2),退化成了冒泡排序;此外还有时间复杂度为O(nlogn)的还有堆排序和归并排序;排序的稳定性知道是在排序之前,有两个元素A1,A2,A1在A2之前,在排序之后还是A1在A2之前。

4.SVM和Logistic Regression对比:首先我介绍了下logistics regression的过程,就是把y=wx+b的结果放到sigmoid函数里,把sigmoid作为一个分类器,这样做的原因是sigmoid函数能把所有范围的值域控制在(0,1)区间内,然后我们把0.5作为一个分类的阈值,大于0.5的作为正类,小于0.5的作为负类。然后SVM是一个利用超平面将数据隔开分类的问题,首先我们在max所有距离平面最近的点的margin,同时subject to y(wx+b)>0,意味着分类正确:

然后:我们可以的到最近点到平面的距离:

我们最后再用拉格朗日乘子式将subjuct to 条件转换成一个等式求解最后的w,b 然后求得最有超平面。我说SVM有很多kernel,这个有点像regulation,面试官说错了,你讲讲kernel是什么干什么用的?我说kernel是把数据把低维映射到高维,因为有些数据在低维不可分,映射高维可以找到超平面去划分,更好准确。

最后说了LR比较方便计算,SVM 高维kernel计算复杂,但是准确。如果数据多,要求实时得到预测结果,用LR;如果数据不多,要求准确率,我选择SVM。另外SVM可以用于多分类,而LR只能用于二分类

5.解决Overfitting、regulation的方法:regulation,我才总结下了,大致主要聊了2点:

1)dropout,介绍dropout的概念啊,问了下train和test阶段的不一样过程细节

主要讲了下test把active function的输出都乘以P,这样就把train和test的输出期望都scale到了一个range,这样才是更加准确的

2)Batch Normalisation:BN,BN的原理,问什么好,好在哪里?

1.降低了样本之间的差异,scale到(0,1)

2,降低了层层之间的依赖,主要体现在前一层的输出是下一层的输入,那么我们把所有数据都scale到了(0,1)的distribution,那么降低了层层之间的依赖关系,从而使数据更加准确

全程聊了一个小时,我人都傻了,一面不是面简历吗?(内心OS。最后问了面试官两个问题:1)我本来跟老板汇报了工作在路上走着,电话就来了,我就说没准备好问了下面试官对我的评价,然后面试官很nice说基本面不错,给我评价偏正面;2)问了面试官的部门工作内容,balala讲了一堆。然后跟我说,后面可能有人联系你,也可能没人联系你,有人联系的话,可能是他同事,

--------------------------------------------------------二面-------------------------------------------------------------

一,介绍自己及项目:主要介绍自己在TensorLayer框架的制作,贡献,太细节了,导致面试官说本来要问我的都说了

二.基础考察:

1.你知道感知野吗?什么作用?你知道卷积的作用吗?你用过池化层吗?有哪些?

当时一脸懵逼,感知野是神马啊?最后再次确认了感知野其实就是在多个kernel做卷积的时候的窗口区域,就是3个33等于1个77的感知大小。

卷积的作用是提取特征,前面的卷积提取类似于人眼能识别的初步特征,后面的卷积是能够提取更加不容易发现但是真实存在的特征。

Pooling 用过,max pooling, average pooling, global average pooling。再问这个两个分别有什么用?

max pooling我蠢到说提取最有特征的特征,其实就是最具有代表性的特征;average pooling提取的是比较general 的特征;global average pooling用来分类的,因为后面网络的加深,full connected layer参数太多了,不容易训练,为了快速准确得到结果,采用global average pooling,没有参数,但是得到的分类效果跟FC差不多。

2. 讲到这里有点尬,你说你做过爬虫,自己写的还是用的框架?

用的框架,现在基本不用java我觉得我还是要补一补,差不多都忘光了,我所做的就是用Xpath找到爬取的元素,然后保存下来,再用脚本转成待用Jason

3.你机器学习的,知道sequence to sequence吗?

我第一反应是RNN,我说RNN没了解,主要我只做深度学习CNN相关工作,大佬呵呵一笑,说你们要补补基础啊

4. 在线编程:

给个题目你写写吧,不用math中的取平法差,判断一个自然数是不是可以开方(时间复杂度尽量低)?

妈耶,第一反应二分查找

一上去尬了写了一个boolean 然后删除,搞了个def开始写函数

最后问了2个问题,他又问了我2个问题:1,(这次是个P8大佬)在杭州,你工作地点介不介意?(我多说了几句话,开了地图炮,真的内心话)2,你作为tensorlayer的contributor,对标Kreas,优势在哪里?他说Kears底层支持好多库caffe2, Pytorch,等等,我说TensorLayer出发点不一样,怎么样比比了一通方正我觉得没逻辑~感觉自己凉了~因为面试官给我回馈就是你要拓展你的机器学习知识面啊啊啊,我一个搞机器学习被吐槽这样。。。

--------------------------------------------------------三面-------------------------------------------------------------

全程50分钟,主要讲的是项目:针对项目提出几个优化问题;

1.对于提供可以自由裁剪pre-train model,怎么保证你输出的前面部分的check point 参数与模型结构 freeze在一起能在新的任务里,表现好?有没有实验数据支撑?

2.你知道depthwise-CNN吗?讲讲具体原理?那1*1的kernel的作用是什么呢?对网络model有什么影响?

3.你还知道或者学习过那些传统机器学习算法?XGBoost?HMM?SVM等等都清楚吗?

4. 你学过那些基本算法?数据结构的运用?

5. 你是哪里人?老家?籍贯?

6.问我大学经历,未来打算,为什么工作?听出来我想先工作,问我后面想不想读博?

交换问题,1.面试官的工作内容。2.对自己的评价及建议:短时间内展示自己最闪亮的部分(第二天进四面,等待通知

#面经##阿里巴巴##机器学习#
全部评论
svm lr都可以用于多分类
1 回复
分享
发布于 2018-08-11 10:05
大佬。。。先存着。。不过我觉得这个机器学习问的偏简单了
点赞 回复
分享
发布于 2018-08-11 02:00
联想
校招火热招聘中
官网直投
看了问得问题和反馈速度,阿里已经预订楼主大佬了,毕竟背景和实力太强大😄
点赞 回复
分享
发布于 2018-08-11 02:34
LR可以变softmax变多分类
点赞 回复
分享
发布于 2018-08-11 14:24
手动赞大佬
点赞 回复
分享
发布于 2018-08-11 22:03
请问收到内推人的二面通知,是否意味着二面的面试官是内推人呢?
点赞 回复
分享
发布于 2018-08-13 17:48
内容很详细呀,感谢分享~
点赞 回复
分享
发布于 2018-08-21 22:13
感谢!
点赞 回复
分享
发布于 2018-08-21 22:14
楼主是北邮果园的嘛???
点赞 回复
分享
发布于 2018-08-22 00:10
楼主收到HR面试了吗,我面了阿里四面之后没消息了
点赞 回复
分享
发布于 2018-08-24 16:07
快排的空间复杂度是logN
点赞 回复
分享
发布于 2018-08-24 20:49

相关推荐

字节核心收入部门,实习+校招+社招,北京、上海、杭州均有坑,内推邮箱:caoxiangyu.codedog@bytedance.com抖音广告技术团队招聘职位&团队描述1、抖音广告全场景全链路优化,包括召回/粗排/精排/混排各模块的整体优化,构建业界领先的下一代广告投放系统2、在超大规模在线深度学习框架下,持续结合前沿技术定制优化,优化CTR/CVR/DeepCVR模型精度,持续提升预估能力天花板3、在海量广告候选下,进行召回&粗排模型及链路优化,结合服务/素材等不同投放标的,不断优化链路漏斗效率4、从整体抖音广告业务出发,深入抖音多业务大混排,全域协同(roi2),长期价值建模,人群转化渗透,用户体验等业务策略前沿探索,促进抖音系各端(抖音/抖音极速版/火山)的全面提收发展5、对于算法&系统&产品全局思考,深入原生&激励&新样式互动等特色业务场景,设计并落地模型策略一体化方案,推进业务全面快速发展6、业界体量top的商业变现场景,业务形态丰富,团队务实氛围好,注重技术导向职位要求1、优秀的编码能力, 熟悉C++和Python, 扎实的数据结构和算法功底2、有深度学习实战经验, 有机器学习算法优化理论的研究经验,有推荐/广告相关领域经验3、数据敏感度高,有策略/业务相关算法的优化经验,熟悉广告/推荐业务策略4、靠谱、敢于突破,不内卷、对技术有执着的追求和热爱4、有国际顶级会议论文、知名github作品等公开成果优先。kaggle, acm等算法比赛获奖者优先
投递字节跳动等公司10个岗位
点赞 评论 收藏
转发
9 296 评论
分享
牛客网
牛客企业服务