20190314 一面

  1. 自我介绍

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

  3. 了解过哪些 CV 领域

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

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

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

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

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

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

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

紧接着二面

  1. 自我介绍

  2. 介绍项目

  3. ResNet 的特点

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

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

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

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

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

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

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

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

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

  2. RNN 怎么反向传播

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

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

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

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

  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」!