蚂蚁金服—人工智能部算法实习生面试记录

一、前言

3月底参加了蚂蚁金服的笔试,一周后约面,现将本次面试的一些问题记录如下,也方便秋招复盘。有相同经历的小伙伴希望可以一起交流。

二、面试内容

形式:电话面试+线上编程(1h+)
1、自我介绍,项目+两个比赛。
2、项目中用到了Mask R-CNN,介绍一下Mask R-CNN,有哪些创新点?

  • Mask R-CNN承接自R-CNN系列,用于实例分割。主要有两点创新:在Faster R-CNN结构基础上,添加Mask预测分支;提出改良的ROI Align替代Faster R-CNN中的ROI Pooling,不再进行取整操作,使用双线性插值,使得为每个ROI取得的特征能更好地对齐原图上的ROI区域,解决ROI Pooling操作中两次量化造成的区域不匹配问题。

3、针对Mask R-CNN网络有哪些可改进的点?

  • 提到“Mask Scoring R-CNN” CVPR 2019,在原有Mask R-CNN基础上添加一个额外的分支MaskIoU head模块,来给Mask打分,从而预测出更准确的分数。有效解决原Mask R-CNN中,Mask分割质量由检测分支的分类置信度决定,而实际Mask的质量是instance mask和ground truth之间的IoU作为评判。
  • Learning in the Frequency Domain” CVPR 2020,提出频域学习的方法,仅使用一半大小的输入数据,就能提升Mask R-CNN的图像分割结果。

4、还了解哪些图像实例/语义分割网络?

  • 知道FCN和Unet。竞赛里面使用较多的是Mask R-CNN和Unet,效果都很好,但Unet没有用过。
  • PS:以上两个问题回答都一般,后续准备好了会补充上。

5、最新的一些论文有了解哪些?

  • 刚打完天池的比赛,还没去详细了解2020年CVPR等一些最新检测类的论文,19年的论文了解一些。

6、19年了解哪些论文?

  • 主要是一些基于Anchor-Free的检测网络,两个CenterNet、ExtremeNet、FCOS、FoveaBox。因为kaggle中用到了CenterNet:Objects as Points,后面也是据此来展开提问。

7、介绍一下CenterNet网络,原理是什么?创新点是什么?

  • 将目标作为Bbox的中心点,基于关键点估计的方法,将图像传入全卷积网络,得到的热力图峰值点即中心点,每个特征图的峰值点位置预测了目标的宽高信息,并回归到物体的位置,方向等其他属性,不需要NMS类后处理
  • 结合比赛提了两点:沙漏网络Hourglass的backbone对姿态估计很有效;比赛基于单帧图像的三维车辆位姿估计,采用Focal loss作为heatmap的损失函数,解决正负样本失衡问题,采用两套方案。方案一使用CenterNet中心点预测的损失函数Focal loss定义;方案二采用原始Focal loss定义式,即对交叉熵损失赋予一权重,降低易样本的影响。(PS:虽然都是Focal loss,但是还有略有差别,在比赛中也证实原始Focal loss定义才能有效提升检测精度,结合CenterNet中心点预测损失函数部分的公式定义能快速理解。)

8、比赛中用到了ResNet,介绍一下。ResNet中第一个卷积层为什么使用7*7的卷积核?

  • ResNet主要是解决随网络的加深,出现训练集准确率下降的问题。提出“identity mapping”和“residual mapping”,让深度网络后面的层至少实现恒等映射的作用。大的卷积核代表着大的感受野,从原图中提取的特征信息也越丰富。但面试官又说,3个3x3大小堆叠的卷积核感受野与7*7相同。表示不会,下来会及时了解。
  • 多个3*3大小的卷积核堆叠可在保证感受野的同时增加非线性计算,并且可以减小参数量
  • 先通过一个7*7大卷积提取广泛特征,尽可能保留原图中更多的原始特征,而不会大幅增加实际的权重数,后面的residual block可在这个普适特征上更细致化地提取特征,一般只出现在输入层。(PS:下来查的资料,有知道的小伙伴麻烦告知一下。)

9、比赛中ResNet和ResNext的模型融合,怎么做的?

  • 先采用ResNext50小backbone进行网络调优,后采用ResNet101大backbone进一步提升精度,3模型混合直接对网络预测的6个自由度值取平均。

10、编程题

  • 类似LeetCode上面:1111. 有效括号的嵌套深度的进阶版。

可能存在一些遗漏,后面再补充(:

三、总结

掌握常用数据结构和算法很重要!刷题很有必要,有扎实的基本功才是最大的加分项。简历里面项目、比赛准备的还算充分,面试官只是抓住项目或者比赛当中某一两个点去延伸,没有很深地抠细节,但是需要精炼和组织语言,自己明白也得保证让面试官听明白。简历里面项目比赛的内容一定要非常熟悉,最好能延伸地了解一点,比如某个检测网络的优缺点,针对改进的网络和方法等等。

你可能感兴趣的:(面试总结)