0%

面经

2020年快手Y-tech面经

一面:

1、PCA原理,应用
PCA原理是在原有n维特征的基础上重新构造出k维全新的正交特征,PCA的工作就是从原始空间顺序中到一组互相正交的坐标轴,第一个坐标轴选择就是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使方差最大的,第三个轴是与第1、2个轴正交的平面中方差最大的。依次类推可以得到n个这样的坐标轴。通过这种方式获得的新坐标轴,我们发现大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是我们可以忽略余下的坐标轴,只保留前面k个含有大部分方差的坐标轴。
PCA的应用范围有:1)数据压缩。数据压缩或者数据降维首先能够减少内存的使用,其次,数据降维能够加快机器学习的速度。2)数据可视化。在很多情况下,可能我们需要查看样本特征,但是高维度的特征根本无法观察,这个时候我们可以将样本的特征维数降到2个特征或3个特征,这样就可以采用可视化观察数据。3)去除数据噪声。
如何得到这些包含最大差异性的主成分方向呢?通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间中,实现数据特征的降维。得到协方差矩阵的特征值向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵。
2、SVD原理,应用
SVD推导过程
3、SVM
SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔大使它有别于普通的感知机,通过核技巧隐式的在输入空间直接求解映射空间中特征向量的内积,使其成为一个非线性分类器。SVM的学习策略是间隔最大化,可形式化为一个求解凸二次规划问题。
(重点)SVM算法推导过程
4、BN 优缺点 IN
BN的基本思想相当直观:因为深层神经网络在做非线性变换前的激活输入值随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区域的上下限两端靠近,所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。而BN就是通过一定的规范化手段,把层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回到标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就是导致损失函数较大的变化。
BatchNorm的优点:1)极大提升了训练速度,使得收敛过程大大加快;2)还能增加分类效果,一种解释是这类似于Dropout的一种防止过拟合的正则化表达方式,所以不用Dropout也能达到相当的效果;3)调参过程也简单了,对于初始化要求没那么高,可以使用大的学习率。4)可以代替LRN
缺点:需要计算均值与方差,不适合动态网络或者RNN。计算均值方差依赖每批次,因此数据最好足够打乱。
IN的计算就是把每张图片的HW维度单独拿出来归一化处理,不受通道和batchsize 的影响
5、cross entropy和mse区别,求导
交叉熵是用来评估当前训练得到的概率分布于真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。交叉熵通常用作分类问题的代价函数。
均方误差是指参数估计值与真实值之差的平方的期望值,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精度。通常用来做回归问题的代价函数。
6、sigmoid, softmax用途,区别
Sigmoid函数或Softmax函数可以将分类器的原始输出值映射为概率。Sigmoid函数会分别处理各个原始输出值,因此其结果相互独立,概率总和不一定为1。相反,Softmax函数的输出值相互关联,其概率的总和始终为1。
Sigmoid = 多标签分类问题 = 多个正确答案 = 非独占输出
Softmax = 多类别分类问题 = 只有一个正确答案 = 互斥输出
如果模型输出为非互斥类别,且可以同时选择多个类别,则采用Sigmoid函数计算该网络的原始输出值。
如果模型输出为互斥类别,且只能选择一个类别,则采用Softmax函数计算该网络的原始输出值。
7、单链表快排思想
8、概率题,a服从均匀分布(0,1),b服从均匀分布(0,1),求max(a,b)的期望,拓展为n个独立变量,求max期望

二面:

1、cross entropy和mse能否互相替换?
不能。参见问题(为什么分类问题用 cross entropy,而回归问题用 MSE?)
2、多标签分类是否了解, 多标签分类激活函数?
解答
3、单链表快排实现

2019 海康威视

一面

1、faster-rcnn的整个从输入到输出的框架流程?
参见深度学习基础知识.faster rcnn
2、说一下rpn的原理
参见深度学习基础知识.faster rcnn
3、针对小目标的解决措施
(待解决)
4、如何解决样本不均衡的问题
参考答案
5、focal loss原理
参考解答

2019 旷视

一面

1、讲一下SENet的模块,为什么有性能提升,有什么好处
2、讲一下Focal loss 的2个参数有什么作用
3、讲一下FPN为什么能提升小目标的准确率
4、对One-stage的模型有没有了解
5、说一说One-stage和Two-stage两者有什么特点
6、说一说SSD具体是怎么操作的
7、算法题:leetcode.754。一个人从原点出发,可以往左走可以往右走,每次走的步数递增1,问能不能到达一个位置x?如果能,给出走的步数最少的方案?

蚂蚁金服

二面

1、分类和定位的不一致具体是什么
分类是给定一张图片或一段视频判断里面是否包含某种类别的目标
定位是标注出图片中这个目标的位置
检测是标注出这个目标的位置并知道目标的类别是什么
分割是解决每一个像素属于哪个目标物体或场景。
2、Faster-RCNN比起RCNN有什么改进的地方
3、Faster-RCNN如何进行一次计算
4、RoI Pooling如何操作
根据输入的图片,将ROI映射到feature map对应的位置,映射的规则就是把各个坐标除以输入图片与feature map的大小比值,得到feature map上的box坐标。然后将映射的区域划分为相同大小的sections,对每个sections进行max pooling的操作。
5、如果有很长,很小,或者很宽的目标,应该如何处理
采用FPN网络的多尺度预测方式,将高层特征和低层特征进行融合,增强特征的表达能力。
6、FPN具体是怎么操作的
将高层的特征进行两倍上采样和前一层的特征进行逐元素求和,然后将融合的特征输入3x3卷积(消除上采样的混叠效应)得到最后的特征。
7、FPN的特征融合具体是怎么做的
element-wise逐元素求和
8、FPN的特征融合为什么是相加操作呢
add操作可以看做是加入一种先验知识,通过add操作,网络会得到新的特征,这个心特征会反映原始特征的一些特性,但是原始特征的一些信息也会在这个过程中损失。但是concate就是讲原始的特征直接拼接,让网络学习如何融合特征,这个过程中信息不会损失,但是concate会带来的计算量较大,在明确原始特征的关系可以使用add操作,可以节省计算资源。
9、Soft-NMS是如何操作的
10、Softmax是什么,公式是什么样的
参考答案
11、Softmax的梯度是什么
12、BN原理
13、Pytorch的卷积是如何实现的
解答
14、还知道哪些传统计算机视觉的算法
(待解决)
15、SIFT原理,SIFT如何保持尺度不变性的
(待解决)

三面

1、说一个比较熟悉的网络
(项目中需准备)
2、对移动端的网络有没有什么了解
(待解决)
3、Focal loss怎么操作的
4、IoUNet怎么操作的
(待解决)
5、Soft-NMS怎么操作的
6、FPN的相加操作有没有尝试其他操作
7、对SSD和YOLO有没有什么了解?对SSD做过什么实验
8、对attention有什么了解
9、对跟踪有没有什么了解

四面

1、说一下focal loss的原理
2、介绍一下目标检测有哪些方向,最近的一些新的进展
3、说一下Soft-NMS的原理
4、说一下视觉的attention
5、平常是如何学习的
6、python多线程有了解吗
(待解决)
7、引用和指针的区别
(待解决)整理python相关问题
8、有什么想问的

五面

1、说比赛
2、比赛的数据集数量是怎么分布的
3、小目标占比如何
4、为什么说SENet泛化性好
5、SENet为什么效果好
6、FPN是怎么提升小目标检出率的
7、项目是一个什么问题呢
8、大目标如果有2个候选框和gt重合应该怎么处理
9、BN是解决什么问题的
10、BN为什么有效
11、什么时候开始接触这个方向的
12、学过哪些课程
13、学过机器学习吗

商汤

一面

1、InceptionV1为什么能提升性能
2、RPN哪里也可以提升小目标检出率
3、为什么说resnet101不适用于目标检测
4、小目标在FPN的什么位置检测
5、sigmoid和softmax的区别
6、detnet原理
7、一道算法题:输入一个文件,等概率输出某一行,只能顺序遍历
8、手写nms
(参考答案)[https://zhuanlan.zhihu.com/p/64423753]

二面

1、项目:最大的创新点是什么
2、SENet原理
3、Focal Loss 原理
4、Faster RCNN原理
5、用的roi pooling 还是roi align
6、IoUNet的原理
7、有了解过单阶段的检测器
8、说一下SSD的原理
9、还知道哪些轻量级的检测器
10、知道大网络用来学习小网络的方法吗
11、对分割有没有了解
12、用的什么机器(GPU)
13、比赛排名多少
14、用的什么模型

三面

1、什么时候开始接触CV课程
2、有没有上过CV的相关课程
3、SENet原理
4、SENet接在ResNet还有Inception的什么位置呢
5、IOUNet能有多少提升
6、NMS和soft-NMS原理
7、比赛遇到了什么不work的地方
8、假如一个图片中有一个很大的目标还有一个很小的目标,你会怎么处理呢
9、多尺度训练如何设置
10、为什么设置长边为固定的1600呢
11、介绍一下SSD和Faster-RCNN,说一下异同点
12、Faster-RCNN的回归目标是如何定义的
13、Faster-RCNN用的什么loss
14、smooth L1 loss为什么更有效
15、SGD、Adam之类优化的原理
16、BN、IN、LN、GN原理,BN为什么有效
17、Python有哪些常用的库报一遍
18、说一下使用Pytorch对cifar10数据集分类的整个代码流程,构建模型的过程是怎么样的
19、会C++吗
20、github的常用操作:上传、合并、分支之类的
(待整理)
21、linux的常用操作:查看文件大小、删除文件、查看文件行数、假如文件中有很多文件,每个文件中又有很多文件,如何删除全部文件
(待整理)
22、SiamRPN原理
23、轻量级模型
(待解决)

精锐视觉上海研究院

二面

算法题:1、给定一个乱序的数组,给定一个整数target,要求找出数组中所有和为该target的两个数。2、给定一张100元纸币,兑换为20,5,1元的纸币,要求将100元纸币正好兑换为上述面额的纸币,且每种面额不少于一张,写代码实现总共有多少种兑换方法。
2、生成式模型和判别式模型
(待解决)
3、解释最大似然估计和最大后验概率以及区别
4、神经网络中激活层的作用
5、faster rcnn中为什么要用3x3的巻积核代替5x5和7x7的巻积核。
6、防止过拟合的方式有哪些,请写出不少于五种。
7、请用深度学习的方法设计一套手写签名的识别方案。(不会)
8、请自主设计一套人脸识别方案,详述数据集、backbone、训练策略、模型测试等。
9、opencv的cascade级联分类器的工作原理以及具体的实现方式,训练级联分类器的注意事项。
(待解决)
10、HOG,LBP,Haar特征
(待解决)
11、简单介绍一下deep_sort算法

三面

1、问了一个深度学习的项目,项目简介,自己负责的部分,技术原理细节,创新点,难点。后续改进方案。
2、详细介绍一下deepsort算法,以及和传统跟踪方法的区别。
3、faster rcnn原理
4、详细解释deep_sort算法,与online track的方法有什么区别,目标跟踪丢失怎么办

聚时科技

一面

1、图像处理,中值滤波和平滑滤波的区别
2、说几个机器学习常用的算法,SVM的目标函数是什么,是如何实现分类的,KNN的原理以及分类流程
3、常见的目标分类的基础网络有哪些,mobilenet和shufflenet是如何实现卷积加速的。

二面

1、给了一个7x7的灰度图像和一个2x2的卷积核,分别写出腐蚀和膨胀运算后的图像。
2、手写代码实现二维卷积过程,不得调用TF、Keras等深度学习库。
3、手写代码实现一个8邻接连通域算法,不得调用opencv等图像处理库。
4、写出三个常用的机器学习算法,并介绍其原理和使用场景。
5、请写出如些解决样本不平衡问题。

腾讯

1、YOLO V2 V3你对哪个熟悉,讲一下细节实现
2、多尺度问题
3、anchor基础知识
4、人脸识别现在常用算法
5、语义分割到实例分割怎么做
6、GAN是否了解,如何通俗的讲其原理
7、PCA原理LDA原理
8、SVM+HOG
9、XGBoost
10、CNN、RCNN、FRCNN,有可能问你其中一个细节的关键
11、TensorFlow这些框架你谈一下看法以及对其他框架的了解
12、现在机器学习、深度学习这么火,你有什么看法
13、机器学习、深度学习你对他们的理解是什么
14、Relu比Sigmoid使用多的原因
15、Loss不升反降的原因,如何解决
16、SSD细节
17、Linux 权限的意义
18、块操作的操作的步骤以及快捷方式

搜狗

一面

1、RCNN系列的算法流程和区别;
2、Fast RCNN中 bbox 回归的损失函数什么;
3、解释 ROI Pooling 和 ROI Align;
4、Mask RCNN中 mask branch 如何接入 Faster RCNN中;
5、解释 FPN (没细看,面完补的);
6、优化算法举例和他们的区别(SGD、SGDM、RMSprop、Adam);
7、训练不收敛的原因有哪些;
8、简述 Inception v1-v4;
9、简述 CNN 的演变;
10、BN 的作用和缺陷,以及针对batch_size小的情况的改进(GN)

旷世CV岗

1.自我介绍,项目介绍
2.FCN结构介绍,上采样的具体操作
3.空洞卷积原理,deeplab v1 v2的改进
4.focal loss介绍, lovasz loss数学原理
5.一道题,计算卷积操作的浮点计算量,比较简单
6.介绍下RPN的原理
7.mobile net
8.unet的缺点