秋招经历 | 一个名校跨专业的算法研究生的几十场面试

参考目录:

  • 跟谁学

  • 阿里

  • 网易互娱

  • 作业帮

  • 阿里

  • 快手 机器学习工程师

  • 拼多多

  • 网易互联网

  • 网易游戏

  • 商汤

整个经历是这样,我一直对自己图像处理CV不太自信,而且大家都说CV内卷严重,所以就一开始退成目标找ML的工作,但是机器学习工程师屡次碰壁。后来无意中面了CV后发现问的问题也挺简单的。所以在某一个时间节点之后都开始面试CV岗位,然后成功率大幅提升。其实不要光听当上传言,CV岗位没有那么内卷的感觉。

这里分享的面试经历只是我在秋招中的一小部分,秋招前前后后面试了几十次吧(拿到offer的不能公开、有的我也忘记及时记录后来就忘记了),其实大家问的问题都差不多,都是重复相同的东西。个人感觉,我在【机器学习炼丹术】中整理的一些知识点,至少已经覆盖了我自己面试时候回答的70%的内容了。

我也不是什么大佬,跨专业学了一年AI没论文没实习就参加了几个竞赛就赶鸭子上架了,有工作能混口饭吃就行了。(海外读研就一年)面试最后有大厂的offer,也有小厂的offer。但是不管去哪一个,都希望大家可以好好考虑,不负年华。

我是炼丹兄,一个Top学校的跨专业的应届研究生,不是什么集卡大佬,就是一个在灰飞烟灭的战场中苟且的普通人。

跟谁学

  1. 项目

  2. LightGBM和XGBoost的区别

  3. GBDT模型和XGB的区别

  4. LGB做了哪些优化

  5. 为什么选择他们的公司

阿里

  1. 项目

  2. XGBoost的并行优化的两种方法;

  3. LightGBM的优势

  4. 比赛中和top3的方案的区别,如果让我重新做这个项目,我会做出哪些优化。

  5. 处理时间序列的模型有哪些

  6. 对优化方法是否了解。牛顿法和梯度下降法。

  7. 如何处理过拟合问题

  8. 如何处理梯度爆炸问题

  9. 模型的参数过大会导致什么问题,怎么解决

  10. 如何处理样本不均衡的问题

  11. 在研究生期间的项目

  12. 算法题1:一个数组找到其中的和最大的子数组

  13. 算法题2:一个数字中找到其中所有不重复的元素

  14. 开放题:假设有1000个人同时定了外卖,有100个骑手,你要如何处理这个问题。

网易互娱

  1. 自我介绍

  2. 项目介绍

  3. linux了解吗?回答不了解,面试官说那我不问了

  4. 问你个计算机基础知识,知道C语言的大端和小端吗?不知道

  5. 知道IO设备读写速度哪个快吗?不知道(到这里三连不知道让我非常难受)

  6. 数学题:每一次随机抽取0,1,2,3随机一个数字,然后抽取k次出现两个相同的数字。这个k的期望是多少?我在面试官的引导下,算出来的结果两次都是错的。凉的更厉害了

  7. KNN和K-means的区别?一个有监督一个无监督,一个迭代一个查找

  8. BN层和LN层的区别?一个图像一个序列处理,LN可以batch_size=1但是BN不可以。

  9. 什么情况下BN和LN的使用情况相同?这个我还真不知道,就想当然的回答:在图像事先经过means/std处理之后,在batch_size为1或者较小的情况下,两者的效果相近。(我也不知道对不对)

作业帮

  1. 算法题1:秋招经历 | 一个名校跨专业的算法研究生的几十场面试_第1张图片

  2. 算法题2:还有一道题是,找到一组数据中的最长递增子数组。比如:【1,2,4,2,5,3】,最长递增子数组是【1,2,4,5】

  3. CART决策树中可以对同一个特征进行两次分类吗?

  4. CART决策树如何处理类别变量和连续变量

  5. 遇到正负样本不均衡要如何处理?

  6. 后来跟面试官讨论作业帮现在在做的事情,其实还是非常有意思的。先是OCR提取,然后要用NLP理解题意。实际情况中要处理千分类问题。实际场景还是非常有挑战性的!

阿里

  1. 项目讨论。依然是LGB那个项目。

  2. 先问LGB的histogram直方图优化,为什么降低精度了,有的时候华能提高预测效果?我回答的是因为相当于增加了一个正则化,造成模型效果的提升。

  3. 在回归任务中,为什么对y做一个变换,比方说增加了一个log,可以提高决策树的预测效果?这个问题一开始没有想明白,就说在神经网络中经常会用这样的方法,因为防止网络参数出现个别过大的情况,从而造成过拟合。后来经过老师的提示,发现决策树其实有一样的效果,通过变换来增强决策树对异常值的容忍程度。

  4. 实际场景问题,有多件商品,预测商品的销售量。但是商品之间会存在依赖关系,比方说一个商品的销量高了,他的互斥品的销量就会下降。

快手 机器学习工程师

  1. 自我介绍+项目

  2. 样本不均衡的处理方法 之前文章讲过了

  3. 随机森林中随机的意义?随机对数据进行样本降采样和特征降采样。

  4. 卷积层的缺点?反向传播更新参数对数据的需求量非常大;卷积的没有平移不变性,稍微改变同一物体的朝向或者位置,会对结果有巨大的改变,虽然数据增强会有一定缓解;池化层让大量图像特丢失,只关注整体特征,而忽略到局部。比方说,在识别人脸的时候,只要人的五官同时出现,那么就会认为这是人脸,因此按照泽中卷积池化的判别方式,下面两种情况可能会被判断成同一图片.秋招经历 | 一个名校跨专业的算法研究生的几十场面试_第2张图片

总之,CNN最大的两个问题在于平移不变性和池化层。5. 为什么在图像中用最大池化层而不是平均池化层?

这个我不太确定,当时的回答是:平均池化层会让特征图变得更加模糊;最大池化层反向传播中,计算量会小于平均池化层;最大池化层会增加一定的平移不变性和旋转不变性给卷积网络。

根据相关理论,特征提取的误差主要来自两个方面:

  1. 邻域大小受限造成的估计值方差增大;

  2. 卷积层参数误差造成估计均值的偏移。

一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。

  1. 随机森林中bagging的比例为什么是61.8%

  2. 卷积网络感受野怎么扩大

  3. 什么模型需要数据标准化?数据标准化的目的是什么?

  4. 如果模型欠拟合怎么办?

  5. 模型中dropout在训练和测试的区别?

  6. 算法题:数组的回文遍历

拼多多

  1. 项目(机器学习分类预测和DeepFake人脸检测)

  2. EfficientNet的特点在哪里?说出来了

  3. 手撕BN层前向算法。大概写出来了

  4. python的线程和进程的区别?不会

  5. SVM和逻辑回归在分类上的区别?不会

  6. 有什么人脸检测的数据集?不会

  7. YOLO训练的数据集是什么。ImageNet和VOC2007

  8. Kaggle的GPU内核之类的?不会

  9. CNN参数初始化的方法。我说了Xavier,然后均匀分布,0初始化,高斯分布初始化。突然发现什么都不会,感觉凉了。但是其实过了hh。

网易互联网

  1. 项目 deepfake视频识别

  2. 除了问项目的细节之外,还问到了EfficientNet模型的特点。以及这个模型和之前的模型的区别。

  3. 在运行时间受限制的情况下,模型复杂度和数据复杂度如何权衡。

  4. 项目 机器学习的项目。

  5. 问道了LGB的优点和改进,我简单的说了和GBDT之间的共同点,然后说了和XGB在速度上的优化,就是直方图做差加速和GOSS和EFB等

  6. 问了一个反转链表的题。我当时直接把所有链表用list存起来然后反转,柑橘这样子也没有开辟很多的空间,毕竟list存放的是object的地址。。

网易游戏(电话面)

  1. 三个项目都问了一遍

  2. 防止过拟合的办法

  3. dropout在训练和测试的区别,这个之前忘记在哪个面试也问过一样的问题,这次可不会出错了。

  4. BN层的原理,老生常谈的问题了。

  5. 基于项目中的centerNet,问了一个损失函数为什么使用L1Loss,换句话说,L1Loss和L2Loss在生成模型或者超分辨率问题中的区别?这个我没说上来,面试官很友好,告诉我L2Loss的话,可能会生成更模糊的图片。

  6. pytorch和tensorflow最大的区别是什么?这个问题给予我了近期学习一个极大的正反馈。最近在公众号上整理《小白学PyTorch》的时候,第一课就是说“浅谈动态图和静态图”,然后给面试官立刻整了一段。

  7. 还问了LSTM和RNN的区别。对循环网络用的不多,而且好久没复习这个了,一开始挺蒙蔽的。然后突然意识到,LSTM之所以叫做LSTM,中文是长短期记忆,所以是解决RNN记忆周期过短的问题,通过LSTM中的细胞状态,来存储长期的记忆。

  8. LSTM中使用的激活函数是什么?这个我其实想不起来LSTM那个三个门的那个结构图了。就说了tanh,然后面试官说就这?就这?我加上了sigmoid才算过关。他又问为什么要用sigmoid。这个其实我没有想明白,他解释道这个是为了将输出限制在0到1之内,三个门对细胞状态的修改,都是一个百分比的修改。而且限制到0和1可以避免梯度爆炸的问题。

  9. 还问了PPO好像,强化学习中的内容。但是强化学习我学的不系统,只会用了DQN,然后Q-learning的一些细节也不了解。强化学习这个问题算是GG了。

  10. 算法题是:Top-K问题,用推排序;以及路径问题的A*算法(这个我其实忘记了,说了一个临时想出来的基于启发的深度搜索遍历的解法)

整体来说,这个面试官特别友好,也挺健谈。而且你不会的题目他会先说没事,这个不重要他就问问,然后给一个解答,这个面试让我一整天心情都不错,面试体验在经过的几十次面试中排的上前三。

但是TM面试完半个月没消息了,淦。

商汤

  1. 先问了一个MobileNet和EfficientNet的特点,我就这之前对这两个的理解,就直接说了说特色。MobileNet的倒残差结构和Efficientnet的复合缩放系数;

  2. 问了我VAE中的一个变分推断,但是这个我知道但是没有详细了解;

  3. 问了我到底有没有训练过模型,我说很少,我没有GPU所以没有用过ImageNet这样的大数据集,一般是做微调,但是训练过一个目标检测任务的CenterNet。

  4. 问在训练的时候,学习率是怎么变化的,我说一般是从大到小,但是一般训练有一个warm up的概念,学习率是从小到大再到小的过程;

  5. 问我了解什么模型?我就说从VGG到resnet到efficientNet这个图像处理的基本模型,然后YOLO和Faster CNN这两个体系的目标检测模型也都手撕过,然后最后MTCNN人脸检测模型。

  6. 问了目标检测模型中怎么解决类别不均衡问题的,我说用何凯明大神的Focal Loss。主要思想是降低类别多样本的损失和降低易分类样本的损失,关注少样本和难样本;

  7. NMS非极大抑制的一个情况。简单说就是选取置信度最大的候选框,然后把和这个候选框IoU大于一个阈值的其他候选框的置信度置零。

  8. 代码题:写五个特征图,经过五个卷积层,然后输出cat拼接起来的代码,可以用PyTorch。挺简单的,写了一个模型类,然后用ModuleList创建5个卷积层,不细说了。

读者,你好!我们已经建立了微信交流群,欢迎对AI感兴趣的朋友进群!

你可以加我的微信,邀请你进群!

你可能感兴趣的:(网易,人工智能,深度学习,java,机器学习)