计算机视觉及深度学习岗位应聘问题汇总

本文旨在收集在面试过程中问到的,以及从网上收集到的有价值的问题,目的是为了从问题出发主动整合知识,在校招有限的时间内抓住重点,避免漫无目的地看书复习。这些问题尽量给出自己的回答,如果暂时没有回答或者需要较长时间整理资料的,需要后续再补充。

###K-means的算法流程?与KNN的区别?
K-means的基本算法流程:

  1. 初始化k个聚类中心 c 1 , c 2 , . . . , c k c_1,c_2,...,c_k c1,c2,...,ck
  2. 对于每个样本 x i x_i xi和每个聚类中心 c j c_j cj,计算样本与聚类中心之间的距离 d i j d_{ij} dij
  3. 对于每个样本 x i x_i xi,基于其最小的 d i j d_{ij} dij把其分配到第 j j j个类 C j C_j Cj
  4. 对于每个类 C j C_j Cj,计算其所有样本的均值作为新的聚类中心,重复步骤2和步骤3直至样本点所属的类不再变化或达到最大迭代次数

K-means与KNN的区别:

  • K-means是无监督学习算法,KNN是有监督学习算法
  • K-means有明显的训练过程(求聚类中心),KNN在学习阶段只是简单的把所有样本记录
  • 在测试阶段,对于K-means,新的样本点的判别与聚类中心有关,即与所有训练样本有关,对于KNN,新的样本点的判别只是与最近邻的K个样本有关。

###在目标检测算法中,two stage的算法比one stage在检测小物体上更有效,此说法同意吗,为什么?
基本上同意这个说法。
要说明这个问题主要从感受野的角度去看,one stage的方法,对于SSD,其采取多个特征图进行分类,但由于依赖网络中比较深的层(特征图),感受野很大,因而小物体检测不准确。同样,对于Yolo,由于在方法设计中就把原图分块,即设定了最后用于判断的特征图尺寸,其感受野也很大,因而对小物体判断也不准确。
相对于one stage方法要求同时分离前景和背景以及做出分类,two stage的方法由于proposal的存在可以先用简单的结构分出前景和背景(此时感受野小,特征图分辨率高),再通过深层网络做进一步分类和精修,提高准确率。
one stage的方法也有针对这个问题进行过优化,SSD增加相对不那么深的特征图层作判断,以减小感受野增加分辨率,但层数不深的特征图的判别能力有限,无法大幅增加准确率;Yolo v3增加了FPN,用多尺度特征来判断,增加了对小物体判别能力;RetinaNet也是one stage方法,用了FPN判别,此处对小物体检测更有效,另外其设计了focal loss的训练方式,此方式可认为把two stage中proposal达到的正负样本平衡以修改损失函数的方式达到类似效果,提高了训练效率和整体的准确率。

###梯度下降法与牛顿法的区别与优劣性
主要的的区别:梯度下降法是一阶,牛顿法是二阶
牛顿法相对于梯度下降法:
优点:二阶比一阶收敛速度快;
缺点:对目标函数严格,要求目标函数二阶可微,Hessian矩阵正定;需要计算Hessian矩阵以及它的逆,计算量大。
参考:https://www.cnblogs.com/shixiangwan/p/7532830.html

###描述Canny算法的流程
以下是简述:

  1. 先用高斯滤波器进行图像模糊(一般边缘检测算法都需要先滤波降低对噪声的敏感)
  2. 计算图像的梯度幅值图像和角度图像(计算梯度即提取边缘,参考其它边缘检测算法;计算角度是为步骤3要用)
  3. 对梯度幅值图像进行非最大值抑制(目的是为了细化边缘)
  4. 用双阈值对边缘进行选择和连接(主体思想是把弱边缘连接到强边缘上)

以下问题来自知乎:https://zhuanlan.zhihu.com/p/25005808,提出自己的想法和答案
###CNN最成功的应用是在CV,那为什么NLP和Speech的很多问题也可以用CNN解出来?为什么AlphaGo里也用了CNN?这几个不相关的问题的相似性在哪里?CNN通过什么手段抓住了这个共性?
CNN是用于挖掘数据之间的空间相关性(相对于RNN用于挖掘时序相关性),所以不管是NLP,Speech还是AlphaGo,只要数据之间存在空间相关性,就可以使用CNN。而CNN最成功的应用在CV是因为在图像数据中的空间相关性最明显,像素之间存在两个维度上的空间相关性。
回答CNN通过什么手段抓住此共性这个问题,实质上是回答卷积和池化的特点。主要手段有局部连接(local connectivity)权值共享(parameter sharing)池化(pooling)(跟原文回答有点出入,觉得多层次是深度学习的特点而不是CNN的特点)。局部连接和权值共享有效地减少了网络的权值参数,抑制过拟合,同时保持了原始数据之间的空间联系。池化是下采样的一种方式,只取数值最大的特征,减少参数并且在空间上对原图物体保持平移不变性。

###什么样的资料集不适合用深度学习?

  1. 数据集太小。数据集太小时,用深度学习提取出来的特征非常容易过拟合,没有泛化能力,因而不及传统的机器学习方法。其本质是样本空间太稀疏,不能反映总体空间的分布,因而用深度学习得到的模型会过拟合。
  2. 数据之间没有局部相关性。深度学习对于结构化的数据提取特征有非常好的效果,但对于没有结构化的数据,即数据之间不存在局部相关性,如可能存在统计关系等,此时用深度学习就不是很合适。

###激活函数选用什么,有什么好处,为什么会有这样的好处。

1)sigmoid:
表达式: f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
求导: f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x))
特点:增强0附近的梯度,放大信号,梯度计算方便,但对非敏感区域会饱和,造成梯度消失
2)tanh:
表达式: f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=ex+exexex
求导: f ′ ( x ) = 1 − ( f ( x ) ) 2 f'(x)=1-(f(x))^2 f(x)=1(f(x))2
特点:与sigmoid函数相似,另经过原点,不会引起在原点的偏移
3)Relu:
表达式: f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
求导: f ′ ( x ) = { 0 x &lt; 0 1 x &gt; 0 f&#x27;(x)=\begin{cases}0 &amp; x&lt;0\\1 &amp; x &gt; 0\end{cases} f(x)={01x<0x>0
特点:单侧抑制,增强稀疏性,避免梯度消失
4)Softmax:(不算激活函数,但在这里一并总结了)
表达式: a i = e z i ∑ k e z k a_i=\frac{e^{z_i}}{\sum_k{e^{z_k}}} ai=kezkezi z i , a i z_i,a_i zi,ai分别表示第 i i i个节点的输入和输出
特点:用于多类分类问题,将输出归一化,方便计算基于概率的loss
求导:这里的求导主要是softmax loss的反向传播梯度,因为常考,具体步骤参考
https://blog.csdn.net/qian99/article/details/78046329,原博里描述链式求导时累加号表示有点有小问题,但过程和结果是对的,最好手动推一遍,这里直接给出答案: ∂ C ∂ z i = a i − y i \frac{\partial C}{\partial z_i}=a_i-y_i ziC=aiyi

###为什么很多做人脸的Paper会最后加入一个Local Connected Conv?

###对所有优化问题来说, 有没有可能找到比現在已知算法更好的算法?

###Dropout怎么做,有什么用处,解释;用贝叶斯机率说明Dropout的原理

###何为共线性, 跟过拟合有啥关联?

###广义线性模型是怎被应用在深度学习中?

###什么造成梯度消失问题? 推导一下

###不同的权值初始化方式以及其造成的后果。为什么会造成这样的结果。

###为什么网络够深(Neurons 足够多)的时候,总是可以避开较差Local Optima?

###样本方差与总体方差的关系。
https://blog.csdn.net/fuming2021118535/article/details/51290320
注意点:样本方差的估计量的期望等于总体方差,样本方差的计算中,分母除以n-1而不是n。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值