机器学习算法原理系列篇6: 机器学习算法的推广性

关注公众号id:  robot-learner

 

 

按照这个系列的倒叙手法,我们现在退回到机器学习本身来。

 

提到机器学习,首先要问的是到底什么是机器学习。早在1959年,美国计算机人工智能和游戏领域的先驱者Arthur Samuel 认为机器学习给予“computers the ability to learn without being explicitly programed” (译:即使不明确编码也能使计算机拥有学习的能力)。 1997年,机器学习领域的先驱者,卡耐基.梅隆的Tom M. Mitchel 教授提出一个更为广泛被接受和正式的定义:”A computer program is said to learn from Experiences E with respect to some class of tasks T and performance P (,) if its performance at tasks in T, as measured by P, improves with experiences E“。(译:针对某种类型的任务T, 一个计算机程序可以被称为从经验E得到学习并且效果为P, 如果这个效果P可以随着经验E的增多而提高)。简单来说,机器学习是一种利用统计方法给予计算机学习能力的方法。

 

机器学习和统计其实都有相同的目标: 从数据中学习。但是具体的手段和理念有所不同。机器学习是计算机科学的一个分支,侧重的是从数据中建立有机的系统,而不是用目的明显的规则去编程。而统计是数学的一个分支,侧重的用数学公式建立变量之间的联系。近年来,随着计算机硬件成本的不断降低和数据量的极大增加,数据科学家得以利用机器学习手段来分析和挖掘数据。另一方面,统计建模技巧早在计算机问世前就已经存在。

 

 

    1. 机器学习结果推广性

 

对于机器学习问题而言,我们最关心的是算法的预测效果。但是算法训练结果都来自于训练数据,因此核心问题转化为算法的推广误差或者generalization error。对此,机器学习有其理论框架,从根本上保证了机器学习的推广性。有两种常用的理论框架,如下表所示:

 

 

PAC框架

Agnostic 框架

假设

存在一个H空间中的假设h, 和样本中的标签一致

对样本标签没有先验的限制

误差

从样本中学到的假设,其误差有绝对上限

样本中学到的假设只是和最好的假设有相对的误差

 

以相对简单的PAC框架为例, PAC把下面几个相关问题综合起来:(1)训练数据样本的大小为m,(2)满足数据的所有可能的假设或者概念空间H, (3)得到的假设与真正目标概念之间的误差ε,(4)机器学习成功的概率δ。在PAC框架下,我们可以保证,机器学习可以学到这样一个假设 h,随着数据的增加,其误差接近于0,而得到误差接近于0的概率接近于1:

 

errh ≈0  

Perrh ≈0 ≈1

 

上述公式表达的意思就是,随着数据的增加,机器学习找到一个误差接近于0的真实结果的统计概率是非常大的。 这便从理论上保证了训练数据得出的机器学习结论可以推广到更大的数据空间中。

 

对于一个具体的机器学习问题,我们可以进一步计算期望的推广性误差(expected generalization error)。假如真实的目标方程为y=f(x) (x为自变量特征, y为目标变量),而自变量和目标变量观察值为x1,…,xn , 和对应每一个xi 的yi 。y的观察值和真实值通常满足这一关系:y = f(x)+ε。ε是噪音或者固有误差,满足高斯分布,其平均值为0,方差为δ2 。通过机器学习,我们的任务是要找一个近似方程来 f(x)  来尽可能的逼近真实的方程f(x) 。而测量拟合效果的方法就是通过均方差的方式:

 

Ey-fx2=Biasfx2+Varfx+δ2

 

其中

 

Biasfx=Efx-fx

Varfx=Efx2-Efx2

 

上式的证明过程在这里忽略,其结论的重要意义在于,机器学习总的误差可以被分解为偏差和方差两个部分。这就说明要减少机器学习算法的误差,要尽可能的减少两个误差来源。如果只关注一个来源,另一个来源通常会增加,从而导致总的误差并不能减少。

 

 

那么如何理解偏差和方差的区别呢?举一个打靶的例子便可以形象的说明问题。假设四个射手连续射击100次,每个人的靶子弹孔分布如下图所示。

 

 

 

低偏差的情况是所有弹孔离靶心的平均距离小。上图中的最上面两个靶子就属于这种情况。低方差的情况则是所有弹孔的位置的分布范围比较小。上图中的最左边两个靶子属于这种情况。 多数人应该都会同意,在上面四种情况中,低偏差和低方差的情况最理想。

 

 

在上面射手的例子中,偏差和方差的情况取决于射手本身的素质。而在机器学习算法训练中,偏差或方差则跟模型的复杂度有直接关系。下图所示为偏差和方差分别随着模型复杂度提升的变化情况:

 

 

 

如上图所示,随着模型复杂度上升,模型的偏差总是会逐步降低,但是方差却会逐渐上升。根据上面得到的模型误差分解公式,我们可以看出,最小的模型误差所对应的模型复杂度不能太小也不能太大。

 

举一个例子,在线性回归模型中,模型的参数越多,模型的复杂度越高。如果我们用100个维度的线性回归模型去拟合100个训练数据点,我们就会得到完美的预测结果。但是很显然,这种模型并不适合推广。另一方面,如果我们用有限的维度(模型复杂度低),比如用1次线性回归去拟合一条复杂曲线,其效果也不会太好。

 

发布了21 篇原创文章 · 获赞 2 · 访问量 4422

猜你喜欢

转载自blog.csdn.net/robot_learner/article/details/103640255
今日推荐