旷视 2019 春季算法实习生面试总结

20190314 一面

  1. 自我介绍

  2. 项目介绍 2019 春季实习生招聘之项目介绍

  3. 了解过哪些 CV 领域

  4. 一张图片多个类别怎么设计损失函数,多标签分类问题

  5. SVM、决策树优缺点,非线性回归用什么方法,L1、L2 正则化区别

  6. 链表归并快排 LeetCode 148——排序链表

  7. 反转链表 LeetCode 206——反转链表

  8. 实习时间,想做什么项目,检测、分割、行人重识别

  9. 骰子掷出 1-7 的均匀分布

第一次掷骰子的点数为 \(X_1\),第二次掷骰子的点数为 \(X_2\),如果\(X_1=X_2=6\),则重掷,令 \(X =((X_1-1)*6 + X_2) \% 7\),则 \(X\) 即为取值范围为 1-7 的均匀分布。

紧接着二面

  1. 自我介绍

  2. 介绍项目

  3. ResNet 的特点

引入跳跃连接,有效地解决了网络过深时候梯度消失的问题,使得设计更深层次的网络变得可行。

  1. 用 BN 没有,BN 有啥优点,这里问各种细节

    详见论文阅读笔记 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

  2. 第一个项目看你用了 Dlib,什么原理,我只调库。人脸融合效果怎么评价,答辩时候人为主观评价。 设计一个人脸识别模型,讲了讲 Siamese 网络来做人脸识别。怎么求一个三角形外接圆,三条边垂直平分线的交点即为圆心,圆心到顶点的距离为半径

  3. 第三个项目,什么是 one-shot、zero-shot,区别

    zero-shot 就是说测试集中的类别都是训练集中没有见到的;one-shot 就是说测试集中的类别在训练集中很少或者只能见到一次

  4. 梯度下降法和牛顿法区别

    梯度下降法:利用一阶导数
    牛顿法:利用二阶导数,收敛速度快;但对目标函数有严格要求,必须有连续的一、二阶偏导数,计算量大

  5. Adam 和 SGD 区别,RMSProp 优化算法

  6. RNN 怎么反向传播

  7. TensorFlow 怎么在网络结构实现一个 if 判断,定义一个布尔值

  8. SVM 的损失函数,特点,对偶问题求解,用朗格朗日乘子法将有约束优化转化为无约束优化, 直观解释一下拉格朗日乘子法

  9. 给定一个 [0, 1] 的均匀分布,求圆周率

用这个分布产生一个坐标 \((x, y)\),则这些点均匀分布在一个边长为 1 的正方形内,如下图所示。由几何概率可知,落在四分之一圆内的概率为 \(P = \frac{\pi}{4}\),因此我们只需统计出所有点里面落在圆内的点数即可估计出圆周率。

旷视 2019 春季算法实习生面试总结

  1. 编程求数组中的 Top K 大的数 LeetCode 215——数组中的第 K 个最大元素

总结

大概答出百分之七八十吧,写代码还是不够熟练,一周后收到感谢信,被加入人才库!

一起找实习的其他同学面试题

一面

1、目标检测项目

  • 阀值是怎么选取的?取多少?答:0.75
  • 阀值的实际意义是什么?答:IOU 值,然后仔细解释
  • 如果预测出的框过多了怎么办?答:调整 IOU 阀值,然后解释
  • FPN 在网络中是怎么加的
  • ResNet-50 的选用,因为背景比较单一,没有必要选取更深的网络

2、常规深度学习问题

  • BN 和 L2 正则化
  • 哪些原因会导致梯度消失。答:网络深度、激活函数

3、编程题:

  • 判断两个链表是否相交。
  • 求一个数列中两个元素的最大和,找到这个两个元素。(Top K 问题)

二面

  • 为什么项目中用 Faster R-CNN+FPN,Faster 和 YOLO 对比;为什么叫单步法,两步法?
  • R-CNN系列:R-CNN,Fast R-CNN,Fast R-CNN。大概说了一下每代改进。又问了RPN网络。
  • C++,问了 map 等是用什么实现的。答:红黑树。(面试官:好了,我也不问你红黑树了),那你在想想还有其他实现的方法吗?平衡二叉树,差不多说了一下。可能是跳表?数据结构和算法之——跳表

  • STL 中 vector 是怎么实现的?我答了用数组实现,然后常数时间访问,内存分配。内存不够在原有基础上扩大一倍分配。又问内存减小的时候是怎么做的,我懵逼了。

  • 问堆和栈。我不太会堆,忘记了。然后说了说栈的特点,怎么用的。又问了一下,在计算机系统中,栈有哪些用处,具体解释了一下。我说了线程和进程。堆和堆排序堆的应用数据结构之——栈

  • Linux的一些常用命令:我说了几个。他又问怎么按时间顺序打印出文件列表,按文件大小打印文件列表

  • 编程:两个字符串序列的最长公共子序列。动态规划经典题目

  • 开放问题:让我设计神经网络模型(由于硬件限制,Faster 这种网络不让用)
    数据:许多图片,这些图片是由很多网络分割的,就像棋盘一样。每一个格子中可能存在一条小斜线(因为是直线,所以实际由两个端点就可以确定)。要求设计一个网络来检测出这张图片中的这些小短线。
    要求:自己定义图片的尺寸,网络的模型,loss,评价指标。问的比较细,每一步的实现细节,整得我一愣一愣的。

  • caffe 实现一种新的自定义网络

获取更多精彩,请关注「seniusen」!

旷视 2019 春季算法实习生面试总结

上一篇:Minimum Number of Arrows to Burst Balloons


下一篇:Zero-Shot Hyperspectral Image Denoising With Separable Image Prior