李航《统计学习方法》--第一章

统计学习是关于计算机 基于数据 构建概率统计模型 并运用模型对数据进行分析和预测 的一门学科。

统计学习三要素:模型,策略,算法

模型

在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。在书中称有决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型。

策略

策略就是按照什么样的标准学习或选择最优的模型。统计学习的目的在于从假设空间中选取最优模型。
损失函数:用损失函数或代价函数来度量预测错误的程度。损失函数是f(X)和Y的非负实值函数,记做 L(Y,f(X)) L ( Y , f ( X ) ) .常用的损失函数有0-1损失函数,平方损失函数,绝对损失函数,对数损失函数(对数似然损失函数)。
损失函数的期望称为风险函数或期望损失,是模型 f(X) f ( X ) 关于联合分布 P(X,Y) P ( X , Y ) 的平均意义下的损失,但 P(X,Y) P ( X , Y ) 并不已知。经验风险是模型关于训练样本集 的平均损失,当训练样本量很大时,经验风险可以趋近于期望风险。但是,训练样本往往有限,仅仅依靠经验风险最小化(极大似然估计就是经验风险最小化的一个例子)可能造成过拟合问题,于是提出了结构风险最小化。结构风险最小化等价于正则化,就是在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间、损失函数以及训练数据集确定的条件下,结构风险的定义是

Rsrm(f)=1Ni=1NL(yi,f(xi))+λJ(f) R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f )
.其中, J(f) J ( f ) 为模型的复杂度,是定义在假设空间上的泛函。 贝叶斯估计中的最大后验概率估计就是结构风险最小化的一个例子。(P49证明了生成方法下的推导)
公式第一项就是损失函数的期望,当损失函数为平方损失函数时,就是最小二乘;当损失函数为hingge loss function(合页损失函数 P113)时为SVM ;当损失函数为指数函数时为前向分布加法算法(adaboos)P145;如果是log-loss(对数损失函数),那就是logistics regression(逻辑斯蒂回归)。不同的损失函数具有不同的拟合特性。

算法:

算法是指学习模型的具体方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。

训练误差和测试误差

模型评估中会使用训练误差和测试误差,其中测试误差反应了学习方法对未知数据的预测能力,是衡量模型的一个重要标准。如果我们一味追求比较低的训练误差,就会造成过拟合现象。防止过拟合现象的两个方法是:正则化与交叉验证正则化在前面讲过,也就是在经验风险上加上一个正则化项,这个正则化项可以是参数向量的 L2 L 2 , L1 L 1 范数。
正则化符合奥卡姆剃刀原理:在所有可能选择的模型中,能够很好地解释数据并且十分简单才是最好的模型。
交叉验证:当样本充足时,采用将样本划分为训练集,验证集和测试集的方法。训练集来训练不同的模型,验证集从这么多模型中选取一个最优的模型,测试集用于最终对结果的评估;当样本不充足时,需要采用交叉验证的方法,1)简单交叉验证:将数据分为两部分,训练集和验证集,选出测试误差最小的模型。2)S折交叉验证(最常用):首先随机地将已给数据分为S个互不相交的大小相同的子集,然后利用S-1个子集的数据训练模型,利用余下的子集测试模型,将这一过程对可能的S中选择重复进行,最后选出S次评测中平均测试误差最小的模型。也就是说对每一种模型可以训练S次,得到S个测试结果,这比第一种方法只能训练一次就好得多。3)留一交叉验证,就是S=N的情况。当数据缺乏的情况下使用。

泛化能力

现实中一般通过测试误差来评价学习方法的泛化能力,但测试数据有限,因此并不准确,统计学习理论试图从理论上对学习方法的泛化能力进行分析。实际上,泛化误差就是所学习到模型的期望风险。

生成模型和判别模型

生成方式由数据学习联合概率分布,然后求出条件概率分布 P(X,Y) P ( X , Y ) 作为预测的模型,即生成模型:

P(Y|X)=P(X,Y)P(X) P ( Y | X ) = P ( X , Y ) P ( X )
.这样的方法称为生成方法是因为模型给定了输入X产生输出Y的关系。典型的生成模型有:朴素贝叶斯法和隐马尔科夫模型。
判别方法由数据直接学习决策函数 f(X) f ( X ) 或者条件概率分布 P(Y|X) P ( Y | X ) 作为预测的模型,及判别模型。判别方法关心的是对于给定的输入X,应该预测什么样的输出Y。典型的判别模型:k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场。

总结:

1.三要素:模型,策略,算法。其中对策略讲解的最多,策略实际上是定义一个损失函数来选择一个最优的模型,并使得它的期望损失最小,但期望损失很难求得,所以在监督学习中,一般使用两种策略:经验风险最小化和结构风险最小化,结构风险最小化也就是在经验风险最小化的公式基础上加上一个正则化项来表示模型的复杂度。
2.正则化项:
他们都是可以防止过拟合,降低模型复杂度。因为参数也就是拟合曲线在某一点的导数,参数越大说明在较小的区间内有较大的曲率,所以参数越小说明波动越小,模型越简单。
L0正则化的值是模型参数中非零参数的个数。利用非零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,但因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。
L1是在loss function后面加上 模型参数的1范数(也就是|xi|)
L2是在loss function后面加上 模型参数的2范数(也就是sigma(xi^2)),注意L2范数的定义是sqrt(sigma(xi^2)),在正则项上没有添加sqrt根号是为了更加容易优化
L1 会产生稀疏的特征; L2 会产生更多地特征但是都会接近于0
L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。L1在特征选择时候非常有用,而L2就只是一种规则化而已。
L1范数:Laplace先验和L2范数:Gaussian先验
3.为什么L1正则化可以产生稀疏模型,而l2正则只能将参数逼近0?
考虑一个特征点 wi w i ,当改变目标函数为 L=l1+C|wi| L = l 1 + C | w i | 时,当参数 xi x i 大于0时,目标函数对参数 wi w i 的倒数为 (wi)l1+C ∂ ( w i ) l 1 + C ,当参数 xi x i 小于0时,倒数为 (wi)l1C ∂ ( w i ) l 1 − C ,因此只要 regularization 项的系数 C 大于原先损失函数在 0 点处的导数的绝对值,那么在 xi x i 负半轴内损失函数下降,正半轴损失函数增长,因此x = 0 就会变成一个极小值点。
而对于l2正则,如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。

你可能感兴趣的:(机器学习算法)