统计机器学习相关概念总结(下)
ML相关概念总结系列文章:
5. 泛化能力
5.1 泛化误差
泛化误差:学到的模型对未知数据预测的误差:
R exp ( f ^ ) = E p [ L ( Y , f ^ ( X ) ) ] = ∫ X × Y L ( Y , f ^ ( X ) ) P ( x , y ) d x d y R_\text{exp}\left(\hat f\right)=E_p\left[L\left(Y,\hat f\left(X\right)\right)\right]=\int_{\mathcal{X}\times\mathcal{Y}}L\left(Y,\hat f\left(X\right)\right)P\left(x,y\right)\mathrm{d}x\mathrm{d}y Rexp(f^)=Ep[L(Y,f^(X))]=∫X×YL(Y,f^(X))P(x,y)dxdy
事实上,泛化误差就是所学习到的模型的期望风险。
5.2 泛化误差上界
泛化误差的概率上界,即泛化误差上界。泛化误差上界的性质:
- 是样本容量N的函数,N增加时,泛化上界 → 0 \rightarrow 0 →0
- 是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
二分类问题的泛化误差上界(当假设空间是有限个函数的集合时):
R ( f ) ≤ R ^ ( f ) + ϵ ( d , N , δ ) R\left(f\right)\leq\hat R\left(f\right)+\epsilon\left(d,N,\delta\right) R(f)≤R^(f)+ϵ(d,N,δ)
其中
ϵ ( d , N , δ ) = 1 2 N ( log d + log 1 δ ) \epsilon\left(d,N,\delta\right)=\sqrt{\frac{1}{2N}\left(\log d+\log\frac{1}{\delta}\right)} ϵ(d,N,δ)=2N1(logd+logδ1)
6. 生成模型与判别模型
生成方法学习联合概率分布 P ( X , Y ) P\left(X,Y\right) P(X,Y),然后求出条件概率分布 P ( Y ∣ X ) P\left(Y|X\right) P(Y∣X)作为预测的模型,即生成模型:
P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(Y∣X)=P(X)P(X,Y)
生成方法表示了给定输入 X X X产生输出 Y Y Y的生成关系,例如:朴素贝叶斯、隐马尔可夫模型。
判别方法直接学习决策函数 f ( X ) f\left(X\right) f(X)或者条件概率分布 P ( Y ∣ X ) P\left(Y|X\right) P(Y∣X)作为预测的模型,即判别模型。给定输入 X X X应该预测怎样的输出 Y Y Y,例如:k近邻、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、SVM、AdaBoost、CRF等。
生成方法的特点:
生成方法可以还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),而判别方法不能;
生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型;
当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。
判别方法的特点:
判别方法直接学习的是条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 f ( X ) f(X) f(X),直接面对预测,往往学习的准确率更高;
由于直接学习 P ( Y ∣ X ) P(Y|X) P(Y∣X)或 f ( X ) f(X) f(X),可以对数据进行各种程度的抽象、定义特征并使用特征,因此可以简化学习问题。
7. 方差与偏差
设 f ( x ; D ) f(x;D) f(x;D)为训练集D上学得的模型 f f f在 x x x上的预测输出,对测试样本 x x x,令 y D y_D yD为 x x x在数据集中的标记, y y y为 x x x的真实标记。
那么以回归任务
为例,学习算法的期望预测为:
f ˉ ( x ) = E D [ f ( x ; D ) ] \bar{f}(x)=E_D[f(x;D)] fˉ(x)=ED[f(x;D)]
使用样本数相同的不同训练集产生的 方差
为:
v a r ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] var(x)=E_D[\big(f(x;D)-\bar{f}(x)\big)^2] var(x)=ED[(f(x;D)−fˉ(x))2]
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
期望输出与真实标记的差别称为 偏差
:
b i a s 2 ( x ) = ( f ˉ ( x ) − y ) 2 bias^2(x)=\big(\bar{f}(x)-y\big)^2 bias2(x)=(fˉ(x)−y)2
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
噪声
为:
ϵ 2 = E D [ ( y D − y ) 2 ] \epsilon^2=E_D[(y_D-y)^2] ϵ2=ED[(yD−y)2]
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难点。
那么泛化误差可分解为:偏差、方差、噪声之和:
E ( f ; D ) = v a r ( x ) + b i a s 2 ( x ) + ϵ 2 E(f;D)=var(x) + bias^2(x)+\epsilon^2 E(f;D)=var(x)+bias2(x)+ϵ2
偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定的。
一般来说,偏差和方差是有冲突的,称为“偏差-方差”窘境
。给定学习任务,假设我们能控制学习算法的训练程度:
- 则在训练不足时,学习器的拟合能力还不够强,训练数据的扰动不足以使学习器产生显著变化,此时
偏差
主导了泛化错误率
; - 随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,
方差
逐渐主导了泛化错误率
; - 在训练程度充足后,学习器的拟合能力已非常强,此时训练数据发生的轻微扰动都会导致学习器发生显著变化,
若训练数据自身的、非全局的特性被学习器学到,则将发生
过拟合
。
8. 多分类学习
有些二分类学习可直接推广到多分类,也可以基于一些基本策略,利用二分类器解决多分类问题。
利用二分类器解决多分类问题,关键在于如何对多分类任务进行拆分,以及如何对多个分类器进行集成。常用的拆分策略:
- 一对一(One vs. One,简称OvO):将给定标注数据集按K个类别两两配对,产生
K
(
K
−
1
)
2
\frac{K(K-1)}{2}
2K(K−1)个二分类任务。测试时,新样本同时提交到所有分类器,产生
K
(
K
−
1
)
2
\frac{K(K-1)}{2}
2K(K−1)分类结果,然后对这些分类结果进行
“投票”
,即把预测类别最多的类别作为最终分类结果。 - 一对其余(One vs. Rest,简称OvR):每次将一个类作为正例,其余其他类都作为负例,形成 K K K个二分类任务。测试时,新样本同时提交到所有分类器。若只有1个分类器预测为正类,则对应类别即为最终分类结果,若有多个分类器预测为正类,则取置信度大的为最终分类结果。
- 多对多(Many vs. Many,简称MvM):每次将若干类作为正例,若干类作为负例。OvO和OvR都是MvM的特例。
9. 类别不均衡(class-imbalance)问题
类别不平衡问题,是指不同类别的训练样例数目差别很大的情况。假定正例极少,负例很多。
解决方法:
- 欠采样(下采样),去除一些负例,使正负例数目接近
- 过采样(上采样),增加一些正例,使得正负例数目接近
- 阈值移动(threshold-moving),即将原先的分类决策
y
1
−
y
>
1
\frac{y}{1-y}>1
1−yy>1则预测为正例,
修改为 y 1 − y > m + m − \frac{y}{1-y}>\frac{m^+}{m^-} 1−yy>m−m+则预测为正例。 - 样本加权
- 修改损失函数 loss function,例如
focal loss
:
F o c a l _ L o s s ( y , p ) = { − α ( 1 − p ) γ log ( p ) i f y = 1 − ( 1 − α ) p γ log ( 1 − p ) i f y = 0 Focal\_Loss(y,p) =\begin{cases}-\alpha(1-p)^\gamma\log(p)\;\; &if\;y=1\\-(1-\alpha)p^\gamma\log(1-p)&if\;y=0\end{cases} Focal_Loss(y,p)={−α(1−p)γlog(p)−(1−α)pγlog(1−p)ify=1ify=0
Focal Loss
是一种对binary_crossentropy的改进损失函数形式。
它在样本不均衡和存在较多易分类的样本时相比 binary_crossentropy
具有明显的优势。
它有两个可调参数,alpha
参数和gamma
参数。其中alpha
参数主要用于衰减负样本的权重,gamma
参数主要用于衰减容易训练样本的权重。
完整代码地址
完整代码请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~
最后:如果本文中出现任何错误,请您一定要帮忙指正,感激~
参考
[1] 统计学习方法(第2版) 李航
[2] 机器学习(西瓜书) 周志华