20190314 一面
自我介绍
项目介绍 2019 春季实习生招聘之项目介绍
了解过哪些 CV 领域
一张图片多个类别怎么设计损失函数,多标签分类问题
SVM、决策树优缺点,非线性回归用什么方法,L1、L2 正则化区别
链表归并快排 LeetCode 148——排序链表
反转链表 LeetCode 206——反转链表
实习时间,想做什么项目,检测、分割、行人重识别
骰子掷出 1-7 的均匀分布
第一次掷骰子的点数为 ,第二次掷骰子的点数为 ,如果,则重掷,令 ,则 即为取值范围为 1-7 的均匀分布。
紧接着二面
自我介绍
介绍项目
ResNet 的特点
引入跳跃连接,有效地解决了网络过深时候梯度消失的问题,使得设计更深层次的网络变得可行。
- 用 BN 没有,BN 有啥优点,这里问各种细节
详见论文阅读笔记 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
第一个项目看你用了 Dlib,什么原理,
我只调库
。人脸融合效果怎么评价,答辩时候人为主观评价
。 设计一个人脸识别模型,讲了讲 Siamese 网络来做人脸识别
。怎么求一个三角形外接圆,三条边垂直平分线的交点即为圆心,圆心到顶点的距离为半径
。第三个项目,什么是 one-shot、zero-shot,区别
zero-shot 就是说测试集中的类别都是训练集中没有见到的;one-shot 就是说测试集中的类别在训练集中很少或者只能见到一次
- 梯度下降法和牛顿法区别
梯度下降法:利用一阶导数
牛顿法:利用二阶导数,收敛速度快;但对目标函数有严格要求,必须有连续的一、二阶偏导数,计算量大
Adam 和 SGD 区别,RMSProp 优化算法
RNN 怎么反向传播
TensorFlow 怎么在网络结构实现一个 if 判断,
定义一个布尔值
SVM 的损失函数,特点,对偶问题求解,
用朗格朗日乘子法将有约束优化转化为无约束优化
, 直观解释一下拉格朗日乘子法给定一个 [0, 1] 的均匀分布,求圆周率
用这个分布产生一个坐标 ,则这些点均匀分布在一个边长为 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 实现一种新的自定义网络