机器学习与深度学习常见面试题(下)
1、为什么随机森林能降低方差?
随机森林的预测输出值是多课决策树的均值,如果有n个独立同分布的随机变量 ,它们的方差都为 ,则它们的均值的方差为:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190408090936597.png)
为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI整理出了一些常见的机器学习、深度学习面试题。理解它们,对你通过技术面试非常有帮助,当然,我们不能只限于会做这些题目,最终的目标是真正理解机器学习与深度学习的原理、应用。
二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法。
Bagging:从原始数据集中每一轮有放回地抽取训练集,训练得到k个弱学习器,将这k个弱学习器以投票的方式得到最终的分类结果。
Boosting:每一轮根据上一轮的分类结果动态调整每个样本在分类器中的权重,训练得到k个弱分类器,他们都有各自的权重,通过加权组合的方式得到最终的分类结果。
存在。我们可以使用无监督学习的某些指标或人为地去评估模型性能,以此来判断是否过拟合。
将原始数据集划分为k个子集,将其中一个子集作为验证集,其余k-1个子集作为训练集,如此训练和验证一轮称为一次交叉验证。交叉验证重复k次,每个子集都做一次验证集,得到k个模型,加权平均k个模型的结果作为评估整体模型的依据。
k越大,不一定效果越好,而且越大的k会加大训练时间;在选择k时,需要考虑最小化数据集之间的方差,比如对于2分类任务,采用2折交叉验证,即将原始数据集对半分,若此时训练集中都是A类别,验证集中都是B类别,则交叉验证效果会非常差。
准确率 = TP / (TP + FP),召回率 = TP / (TP + FN),其中TP表示将正例正确分类为正例的数量,FP表示将负例错误分类为正例的数量,FN表示将正例错误分类为负例的数量。
准确率可以理解为在所有分类为正例的样品中,分类正确的样本所占比例;召回率可以理解为在所有原始数据集中的正例样品中,正确挑出的正例样本的比例。
因此若增大阈值t,更多不确定(分类概率较小)的样本将会被分为负例,剩余确定(分类概率较大)的样本所占比例将会增大(或不变),即正确率会增大(或不变);若增大阈值t,则可能将部分不确定(分类概率较小)的正例样品误分类为负例,即召回率会减小(或不变)。
A.增加网络层数,总能减小训练集错误率
B.减小网络层数,总能减小测试集错误率
C.增加网络层数,可能增加测试集错误率
C。增加神经网络层数,确实可能提高模型的泛化性能,但不能绝对地说更深的网络能带来更小的错误率,还是要根据实际应用来判断,比如会导致过拟合等问题,因此只能选C。
L1范数:向量中各个元素绝对值之和
L2范数:向量中各个元素平方和的开二次方根
Lp范数:向量中各个元素绝对值的p次方和的开p次方根
输入数据本身存在nan值,或者梯度爆炸了(可以降低学习率、或者设置梯度的阈值)
减小图像尺寸即数据降维,缓解过拟合,保持一定程度的旋转和平移不变性。
sigmoi,relu,tanh。非线性化
防止过拟合。每次训练,都对每个神经网络单元,按一定概率临时丢弃。
很有可能是梯度消失了,它表示神经网络迭代更新时,有些权值不更新的现象。
改变激活函数,改变权值的初始化等。
可以扩充数据集,对数据重新采样,改变评价指标等。
神经网络在反向传播过程中要不断地传播梯度,而当网络层数加深时,梯度在逐层传播过程中会逐渐衰减,导致无法对前面网络层的权重进行有效的调整。 残差网络中, 加入了short connections 为梯度带来了一个直接向前面层的传播通道,缓解了梯度的减小问题。
(1) 防止梯度消失 ( sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0)
(2) ReLU的输出具有稀疏性
(3) ReLU函数简单计算速度快
空洞卷积也叫扩张卷积,在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(feature map)的大小保持不变。一个扩张率为2的3×3卷积核,感受野与5×5的卷积核相同,但参数数量仅为9个。
在卷积神经网络中,感受野 (receptive field)的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
模型复杂度过低,不能很好的拟合所有的数据
增加模型复杂度,如采用高阶模型(预测)或者引入更多特征(分类)等
Mobilenet(https://arxiv.org/abs/1704.04861)
Shufflenet(https://arxiv.org/abs/1707.01083)
Xception(https://arxiv.org/abs/1610.02357)
使用im2col的方法将划窗卷积转为两个大的矩阵相乘,见下图:
一般做法是将缺失的标签设置特殊标志,在计算梯度的时候忽略。
(1)Gaussian 满足mean=0,std=1的高斯分布x∼N(mean, )
(2)Xavier 满足x∼U(−a,+a)x∼U(−a,+a)的均匀分布, 其中 a = sqrt(3/n)
(3)MSRA 满足x∼N(0, )x∼N(0,)的高斯分布,其中σ = sqrt(2/n)
(4)Uniform 满足min=0,max=1的均匀分布。x∼U(min,max)x∼U(min,max)
等等
深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标是从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。目前在神经机器翻译(Neural Machine Translation)、图像理解(Image caption)等场景都有广泛应用。
MaxPooling能保证卷积神经网络在一定范围内平移特征能得到同样的激励,具有平移不变形。
所谓的权值共享就是说,用一个卷积核去卷积一张图,这张图每个位置是被同样数值的卷积核操作的,权重是一样的,也就是参数共享。
(1)模型蒸馏技术(https://arxiv.org/abs/1503.02531)
(2)利用AutoML进行网络结构的优化,可将网络计算复杂度作为约束条件之一,得到更优的结构。(https://arxiv.org/abs/1807.11626)
在反向传播算法计算每一层的误差项的时候,需要乘以本层激活函数的导数值,如果导数值接近于0,则多次乘积之后误差项会趋向于0,而参数的梯度值通过误差项计算,这会导致参数的梯度值接近于0,无法用梯度下降法来有效的更新参数的值。
改进激活函数,选用更不容易饱和的函数,如ReLU函数。
欧氏距离,交叉熵,对比损失,合页损失
30.对于多分类问题,为什么神经网络一般使用交叉熵而不用欧氏距离损失?
交叉熵在一般情况下更容易收敛到一个更好的解。
通道降维,保证卷积神经网络可以接受任何尺寸的输入数据
不能,每次迭代时目标函数不一样
使得迭代之后的值在上次值的邻域内,保证可以忽略泰勒展开中的二次及二次以上的项
利用之前迭代时的梯度值,减小震荡
用多个小卷积核串联可以有大卷积核同样的能力,而且参数更少,另外有更多次的激活函数作用,增强非线性
对输入图像用多个不同尺寸的卷积核、池化操作进行同时处理,然后将输出结果按照通道拼接起来
反卷积即转置卷积,正向传播时乘以卷积核的转置矩阵,反向传播时乘以卷积核矩阵
由卷积输出结果近似重构输入数据,上采样
在数据送入神经网络的某一层进行处理之前,对数据做归一化。按照训练样本的批量进行处理,先减掉这批样本的均值,然后除以标准差,然后进行缩放和平移。缩放和平移参数同训练得到。预测时使用训练时确定的这些值来计算
核函数将数据映射到更高维的空间后处理,但不用做这种显式映射,而是先对两个样本向量做内积,然后用核函数映射。这等价于先进行映射,然后再做内积。
过拟合指在训练集上表现的很好,但在测试集上表现很差,推广泛化能力差。产生过拟合的原因是训练样本的抽样误差,训练时拟合了这种误差。增加训练样本,尤其是样本的代表性;正则化
非线性,几乎处处可到,单调
梯度为0,Hessian矩阵不定的点,不是极值点
不收敛,收敛太慢,泛化能力差。调整网络结构,调整样本,调整学习率,调整参数初始化策略
多个二分类器组合。1对1方案,1对剩余方案,多类损失函数
层次聚类,k均值算法,DBSCAN算法,OPTICS算法,谱聚类
随机选择K个样本作为类中心,将样本随机划分成K个子集然后计算类中心
EM算法用于求解带有隐变量的最大似然估计问题。由于有隐变量的存在,无法直接用最大似然估计求得对数似然函数极大值的公式解。此时通过jensen不等式构造对数似然函数的下界函数,然后优化下界函数,再用估计出的参数值构造新的下界函数,反复迭代直至收敛到局部极小值点。
1、为什么随机森林能降低方差?
随机森林的预测输出值是多课决策树的均值,如果有n个独立同分布的随机变量 ,它们的方差都为 ,则它们的均值的方差为:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190408090936597.png)
2、对于带等式和不等式约束的优化问题,KKT条件是取得极值的充分条件还是必要条件?对于SVM呢?
对于一个一般的问题,KKT条件是取得极值的必要条件而不是充分条件。对于凸优化问题,则是充分条件,SVM是凸优化问题
3、解释维数灾难的概念
当特征向量数理很少时,增加特征,可以提高算法的精度,但当特征向量的维数增加到一定数量之后,再增加特征,算法的精度反而会下降
4、Logistic回归为什么用交叉熵而不用欧氏距离做损失函数?
如果用欧氏距离,不是凸函数,而用交叉熵则是凸函数
5、解释hinge loss损失函数
如果样本没有违反不等式约束,则损失为0;如果违反约束,则有一个正的损失值
6、解释GBDT的核心思想
用加法模拟,更准确的说,是多棵决策树树来拟合一个目标函数。每一棵决策树拟合的是之前迭代得到的模型的残差。求解的时候,对目标函数使用了一阶泰勒展开,用梯度下降法来训练决策树
7、解释XGBoost的核心思想
在GBDT的基础上,目标函数增加了正则化项,并且在求解时做了二阶泰勒展开
8、解释DQN中的经验回放机制,为什么需要这种机制?
将执行动作后得到的状态转移构造的样本存储在一个列表中,然后从中随机抽样,来训练Q网络。为了解决训练样本之间的相关性,以及训练样本分布变化的问题
9、什么是反卷积?
反卷积也称为转置卷积,如果用矩阵乘法实现卷积操作,将卷积核平铺为矩阵,则转置卷积在正向计算时左乘这个矩阵的转置 ,在反向传播时左乘W,与卷积操作刚好相反,需要注意的是,反卷积不是卷积的逆运算。
10、反卷积有哪些用途?
实现上采样;近似重构输入图像,卷积层可视化
11、PCA(主成分分析)优化的目标是什么?
最小化重构误差/最大化投影后的方差
12、LDA(线性判别分析)优化的目标是什么?
最大化类间差异与类内差异的比值
13、解释神经网络的万能逼近定理
只要激活函数选择得当,神经元的数理足够,至少有一个隐含层的神经网络可以逼近闭区间上任意一个连续函数到任意指定的精度
14、softmax回归训练时的目标函数时凸函数吗?
是,但有不止一个全局最优解
15、SVM为什么要求解对偶问题?为什么对偶问题与原问题等价?
原问题不容易求解,含有大量的不易处理的不等式约束。原问题满足Slater条件,强对偶成立,因此原问题与对偶问题等价
16、神经网络是生成模型还是判别模型?
判别模型,直接输出类别标签,或者输出类后验概率p(y|x)
17、logistic回归是生成模型还是判别模型?
判别模型,直接输出类后验概率p(y|x),没有对类条件概率p(x|y)或者联合概率p(x, y)建模
18、对于支持向量机,高斯核一般比线性核有更好的精度,但实际应用中为什么一般用线性核而不用高斯核?
如果训练样本的量很大,训练得到的模型中支持向量的数量太多,在每次做预测时,高斯核需要计算待预测样本与每个支持向量的内积,然后做核函数变换,这会非常耗;而线性核只需要计算
19、高斯混合模型中,为什么各个高斯分量的权重之和要保证为1?
为了保证这个函数时一个概率密度函数,即积分值为1
20、介绍beam search算法的原理
这是一种解码算法,每次选择概率最大的几个解作为候选解,逐步扩展
21、介绍seq2seq的原理
整个系统由两个RNN组成,一个充当编码器,一个充当解码器;编码器依次接收输入的序列数据,当最后一个数据点输入之后,将循环层的状态向量作为语义向量,与解码器网络的输入向量一起,送入解码器中进行预测
22、介绍CTC的原理
CTC通过引入空白符号,以及消除连续的相同符号,将RNN原始的输出序列映射为最终的目标序列。可以解决对未对齐的序列数据进行预测的问题,如语音识别
23、介绍广义加法模型的原理
广义加法模型用多个基函数的和来拟合目标函数,训练的时候,依次确定每个基函数
24、为什么很多时候用正态分布来对随机变量建模?
现实世界中很多变量都服从或近似服从正态分布。中心极限定理指出,抽样得到的多个独立同分布的随机变量样本,当样本数趋向于正无穷时,它们的和服从正态分布
25、Batch Normalization 和 Group Normalization有何区别?
BN是在 batch这个维度上进行归一化,GN是计算channel方向每个group的均值和方差
26、GAN中模型坍塌(model collapse)是指什么?
模型坍塌,即产生的样本单一,没有了多样性。
27、 目前GAN训练中存在的主要问题是什么?
(1) 训练不易收敛 (2)模型坍塌
28、Shufflenet为什么效果会好?
通过引入“通道重排”增加了组与组之间信息交换
29、模型压缩的主要方法有哪些?
(1)从模型结构上优化:模型剪枝、模型蒸馏、automl直接学习出简单的结构
(2)模型参数量化将FP32的数值精度量化到FP16、INT8、二值网络、三值网络等
30、目标检测中IOU是如何计算的?
检测结果与 Ground Truth 的交集比上它们的并集,即为检测的准确率 IoU
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190408090618328.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0YXlfZm9vbGlzaDEy,size_16,color_FFFFFF,t_70)31、给定0-1矩阵,如何求连通域?
可采用广度优先搜索
32、OCR任务中文本序列识别的主流方法是什么?
RNN+CTC
33、在神经网络体系结构中,哪些会有权重共享??
(1)卷积神经网络
(2)递归神经网络
(3)全连接网络
答案 (1)&(2)
34、 一个典型人脸识别系统的识别流程?
人脸检测--》人脸对齐--》人脸特征提取--》人脸特征比对
35、平面内有两个矩形,如何快速计算它们的IOU?
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190408090716264.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0YXlfZm9vbGlzaDEy,size_16,color_FFFFFF,t_70)36、使用深度卷积网络做图像分类如果训练一个拥有1000万个类的模型会碰到什么问题?
提示:内存/显存占用;模型收敛速度等
37、 HMM和CRF的区别?
前者描述的是 P(X,Y)=P(X|Y)*P(Y), 是 generative model; 后者描述的是 P(Y|X), 是 discriminative model. 前者你要加入对状态概率分布的先验知识,而后者完全是 data driven.
38、深度学习中为什么不用二阶导去优化?
Hessian矩阵是n*n, 在高维情况下这个矩阵非常大,计算和存储都是问题
39、深度机器学习中的mini-batch的大小对学习效果有何影响?
mini-batch太小会导致收敛变慢,太大容易陷入sharp minima,泛化性不好
40、线性回归对于数据的假设是怎样的?
http://en.wikipedia.org/wiki/Linear_regression
(1) 线性,y是多个自变量x之间的线性组合
(2) 同方差性,不同的因变量x的方差都是相同的
(3) 弱外生性,假设用来预测的自变量x是没有测量误差的
(4) 预测变量之中没有多重共线性
41、什么是共线性, 跟过拟合有啥关联?
共线性:多变量线性回归中,变量之间由于存在高度相关关系而使回归估计不准确。
共线性会造成冗余,导致过拟合。
解决方法:排除变量的相关性/加入权重正则。
42、Bias和Variance的区别?
Bias量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力。
Variance度量了同样大小的训练集的变动所导致的学习性能变化,即刻画了数据扰动所造成的影响。
推荐阅读
[1]机器学习-波澜壮阔40年【获取码】SIGAI0413.
[2]学好机器学习需要哪些数学知识?【获取码】SIGAI0417.
[3] 人脸识别算法演化史【获取码】SIGAI0420.
[4]基于深度学习的目标检测算法综述 【获取码】SIGAI0424.
[5]卷积神经网络为什么能够称霸计算机视觉领域?【获取码】SIGAI0426.
[6] 用一张图理解SVM的脉络【获取码】SIGAI0428.
[7] 人脸检测算法综述【获取码】SIGAI0503.
[8] 理解神经网络的激活函数 【获取码】SIGAI2018.5.5.
[9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读【获取码】SIGAI0508.
[10] 理解梯度下降法【获取码】SIGAI0511.
[11] 循环神经网络综述—语音识别与自然语言处理的利器【获取码】SIGAI0515
[12] 理解凸优化 【获取码】 SIGAI0518
[13] 【实验】理解SVM的核函数和参数 【获取码】SIGAI0522
[14]【SIGAI综述】行人检测算法 【获取码】SIGAI0525
[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上)【获取码】SIGAI0529
[16]理解牛顿法【获取码】SIGAI0531
[17] 【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题【获取码】SIGAI 0601
[18] 大话Adaboost算法 【获取码】SIGAI0602
[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法【获取码】SIGAI0604
[20] 理解主成分分析(PCA)【获取码】SIGAI0606
[21] 人体骨骼关键点检测综述 【获取码】SIGAI0608
[22]理解决策树 【获取码】SIGAI0611
[23] 用一句话总结常用的机器学习算法【获取码】SIGAI0611
[24] 目标检测算法之YOLO 【获取码】SIGAI0615
[25] 理解过拟合 【获取码】SIGAI0618
[26]理解计算:从√2到AlphaGo ——第1季 从√2谈起 【获取码】SIGAI0620
[27] 场景文本检测——CTPN算法介绍 【获取码】SIGAI0622
[28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625
[29] k近邻算法 【获取码】SIGAI0627
[30]自然场景文本检测识别技术综述 【获取码】SIGAI0627
[31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0704
[32] 机器学习算法地图【获取码】SIGAI0706
[33] 反向传播算法推导-全连接神经网络【获取码】SIGAI0709
[34] 生成式对抗网络模型综述【获取码】SIGAI0709.
[35]怎样成为一名优秀的算法工程师【获取码】SIGAI0711.
[36] 理解计算:从根号2到AlphaGo——第三季 神经网络的数学模型【获取码】SIGAI0716
[37]【技术短文】人脸检测算法之S3FD 【获取码】SIGAI0716
[38] 基于深度负相关学习的人群计数方法【获取码】SIGAI0718
[39] 流形学习概述【获取码】SIGAI0723
[40] 关于感受野的总结 【获取码】SIGAI0723
[41] 随机森林概述 【获取码】SIGAI0725
[42] 基于内容的图像检索技术综述——传统经典方法【获取码】SIGAI0727
[43] 神经网络的激活函数总结【获取码】SIGAI0730
[44] 机器学习和深度学习中值得弄清楚的一些问题【获取码】SIGAI0802
[45] 基于深度神经网络的自动问答系统概述【获取码】SIGAI0803
[46] 反向传播算法推导——卷积神经网络 【获取码】SIGAI0806
[47] 机器学习与深度学习核心知识点总结 写在校园招聘即将开始时 【获取 码】SIGAI0808
[48] 理解Spatial Transformer Networks【获取码】SIGAI0810
[49]AI时代大点兵-国内外知名AI公司2018年最新盘点【获取码】SIGAI0813
[50] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0815
[51] 基于内容的图像检索技术综述--CNN方法【获取码】SIGAI0817
[52]文本表示简介 【获取码】SIGAI0820
[53]机器学习中的最优化算法总结【获取码】SIGAI0822
[54]【AI就业面面观】如何选择适合自己的舞台?【获取码】SIGAI0823
[55]浓缩就是精华-SIGAI机器学习蓝宝书【获取码】SIGAI0824
[56]DenseNet详解【获取码】SIGAI0827
[57]AI时代大点兵国内外知名AI公司2018年最新盘点【完整版】【获取码】SIGAI0829
[58]理解Adaboost算法【获取码】SIGAI0831
[59]深入浅出聚类算法 【获取码】SIGAI0903
[60]机器学习发展历史回顾【获取码】SIGAI0905
[61] 网络表征学习综述【获取码】SIGAI0907
[62] 视觉多目标跟踪算法综述(上) 【获取码】SIGAI0910
[63] 计算机视觉技术self-attention最新进展 【获取码】SIGAI0912
[64] 理解Logistic回归 【获取码】SIGAI0914
[65] 机器学习中的目标函数总结 【获取码】SIGAI0917
[66] 人脸识别中的活体检测算法综述【获取码】SIGAI0919
[67] 机器学习与深度学习常见面试题(上)【获取码】SIGAI0921
[68] 浅谈动作识别TSN,TRN,ECO 【获取码】SIGAI0924
[69] OCR技术简介【获取码】SIGAI0926
[70] 轻量化神经网络综述【获取码】SIGAI1001
[71] 行人重识别PCB-RPP,SGGNN 【获取码】SIGAI1001
[72] 人工智能非技术从业者必知的十件事 【获取码】SIGAI1008
[73] 理解生成模型与判别模型 【获取码】SIGAI1010s
[74] 目标检测最新进展总结与展望【获取码】SIGAI012
[75] 三维深度学习的目标分类和语义切割【获取码】SIGAI1015
[76] 化秋毫为波澜:运动放大算法(深度学习版)【获取码】SIGAI1017
[77] 理解计算:从√2到AlphaGo ——第5季 导数的前世今生 【获取码】SIGAI0815
[78] 深度多目标跟踪算法综述【获取码】SIGAI1022
原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。