机器学习--基本概念(二)

文章转自(有图)http://burningcloud.cn/article/103/index.html

机器学习 | 基本概念(二)

各位读者大家好,这周我将把机器学习基本概念的剩余部分讲完。

模型评估与模型选择

统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力,所以训练误差和测试误差就自然成为了学习方法评估的标准。

顾名思义,训练误差就是模型对训练集的平均损失,测试误差就是模型对测试集的平均损失。训练集对于判断给定的问题是否是一个容易学习的问题有意义,然而本质上并不重要。测试误差是非常重要的,它反映了模型对未知数据的预测能力,通常将学习方法对位置数据的预测能力成为泛化能力(generalization ability),我们在后文继续说明。

过拟合

当假设空间含有不同复杂度的模型时,就要面临模型选择的问题。然而如果一味追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型更高,这种现象便被称为过拟合。

过拟合指的是学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。在多项式函数拟合中可以看到,随着多项式次数(模型复杂度)的增加,训练误差会减小,直至趋向于0,但是测试误差却不如此,它会随着模型复杂度的增加先减小而后增大。如下图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qbiytgWF-1602304647775)(捕获.PNG)]

训练的最终目的是使测试误差达到最小。学习时要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。下文介绍两种常用的模型选择方法:正则化与交叉验证。

正则化与交叉验证

正则化

正则化(regularization)是模型选择的典型方法,它是上一篇文章中提到的结构风险最小化策略的实现。正则化在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。

正则化项一般具有如下的形式:
m i n 1 N ∑ i = 1 N L ( y i , ƒ ( x i ) ) + λ J ( ƒ ) min \frac{1}{N}\sum_{i=1}^NL(y_i, ƒ(x_i)) + \lambda J(ƒ) minN1i=1NL(yi,ƒ(xi))+λJ(ƒ)
其中第一项是经验风险,第二项是正则化项, λ \lambda λ$\geq$0为调整两者关系的系数。

正则化的作用是选择是选择经验风险与模型复杂度同时较小的模型。随着模型越来越复杂,正则化项的值会越来越大。正则化符合奥卡姆剃刀原理:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型。从贝叶斯估计的角度来看正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

交叉验证

交叉验证也是一种常用的模型选择方法。它的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。交叉验证用于样本数据不足的情况。

  1. 简单交叉验证

    随机地将已知数据分为两部分,一部分作为训练集,一部分作为测试集;然后用训练集训练,在测试集上评估各个模型的测试误差,选出测试误差最小的模型。

  2. S折交叉验证

    这是应用最多的交叉验证方式。首先随机地将已知数据切分成S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用剩下的子集测试模型;将这一过程对可能的S中选择重复进行;最后选出S次评测中平均测试误差最小的模型。

  3. 留一交叉验证

    这是S折交叉验证的特殊情况,S = N,即每个子集中只有一个数据,往往在数据缺乏的情况下使用。

泛化能力

泛化能力指的是模型对未知数据的预测能力,是学习方法本质上重要的性质。采用最多的方法是通过测试误差来评价泛化能力,然而测试数据集有限,所以评价结果是不可靠的。所以提出泛化误差来对泛化能力进行评价。

泛化误差实际上就是所学习到的模型的期望误差,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么前者就更有效。

泛化能力的分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界。下面我们将开始讲解泛化误差上界。

泛化误差上界

定理1.1(泛化误差上界) 对二分类问题,当假设空间是有限个函数的集合F = {ƒ1, ƒ2, …, ƒd}时,对任意一个函数ƒ∈F,至少以概率1- δ \delta δ, 以下不等式成立:
R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ ) R(f) \leq \hat{R}(f) + \varepsilon(d, N, \delta) R(f)R^(f)+ε(d,N,δ)
其中,
ε ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ ) \varepsilon(d, N, \delta) = \sqrt{\frac{1}{2N}(logd + log\frac{1}{\delta})} ε(d,N,δ)=2N1(logd+logδ1)
第一个不等式左端为泛化误差,右端为泛化误差上界,在泛化误差上界中,第一项是训练误差,训练误差越小,泛化误差越小。第二项是N的单调递减函数,当N趋于无穷时趋于0;同时它也是 l o g d \sqrt {logd} logd 阶的函数,假设空间F包含的函数越多,其值越大。

总结来说:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。

生成模型与判别模型

监督学习可以分为生成方法和判别方法,学习到的模型分别为生成模型和判别模型。

生成方法

生成方法表示了给定输入X产生输出Y的生成关系。它由数据学习联合概率分布P(X, Y),然后求出条件概率分布P(X | Y)作为预测的模型。典型的生成模型有朴素贝叶斯方法和隐马尔科夫模型。

特点:可以还原出联合概率分布P(X, Y),而判别方法则不能;生成方法学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习而不能用判别方法。

判别方法

判别方法关心的是对给定的输入X,应该预测什么样的输出Y。它由数据直接学习决策模型ƒ(X)或者条件概率分布P(Y | X)作为预测的模型。典型的判别模型有k近邻法、感知机、决策树、最大熵模型、支持向量机、提升方法、条件随机场和逻辑斯谛回归模型等。

特点:判别方法直接学习条件概率或决策函数,往往学习的准确率更高;可以对数据进行抽象、定义特征并使用特征,可以简化问题。

提升方法、条件随机场和逻辑斯谛回归模型等。

特点:判别方法直接学习条件概率或决策函数,往往学习的准确率更高;可以对数据进行抽象、定义特征并使用特征,可以简化问题。

下周我将为大家讲解感知机学习方法,谢谢大家的观看!

猜你喜欢

转载自blog.csdn.net/weixin_43800131/article/details/108994758