机器学习(二):机器学习中的几个基本概念

前言

对于《统计学习方法》中遇到的一些问题,以及机器学习中的一些自己没有理解透彻的问题,希望通过梳理总结能够有更深入的理解。


在上一章最开始我们已经概括了统计学习方法的三要素,即模型、策略、算法,这里就不再详述了。

本文讨论总结了如下几个概念:损失函数与风险函数、经验风险最小化与结构风险最小化、欠拟合与过拟合、正则化、生成模型与判别模型等。这些都是机器学习中的常见问题,这里仅做一个梳理,不能保证非常全面,不足之处烦请指正。



1. 损失函数与风险函数

(1) 损失函数

损失函数(Loss Function),也称代价函数(Cost Function),是用来度量预测的错误程度的函数,是预测值 f ( X ) f\left( X \right) f(X)和实际值 Y Y Y非负实值函数,记作 L ( Y , f ( X ) ) L\left( {Y,f\left( X \right)} \right) L(Y,f(X))

常用的损失函数如下:

0-1损失函数: L ( Y , f ( X ) ) = { 0 , Y ≠ f ( X ) 1 , Y = f ( X ) L\left( {Y,f\left( X \right)} \right) = \left\{ \begin{array}{l} 0{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} Y \ne f\left( X \right)\\ 1{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} Y = f\left( X \right) \end{array} \right. L(Y,f(X))={0,Y̸=f(X)1,Y=f(X)

平方损失函数: L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L\left( {Y,f\left( X \right)} \right) = {\left( {Y - f\left( X \right)} \right)^2} L(Y,f(X))=(Yf(X))2

绝对损失函数: L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L\left( {Y,f\left( X \right)} \right) = \left| {Y - f\left( X \right)} \right| L(Y,f(X))=Yf(X)

对数或对数似然损失函数: L ( Y , P ( Y ∣ X ) ) = − log ⁡ P ( Y ∣ X ) L\left( {Y,P\left( {Y\left| X \right.} \right)} \right) = - \log P\left( {Y\left| X \right.} \right) L(Y,P(YX))=logP(YX)

(2) 风险函数

风险函数(Risk Function),也称期望损失(Excepted Loss),用来表示损失函数的期望。具体的说,就是表示理论上模型 f ( X ) f\left( X \right) f(X)关于联合概率分布 P ( X , Y ) P\left( {X,Y} \right) P(X,Y)平均意义下的损失,即:
R exp ⁡ ( f ) = E P [ L ( Y , f ( X ) ) ] = ∫ X × Υ L ( y , f ( x ) ) P ( x , y ) d x d y {R_{\exp }}\left( f \right) = {E_P}\left[ {L\left( {Y,f\left( X \right)} \right)} \right] = \int_{{\rm X} \times \Upsilon } {L\left( {y,f\left( x \right)} \right)P\left( {x,y} \right)dxdy} Rexp(f)=EP[L(Y,f(X))]=X×ΥL(y,f(x))P(x,y)dxdy然而,一般情况下样本的联合概率分布是未知的(如果已知就可以直接求出条件概率分布了),学习的目标则是选择期望风险最小的模型,这是矛盾的。

那么,如何解决这一问题呢?
这里,考虑模型 f ( X ) f\left( X \right) f(X)关于 N N N个样本的训练数据集的平均损失,即经验风险(Empirical Risk)或经验损失(Empirical Loss):
R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) {R_{emp}}\left( f \right) = \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i},f\left( {{x_i}} \right)} \right)} Remp(f)=N1i=1NL(yi,f(xi))可以看到,期望风险 R exp ⁡ ( f ) {R_{\exp }}\left( f \right) Rexp(f)是模型关于联合分布的期望损失,经验风险 R e m p ( f ) {R_{emp}}\left( f \right) Remp(f)是模型关于训练集的平均损失。

由大数定律知,当样本容量 N N N趋于无穷时,经验风险趋于期望风险。那么,似乎就可以用经验风险估计期望风险了。但是,实际上训练样本数目都是有限的,甚至有时候样本数目很小,那么这样估计就会有很大偏差。因此,需要对经验风险进行一定的矫正,这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。

注:
这里简单说一下大数定律(辛钦大数定律):对于相互独立同分布的 N N N个样本,及任意的 ε > 0 \varepsilon > 0 ε>0
lim ⁡ P { ∣ 1 N ∑ i = 1 N x i − E ( x i ) ∣ &lt; ε } = 1 \lim P\left\{ {\left| {\frac{1}{N}\sum\limits_{i = 1}^N {{x_i}} - {\rm E}\left( {{x_i}} \right)} \right| &lt; \varepsilon } \right\} = 1 limP{N1i=1NxiE(xi)<ε}=1


2. 经验风险最小化与结构风险最小化

(1) 经验风险最小化

Empirical Risk Minimization,记作ERM。
ERM策略认为,经验风险最小的模型是最优模型。

当样本容量足够大时,ERM确实能取得很好的学习效果,比如极大似然估计就是ERM的一个例子(参照上一章内容)。
当模型是条件概率分布、损失函数是对数损失函数时,ERM等价于极大似然估计。

但是,当样本容量很小时,ERM的学习效果就不太好,很容易“过拟合”。

(2) 结构风险最小化

Structural Risk Minimization,记作SRM。
SRM是为了防止过拟合而提出的策略,等价于正则化。

结构风险是在经验风险上加上表示模型复杂度的正则化项或惩罚项,即:
R S R M ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) {R_{SRM}}\left( f \right) = \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i},f\left( {{x_i}} \right)} \right)} + \lambda J\left( f \right) RSRM(f)=N1i=1NL(yi,f(xi))+λJ(f)其中 J ( f ) J\left( f \right) J(f)为模型复杂度,是定义在假设空间上的泛函,模型 f f f越复杂, J ( f ) J\left( f \right) J(f)就越大,即复杂度表示了对复杂模型的惩罚。

SRM需要经验风险和模型复杂度同时最小化,比如最大后验估计就是SRM的一个例子(同样参考上一章内容)。
当模型是条件概率分布、损失函数是对数损失函数、模型复杂度有模型先验概率表示时,SRM等价于MAP。


3. 欠拟合与过拟合

对于一个模型而言,我们希望在训练的时候能够获得较小的训练误差,同时测试的时候能够使测试误差与训练误差的偏差尽可能小。那么,这就涉及到机器学习的两个基本概念:欠拟合和过拟合,即underfitting和overfitting。

(1) 欠拟合

什么是欠拟合?欠拟合是指模型不能在训练集上获得足够低的误差。
简单地说,就是模型训练都没有做好,就更不用说测试误差了。

(2) 过拟合

那么什么是过拟合呢?过拟合是指训练误差和测试误差之间的偏差太大了。
简单地说,就是模型训练误差很小,甚至于把不合适的样本(包括噪点)都作为有用样本进行训练,那么模型虽然对训练集拟合很好,但泛化性很差,在测试集上就会出现较大的误差。

(3) 如何解决欠拟合和过拟合呢?

一般来说,模型容量过小易出现欠拟合,过大则易出现过拟合。

那么什么是模型容量呢?和样本容量不同,通俗地说,模型容量是指其拟合各种函数的能力。换句话说,我们可以将学习算法选择为解决方案的函数集,这样通过改变输入特征的数目和加入这些特征对应的参数,从而改变了模型的容量。当然容量不仅取决于模型的选择,还有很多其他方法,这里暂时不做讨论了(其实是还没研究过)。

相对于欠拟合,过拟合大概是机器学习中更容易遇到也更重要的问题。一味追求提高对训练集的预测能力(即小误差),使所选模型复杂度过大、参数过多,从而产生过拟合。那么,要解决过拟合问题,可以考虑以下常用方法:
a.重新整理数据,尽可能去掉噪声数据;
b.增大训练数据量,过小的训练集容易出现过拟合;
c.采用dropout方法,一般用于神经网络训练中,简单地说就是每层以一定概率选择保留的神经元(即对应的参数),降低神经网络的复杂度;
d.正则化。


4. 正则化

前面说过,结构风险最小化(SRM)等价于正则化。其实正则化就是模型选择的典型方法,具体来说就是给目标函数(一般是损失函数)加上一个正则项或惩罚项,从而达到降低模型复杂度、提高模型泛化能力的作用。
正则项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。常用的正则项为 L p {L_p} Lp范数,包括 L 1 {L_1} L1范数、 L 2 {L_2} L2范数等。

这里顺便总结一下常用 L p {L_p} Lp范数的意义和作用:
L 0 {L_0} L0范数:表示向量 X X X中非零元素的个数,但是 L 0 {L_0} L0范数很难写成一个好的数学表达式,很难优化求解,因此实际上是一个NP难问题;
L 1 {L_1} L1范数:表示向量 X X X中非零元素的绝对值之和,也称为稀疏规则算子,可以实现特征稀疏从而去掉无用特征,实际上是 L 0 {L_0} L0范数的最优凸近似;
L 2 {L_2} L2范数:表示向量 X X X中各元素的平方和开根的结果,多用于防止过拟合、提高模型泛化能力;
L ∞ {L_\infty } L范数:表示向量 X X X中元素的最大值。


5. 生成模型与判别模型

生成模型和判别模型是监督学习中的两类模型,一般用于解决不同类型的问题。

(1) 生成模型

由训练数据学习样本的联合概率分布 P ( X , Y ) P\left( {X,Y} \right) P(X,Y)并求出相应的条件概率分布 P ( Y ∣ X ) P\left( {Y\left| X \right.} \right) P(YX)作为预测,这样的模型称为生成模型。

生成模型表示了给定输入产生输出的生成关系(即联合分布 P ( X , Y ) P\left( {X,Y} \right) P(X,Y))。

典型方法有朴素贝叶斯法、混合高斯模型和隐马尔可夫模型。

生成模型的优点
a.可以还原出联合概率分布 P ( X , Y ) P\left( {X,Y} \right) P(X,Y),而判别模型不能;
b.学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
c.当存在隐变量时,生成模型仍然可以学习(比如混合高斯模型就是加入隐变量的生成方法),而判别模型不能。

生成模型的缺点
a.联合分布的确能够提供更多的信息,但同样需要更多的样本和更多的计算;
b.如果只是对样本进行分类,那么生成模型计算得到的关于类条件概率的许多信息就用不到了,浪费了计算资源;
c.实践中判别模型效果更好。

(2) 判别模型

由训练数据集学习条件概率分布 P ( Y ∣ X ) P\left( {Y\left| X \right.} \right) P(YX)或者决策函数 f ( X ) f\left( X \right) f(X)作为预测,这样的模型称为判别模型。

判别模型表示了对于给定的输入 X X X,应该预测得到什么样的输出 Y Y Y

典型方法有:K-近邻、感知机、决策树、logistic回归、最大熵、支持向量机、提升方法和条件随机场等。

判别模型的优点
a.可以直接学习条件概率分布 P ( Y ∣ X ) P\left( {Y\left| X \right.} \right) P(YX)或者决策函数 f ( X ) f\left( X \right) f(X),那么就是直接面向预测,往往学习准确率更高;
b.由于直接学习的 P ( Y ∣ X ) P\left( {Y\left| X \right.} \right) P(YX) f ( X ) f\left( X \right) f(X),可以对数据进行各种程度上的抽象、定义特征并使用这些特征,因此可以简化学习问题;
c.需要比生成模型更少的样本,节省了计算资源。

判别模型的缺点
即生成模型的优点。


6. 小结

本章主要梳理了机器学习中的几个基本概念,可能有些地方说的不是很清楚,见谅。另外,生成模型和判别模型只是进行了列举,具体的模型构造过程和推导过程这里就不再详述了,感兴趣的朋友可以自行搜索相关内容。如果有时间,后面也许我会写一些相关的模型的介绍。当然,一切随缘,哈哈哈!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
介绍了机器的数学知识,假设函数 是 上具有阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值