机器学习面试 之 机器学习基础

第二部分:机器学习基础

目录

过拟合

1. 什么是过拟合?
 模型的训练误差小,而测试误差大。
2. 产生原因?
 参数太多,导致模型复杂度上升,容易过拟合训练数据中的噪声和没有代表性的特征。
3. 解决方法?
 1) 增大数据量(加入原本没有的新数据、或者对旧数据集进行扩增)
 2) 减少特征数量
 3) 正则化
 4) Early Stopping
 5) Dropout(NN中常用,神经元以一定的概率不工作)
 6) Bagging、Boosting
4. 各个模型如何防止过拟合?
 决策树:剪枝
 NN:Dropout、Batch Normalization(对参数的搜索空间进行约束来增加系统鲁棒性)

正则化

1. 什么是正则化?
 正则化的目的是限制参数过多或者过大,避免模型太复杂,从而让模型在面对新数据时,可以有更好的泛化能力。减小测试误差。
2. 什么是L1正则化、L2正则化
 L1:参数的绝对值之和。倾向于产生少量的特征,而其他特征为0。
 L2:参数的平方和再开方。会产生更多的特征,这些特征都会接近0。
3. L1与L2的区别与应用场景
 区别如上题。
 应用场景:L1在特征选择时非常有用;L2有更好的精度。
4. 为什么L1正则化相较于L2正则化会产生更加稀疏的矩阵?
 损失函数的最优解,即正则化项的等值线与非正则化项的等值线的交点。因为L1范数的等值线是旋转45度的方形,所以交点更容易落在坐标轴上,即参数为0。
5. 为什么正则化能防止过拟合?
 因为正则化可以限制参数过多或者过大,从而使得模型复杂度较小,对于输入噪声的扰动相对较小。

优化算法

1. 优化算法有哪些?
 1) 梯度下降法:GD
 2) 梯度下降法的变式:SGD、Momentum、Adagrad、RMSProp、Adam
 3) 牛顿法
 
2. 简述一下梯度下降法
 用当前位置的负梯度方向作为搜索方向。
 随机梯度下降:每次使用一个样本寻找最优解。
 批量梯度下降:每次迭代使用全部样本。
 
3. 梯度消失与梯度爆炸
 梯度消失:在深层网络中,如果激活函数的导数小于1,根据链式求导法则,靠近输入层的参数的梯度因为乘了很多小于1的数而越来越小,最终趋近于0。(例如:sigmoid函数,其导数的值域为(0,1/4),极易发生这种情况)
 或者说:靠近输入层的参数,input有很大的变化,但是output的变化很小,经过越多层,衰减次数就越多,直到最后,对output的影响就很小了。
 梯度爆炸:在链式求导的连续乘法中,部分参数的梯度因为乘了很多较大的数而变得非常大,导致模型无法收敛。
 梯度消失的表现:模型无法从训练数据中获得更新,损失几乎保持不变。
 梯度爆炸的表现:模型不稳定,更新过程中的损失出现显著变化。训练过程中,模型损失变成NaN。
 共同解决:减少网络层数,调整学习率。
 梯度消失的解决:激活函数采用relu、leaky relu。Batch Normalization。
 梯度爆炸的解决:梯度剪切,正则化。
 
4. 牛顿法的原理及求解

5. SGD、Momentum和Adam的区别和联系
6. GD和SGD等的区别
 SGD:用当前位置的负梯度方向作为搜索方向。
 Momentum:计算累计的梯度方向。与当前位置的梯度方向共同决定搜索方向。
 Adagrad:随着迭代次数的增加,学习率越来越小。
  * 缺点:后期学习率过小。
 RMSProp:使用指数衰减,只保留过去给定窗口大小的梯度。
  * 优点:Adagrad的修改。
 Adam:Momentum(动量)+RMSProp(指数衰减)

模型选择

1. 评估方法有哪些,及应用场景
 留出法、交叉验证法、自助法
 留出法:分成训练集,测试集。彼此互斥。
  缺点:保留一部分样本用于测试,评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。
 自助法:自助采样。
  优点:减少训练样本规模不同造成的影响。
 使用场景:数据集较小,用自助法;数据集足够时,用留出法和交叉验证法。

2. 什么是交叉验证法?
 将数据集划分为k个大小相同的互斥子集,每个子集尽可能保持数据分布的一致性,然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可获得k组训练集/测试集,从而进行k次的训练和测试,将他们的测试结果的均值作为最终结果。

3. 交叉验证常见的几种方法?
 k折交叉验证;留一法
 
4. 性能度量/如何衡量分类器的好坏/泛化能力?
或者问:评价指标及含义?
 一、分类任务
  1) 错误率、精度
  2) 准确率=查准率、召回率=查全率,PR曲线
    P=TP/(TP+FP),R=TP/(TP+FN)
  3) F1
    公式1: 1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}·(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)
   
    公式2: F 1 = 2 × P × R P + R F1=\frac{2×P×R}{P+R} F1=P+R2×P×R
   
    公式3: F 1 = 2 × T P 2 T P + F P + F N F1=\frac{2×TP}{2TP+FP+FN} F1=2TP+FP+FN2×TP
  4) ROC
    纵轴是真正例率、横轴是假正例率
 
5. 为什么使用ROC曲线
 1) 容易查出学习器在任意分类阈值下的性能。
 2) 选择最佳的分类阈值,roc曲线越靠近左上角,试验的准确性就越高。最靠近左上角的点事错误最少的分类阈值,在这里假正例和假负例的总数最少。
 3) 不会随着类别分布的改变而改变,可以评价类别不平衡时模型的效果。
 
6. AUC理解和计算方法
 利用ROC曲线比较不同的学习器时,若一个学习器的曲线被另一个完全包住,可断言后者更优;当两个学习器的曲线发生交叉时,比较合理的判断依据是ROC的曲线下面积,即AUC。AUC越大,分类器性能越好。(将正样本排在负样本前面,能够更好的分类)
 计算方法1: A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ∗ ( y i + 1 + y i ) . AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_{i})*(y_{i+1}+y_{i}). AUC=21i=1m1(xi+1xi)(yi+1+yi).
 计算方法2:若正例的预测值小于反例,记一个罚分;若相等,记半个罚分。

各个损失函数的形式与区别

线性回归、LR、SVM的损失函数?
L1范数、L2范数/均方误差、交叉熵损失、hinge loss

1. 交叉熵损失公式及推导
 二分类模型的最后,一般都会经过Sigmoid函数。极大似然。负log。

基本知识

如何处理样本不均衡问题 / 怎么训练 怎么评价
 1) 对数据集进行采样:欠采样、过采样(大类样本、小类样本)
 2) 阈值移动。一般情况下,正例概率除以负例概率大于1,则认为属于正例;类别不平衡时,先算出正例数量除以负例数量,若大于它,则判定为正例。
 3) 尝试其它评价指标
 
有监督学习无监督学习的区别
 有监督学习:对有标记的样本进行学习(LR、SVM、RF、GBDT)
 无监督学习:对无标记的样本进行学习
 
线性分类器非线性分类器的区别、举例、优劣
 线性分类器:模型是参数的线性函数,并且存在线性分类面
 非线性分类器:不符合线性分类器
 线性分类器:线性回归、LR、贝叶斯分类、单层感知机、SVM
 非线性分类器:决策树、RF、GBDT、多层感知机、SVM

优/缺点线性分类器非线性分类器
优点速度快,编程方便拟合能力强
缺点拟合能力弱编程复杂

什么是生成模型判别模型举例优点

模型定义举例
生成式模型由数据学习联合概率分布,然后求出条件概率分布作为预测模型朴素贝叶斯、HMM、GMM
判别式模型由数据直接学习决策函数线性回归、LR、SVM、DT、kNN、NN、最大熵模型、条件随机场

生成式模型:模型收敛快;可计算边缘分布,进行outlier detection。
判别式模型:模型准确率高;节省计算资源。简化模型。

偏差方差的区别
 偏差:学习算法的期望预测与真实结果的偏离程度(学习算法的拟合能力)
 方差:同样大小的训练集的变动导致的学习性能的变化(数据扰动所造成的影响)
 噪声:在当前任务上任何学习算法所能达到的期望泛化误差的下界(学习问题本身的难度)

解释置信区间
 举例而言,95%置信区间:100次随机抽样中构造的100个区间如果95次包含了参数真值,那么置信度为95%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值