整理了CV方向面试的惯用主题
3359 www.Jian Shu.com/p/9310 b 60 d0da 3
Giou
比较Boosting与Bagging的异同
这两个都是综合学习算法,是将多个弱学习器组合起来制作强学习器的方法。
Bagging :从原始数据集中按轮抽取训练集,训练得到k个弱学习器,通过投票得到该k个弱学习器的最终分类结果。
Boosting :各轮根据上次分类结果动态调整各样本在分类器中的权重,通过训练得到k个弱分类器。 他们拥有各自的权重,通过权重的组合得到了最终的分类结果。
2 .没有监督的学习有拟合吗?
存在。 我们可以使用没有监控学习的几个指标,或者人为地评价模型的性能,判断是否过度适合。
3 .什么是掉头交叉验证?
将原始数据集分为k个子集,其中一个作为验证集,其余k-1个子集作为训练集。 像这样进行一次训练和验证称为交叉验证。 重复交叉检验k次,每个子集进行一次验证集,得到k个模型,将k个模型加权平均后的结果作为评价整体模型的依据。
4 .关于掉头交叉验证,需要注意什么?
k不一定越大越有效,选择k越大训练时间越长的k时,必须考虑最小化数据集之间的方差。 例如,2分类任务采用将原始数据集减半的2折交叉验证。 在这种情况下,如果训练集全部为a类,而验证集全部为b类,则交叉验证的效果将非常差。
5 .关于二分类问题,将超过阈值t的情况定义为正例,否则定义为负例。 现在,增大t的话,正确率和召回率会有什么变化?
正确率=TP/(TPFP )、召回率=TP/(TPFP ) )其中,TP表示将正例正确分类为正例的数,FP表示将负例错误分类为正例的数,fn表示将正例错误分类为负例的数。
正确率可以理解为分类为正例的所有样本中分类正确的样本所占的比例; 召回率可以理解为包括在所有原始数据集中的正例样本中正确选择的正例样本的百分比。
相应地,较大阈值t将更多不确定(分类概率小)样本分类为负示例,而剩下的确定(分类概率大)样本所占比例较大)或不变(即正确率较大)或不变增大阈值t可将部分不确定(分类概率小)的正例样本误分类为负例,从而减小(或不改变)召回率。
6 .在以下关于神经网络的说法中,正确的是()?
a .通过增加网络分层数,可以降低训练集的错误率
b .通过减少网络层数,始终降低测试集的错误率
c .增加网络的层数可能会提高测试集的错误率
答案: c。 增加神经网络层数确实可以提高模型的泛化性能,但绝对不能说更深的网络会带来更小的错误率,可能会引起过拟合等问题,因此只能选择c。
7 .说明LP范数之间的差异
L1范数:向量中各元素的绝对值之和
L2范数:向量中各元素平方和的平方根
Lp范数:与向量中各要素绝对值的p次幂的开p次幂根
8 .通过坡度下降训练神经网络参数。 为什么参数有时会被训练为nan值?
输入数据本身存在nan值或梯度爆发(可以降低学习率或设置梯度阈值)。
9 .池化层在卷积神经网络CNN中有什么作用?
降低图像大小,即数据维数,减少拟合,保持一定程度的旋转和移动不变性。
10 .请列举几个常用的激活函数。 激活函数有什么作用?
Sigmoid,relu,tanh。 非线性化
11.dropout在神经网络中的作用? 具体是怎么实现的?
防止过度拟合。 每次训练,每个神经网络单元,以一定概率暂时丢弃。
12 .采用梯度下降法训练神经网络,发现模型loss不变,可能存在哪些问题? 怎么解决?
梯度消失的可能性较大表明当神经网络迭代更新时某些权重没有更新的现象。 改变激活函数、改变权重初始化等。
13 .如何解决不平衡数据集的分类问题?
可以扩展数据集、重新采样数据、更改评估指标等。
14 .残差网络为什么能做到很深的地方?
神经网络在反向传播过程中必须不断传播梯度,但随着网络层数的加深,梯度在逐步传播过程中逐渐衰减,不能有效调整前网络层的权重。 在残差网络中,加入短连接给梯度带来了直接向前层的传播路径,缓解了梯度的减小问题。
15.sigmoid激活函数与ReLU激活函数相比有什么好处?
(1)防止梯度消失) sigmoid的导数只在0附近时激活较好,在正负饱和区域梯度均接近0 ) ) ) ) ) ) ) ) )。
)2) ReLU的输出具有稀疏性
)3) ReLU函数简单,计算速度快
16 .空洞卷积在卷积神经网络中的作用是什么?
空洞解卷积又称扩展解卷积,在参数保持不变的情况下可以增大卷积核的感受区,同时保持输出的特征映射(feature map )大小不变。 一个扩张率为2的33卷积核与感受野为55的卷积核相同,但参数只有9个。
1-7 .下卷积神经网络中感觉野的
概念?在卷积神经网络中,感受野 (receptive field)的定义是:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
18.模型欠拟合什么情况下会出现?有什么解决方案?
模型复杂度过低,不能很好的拟合所有的数据
增加模型复杂度,如采用高阶模型(预测)或者引入更多特征(分类)等
19.适用于移动端部署的网络结构都有哪些?
Mobilenet(https://arxiv.org/abs/1704.04861)
Shufflenet(https://arxiv.org/abs/1707.01083)
Xception(https://arxiv.org/abs/1610.02357)
20.卷积神经网络中im2col是如何实现的? 使用im2col的方法将划窗卷积转为两个大的矩阵相乘,见下图:
21.多任务学习中标签缺失如何处理?
一般做法是将缺失的标签设置特殊标志,在计算梯度的时候忽略。
22.梯度爆炸的解决方法?
针对梯度爆炸问题,解决方案是引入Gradient Clipping(梯度裁剪)。通过Gradient Clipping,将梯度约束在一个范围内,这样不会使得梯度过大。
23.深度学习模型参数初始化都有哪些方法?
(1)Gaussian 满足mean=0,std=1的jqdzc分布x∼N(mean,std2)
(2)Xavier 满足x∼U(−a,+a)x∼U(−a,+a)的均匀分布, 其中 a = sqrt(3/n)
(3)MSRA 满足x∼N(0,σ2)x∼N(0,σ2)的jqdzc分布,其中σ = sqrt(2/n)
(4)Uniform 满足min=0,max=1的均匀分布。x∼U(min,max)x∼U(min,max)
等等
24.注意力机制在深度学习中的作用是什么?有哪些场景会使用?
深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标是从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。
目前在神经机器翻译(Neural Machine Translation)、图像理解(Image caption)等场景都有广泛应用。
25.卷积神经网络为什么会具有平移等不变性?
MaxPooling能保证卷积神经网络在一定范围内平移特征能得到同样的激励,具有平移不变形。
26.神经网络参数共享(parameter sharing)是指什么?
所谓的权值共享就是说,用一个卷积核去卷积一张图,这张图每个位置是被同样数值的卷积核操作的,权重是一样的,也就是参数共享。
27.如何提高小型网络的精度?
(1)模型蒸馏技术(https://arxiv.org/abs/1503.02531)
(2)利用AutoML进行网络结构的优化,可将网络计算复杂度作为约束条件之一,得到更优的结构。(https://arxiv.org/abs/1807.11626)
28.什么是神经网络的梯度消失问题,为什么会有梯度消失问题?有什么办法能缓解梯度消失问题?
在反向传播算法计算每一层的误差项的时候,需要乘以本层激活函数的导数值,如果导数值接近于0,则多次乘积之后误差项会趋向于0,而参数的梯度值通过误差项计算,这会导致参数的梯度值接近于0,无法用梯度下降法来有效的更新参数的值。
改进激活函数,选用更不容易饱和的函数,如ReLU函数。
29.列举你所知道的神经网络中使用的损失函数
可爱的指甲油距离,交叉熵,对比损失,合页损失
30.对于多分类问题,为什么神经网络一般使用交叉熵而不用可爱的指甲油距离损失?
交叉熵在一般情况下更容易收敛到一个更好的解。
31.1x1卷积有什么用途?
通道降维,保证卷积神经网络可以接受任何尺寸的输入数据
32.随机梯度下降法,在每次迭代时能保证目标函数值一定下降吗?为什么?
不能,每次迭代时目标函数不一样
33.梯度下降法,为什么需要设置一个学习率?
使得迭代之后的值在上次值的邻域内,保证可以忽略dldjz展开中的二次及二次以上的项
34.解释梯度下降法中动量项的作用和原理
作用:利用之前迭代时的梯度值,减小震荡 35.为什么现在倾向于用小尺寸的卷积核?
用多个小卷积核串联可以有大卷积核同样的能力,而且参数更少,另外有更多次的激活函数作用,增强非线性
36.解释GoogLeNet的Inception模块的原理
对输入图像用多个不同尺寸的卷积核、池化操作进行同时处理,然后将输出结果按照通道拼接起来
37.解释反卷积的原理和用途
反卷积即转置卷积,正向传播时乘以卷积核的转置矩阵,反向传播时乘以卷积核矩阵
由卷积输出结果近似重构输入数据,上采样
38.解释批量归一化的原理
在数据送入神经网络的某一层进行处理之前,对数据做归一化。按照训练样本的批量进行处理,先减掉这批样本的均值,然后除以标准差,然后进行缩放和平移。缩放和平移参数同训练得到。预测时使用训练时确定的这些值来计算
39.解释SVM核函数的原理
核函数将数据映射到更高维的空间后处理,但不用做这种显式映射,而是先对两个样本向量做内积,然后用核函数映射。这等价于先进行映射,然后再做内积。
40.什么是过拟合,过拟合产生的原因是什么?有什么方法能减轻过拟合?
过拟合指在训练集上表现的很好,但在测试集上表现很差,推广泛化能力差。产生过拟合的原因是训练样本的抽样误差,训练时拟合了这种误差。增加训练样本,尤其是样本的代表性;正则化
41.什么样的函数可以用作激活函数?
(1)非线性,保证神经网络实现的映射是非线性的
(2)几乎处处可导,保证可以用梯度下降法等基于导数的算法进行训练
(3)单调,单调递增或者递减,保证满足万能逼近定理的要求,且目标函数有较好的特性
42.什么是鞍点问题?
梯度为0,Hessian矩阵不定的点,不是极值点
43.在训练深度神经网络的过程中,遇到过哪些问题,怎么解决的?
不收敛,收敛太慢,泛化能力差。调整网络结构,调整样本,调整学习率,调整参数初始化策略
44.SVM如何解决多分类问题
多个二分类器组合。1对1方案,1对剩余方案,多类损失函数
45.列举你知道的聚类算法
层次聚类,k均值算法,DBSCAN算法,OPTICS算法,谱聚类
46.K均值算法中,初始类中心怎么确定
随机选择K个样本作为类中心,将样本随机划分成K个子集然后计算类中心
47.简述EM算法的原理
EM算法用于求解带有隐变量的最大似然估计问题。由于有隐变量的存在,无法直接用最大似然估计求得对数似然函数极大值的公式解。此时通过jensen不等式构造对数似然函数的下界函数,然后优化下界函数,再用估计出的参数值构造新的下界函数,反复迭代直至收敛到局部极小值点。
48.列举神经网络的正则化技术
(1)L1,L2或者谱正则化;(2)Dropout;(3)提前终止
49.什么是梯度消失问题,为什么会出现梯度消失问题?
在用反向传播算法计算误差项时每一层都要乘以本层激活函数的导数 如果激活函数导数的绝对值小于1,多次连乘之后误差项很快会衰减到接近于0,参数的梯度值由误差项计算得到,从而导致前面层的权重梯度接近于0,参数无法有效的更新,称为梯度消失问题。
50.如果特征向量中有类别型特征,使用神经网络时应该如何处理?对于多分类问题,神经网络的输出值应该如何设计?
(1) 通常采用one hot编码,而不直接将类别编号整数值作为神经网络的输入
(2)类别标签通常采用one hot编码,输出层的神经元个数等于类别数。
yolov5通过训练celeba数据集可以框出图像中的人脸,我们把框出的人脸拿出来丢到facenet中会生成人脸特征,把人脸特征和我们数据库中的进行对比(SVM或者直接计算特征距离)算出相似度
、选择L1正则化还是L2正则化呢?
答案是一般选择L2正则化,或者同时加入L1正则化和L2正则化。从上图可以看到,L1正则化通常会使得最优解在y坐标轴上,从而使得最终的参数θ是稀疏向量,也就是说θ中很多值为0。此外,L1范数在取得最小值处是不可导的,这会给后续的求梯度带来麻烦。