统计学习方法简介
统计学习方法简介
对整本书以及统计学习的套路进行一个一般化的讲解, 后文也都按照这个模式来写的, 文章的结构很清晰
概述
- 主要讲监督学习,包括分类、标注、回归问题
监督学习的条件
- 给定的、有限的训练数据
- 假设数据独立同分布
- 假设要学习的模型属于某个函数的集合,称为假设空间
- 应用某个评判准则,从假设空间中选取一个最优的模型
- 最优模型的选取由算法实现
统计学习方法步骤
- 得到一个有限的训练数据集合;
- 确定包含所有可能的模型的假设空间,即学习模型的集合;
- 确定模型选择的准则,即学习的策略;
- 实现求解最优模型的算法,即学习的算法;
- 通过学习方法选择最优模型;
- 利用学习的最优模型对新数据进行预测或分析。
统计学习三要素
方法 = 模型 + 策略 + 算法
模型就是所要学习的条件概率分布或决策函数。
损失函数(loss function)或代价函数(cost function):度量预测错误的程度。损失函数是非负实值函数,通常记作
常用损失函数有以下几种:
- 0-1 损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数或对数似然损失函数( loglikelihood loss function )
损失函数值越小,模型越好。由于模型的输入、输出
损失函数的期望称为风险函数(risk function) 或期望损失(expected loss)。
学习的目标就是选择期望风险最小的模型,但是联合分布
根据大数定律,当样本容量 N 趋近于无穷时,经验风险趋于期望风险,但是由于现实中的训练样本数目有限,甚至很小,需要对经验风险进行矫正。这里关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
经验风险函数最小化和结构风险函数最小化
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险函数最小化 (empirical risk minimization,ERM)的策略认为经验风险函数最小的模型是最优的模型,也就是经验风险最小化求最优模型就是求解最优化问题:
F 是假设空间
当样本容量足够大时,经验风险最小化能保证有很好的学习效果。极大似然估计就是经验风险最小化的一个例子:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等于极大似然估计。
当样本容量很小时,会产生过拟合(over-fitting)现象。结构风险最小化(structural risk minimization, SRM)时为了防止过拟合而提出的策略。
结构风险最小化等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。在假设空间、损失函数以及训练数据集确定的情况下,结构风险函数的定义是:
其中
结构风险最小化的策略认为结构风险最小的模型使最优的模型。所以求最优模型,就是求解最优化问题:
这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题,这时经验或结构风险函数是最优化的目标函数。
模型评估与模型选择
训练误差与测试误差
假设学习到的模型是
其中
测试误差是模型关于测试数据集的平均损失:
其中
训练误差的大小,对判定给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。显然测试误差小的方法具有更好的预测能力。通常将学习方法对未知数据的预测能力称为 泛化能力(generalization ability)。
过拟合与模型选择
当假设空间含有不同复杂度的模型时,就要面临模型选择问题。选择的模型应逼近真模型(真模型是我们的目标)。所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。如果一直提高对训练数据的预测能力,那么所选择模型的复杂度往往会比真模型高,造成过拟合现象。过拟合指的是学习时选择的模型包含的参数过多,导致对已知的数据预测的很好,但是对未知的数据预测的很差的现象。比如在回归问题中,用0~9次多项式函数对数据进行拟合,设M次多项式为:
对应10个点,不同M次多项式的拟合图形如下:
M = 0 和 M = 1 时,数据拟合效果差,不可取; M = 9 时 数据拟合非常好,但是因为训练数据本身存在噪声,这种拟合曲线对未知数据的预测能力往往不是最好的(甚至很差),这时便会发生过拟合现象。M = 3 时,多项式曲线对训练数据的拟合效果已足够好,模型也比较简单,是一个较好的选择。
在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型。
可以通过训练误差和测试误差的偏离程度看出模型是否过拟合,然后选择复杂度适当的模型,以达到测试误差最小的学习摸底。
下面介绍两种常用的模型选择方法:正则化与交叉验证。
正则化与交叉验证
正则化(regularization)
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。比如正则化项可以是模型参数向量的范数。
正则化一般具有如下形式:
其中第 1 项是经验风险,第 2 项是正则化项,
正则化项可以取不同的形式,比如在回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:
或L1范数:
交叉验证(cross validation)
如果给定样本数据充足,进行模型选择的一种简单方式是随机地将数据集切成三部分:训练集(training set)、验证集(validation set) 和 测试集(test set)。训练集用来训练模型,验证集用于模型选择,测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。
但是在许多实际应用中,数据是不充足的,这时需要采用交叉验证法。交叉验证的基本想法是重复的利用数据:把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复地进行训练、测试以及模型选择。
- 简单交叉验证
简单交叉验证方法是:首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的。
- S 折交叉验证(S-fold cross validation)
应用最多的是 S 折交叉验证,方法如下:首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S中选择重复进行;最后选出S次评测中平均测试误差最小的模型。
- 留一交叉验证(leave-one-out cross validation)
S 折交叉验证的特殊情形是
泛化能力
泛化误差(generalization ability)
学习方法的泛化误差是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中通常通过测试误差来评价学习方法的泛化能力。统计学习理论试图从理论上对学习方法的泛化能力进行分析。首先给出泛化误差的定义。如果学到的模型时
泛化误差反映了学习方法的泛化能力,泛化误差越小模型越有效。泛化误差就是所学习到的模型的期望风险。
(留坑)泛化误差上界
生成模型与判别模型
监督学习方法又可分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。
生成方法由数据学习联合概率分布
这样的方法之所以称为生成方法,是因为模型表示了给定了输入 X 产生输出 Y 的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数
生成方法与判别方法的优缺点
生成方法的特点:生成方法可以还原出联合概率分布
判别方法的特点:判别方法直接学习决策函数
参考
[1] 李航. 《统计学习方法》[M]. 北京:清华大学出版社,2012:1-18