第二部分:机器学习基础
目录
- 过拟合
- 正则化
- 优化算法
- 模型选择
- 各个损失函数的形式与区别
- 如何处理样本不均衡问题 / 怎么训练 怎么评价
- 有监督学习和无监督学习的区别
- 线性分类器和非线性分类器的区别、举例、优劣
- 什么是生成模型和判别模型、举例
- 偏差与方差的区别
- 解释置信区间
过拟合
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=21∑i=1m−1(xi+1−xi)∗(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%