机器学习、深度学习常见面试题—第一波

1.比较Boosting和Bagging的异同

二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法。

Bagging:从原始数据集中每一轮有放回地抽取训练集,训练得到k个弱学习器,将这k个弱学习器以投票的方式得到最终的分类结果。

Boosting:每一轮根据上一轮的分类结果动态调整每个样本在分类器中的权重,训练得到k个弱分类器,他们都有各自的权重,通过加权组合的方式得到最终的分类结果。

2.无监督学习中存在过拟合吗?

存在。我们可以使用无监督学习的某些指标或人为地去评估模型性能,以此来判断是否过拟合。

3.什么是k折交叉验证?

将原始数据集划分为k个子集,将其中一个子集作为验证集,其余k-1个子集作为训练集,如此训练和验证一轮称为一次交叉验证。交叉验证重复k次,每个子集都做一次验证集,得到k个模型,加权平均k个模型的结果作为评估整体模型的依据。

4.关于k折交叉验证,需要注意什么?

k越大,不一定效果越好,而且越大的k会加大训练时间;在选择k时,需要考虑最小化数据集之间的方差,比如对于2分类任务,采用2折交叉验证,即将原始数据集对半分,若此时训练集中都是A类别,验证集中都是B类别,则交叉验证效果会非常差。

5.对于一个二分类问题,我们定义超过阈值t的判定为正例,否则判定为负例。现在若将t增大,则准确率和召回率会如何变化?

准确率 = TP / (TP + FP),召回率 = TP / (TP + FN),其中TP表示将正例正确分类为正例的数量,FP表示将负例错误分类为正例的数量,FN表示将正例错误分类为负例的数量。

准确率可以理解为在所有分类为正例的样品中,分类正确的样本所占比例;召回率可以理解为在所有原始数据集中的正例样品中,正确挑出的正例样本的比例。

因此若增大阈值t,更多不确定(分类概率较小)的样本将会被分为负例,剩余确定(分类概率较大)的样本所占比例将会增大(或不变),即正确率会增大(或不变);若增大阈值t,则可能将部分不确定(分类概率较小)的正例样品误分类为负例,即召回率会减小(或不变)。

6.以下关于神经网络的说法中,正确的是( )?

A.增加网络层数,总能减小训练集错误率

B.减小网络层数,总能减小测试集错误率

C.增加网络层数,可能增加测试集错误率

C。增加神经网络层数,确实可能提高模型的泛化性能,但不能绝对地说更深的网络能带来更小的错误率,还是要根据实际应用来判断,比如会导致过拟合等问题,因此只能选C。

7.说明Lp范数间的区别

L1范数:向量中各个元素绝对值之和

L2范数:向量中各个元素平方和的开二次方根

Lp范数:向量中各个元素绝对值的p次方和的开p次方根

8.用梯度下降训练神经网络的参数,为什么参数有时会被训练为nan值?

输入数据本身存在nan值,或者梯度爆炸了(可以降低学习率、或者设置梯度的阈值)

9.卷积神经网络CNN中池化层有什么作用?

减小图像尺寸即数据降维,缓解过拟合,保持一定程度的旋转和平移不变性。

10.请列举几种常见的激活函数。激活函数有什么作用?

sigmoi,relu,tanh。非线性化

猜你喜欢

转载自blog.csdn.net/ZHAO1995ZHAO/article/details/89183932