统计学习
统计学习主要特点:
- 统计学习以计算机及网络为平台,是建立在计算机及网络之上的;
- 统计学习以数据为研究对象,是数据驱动的学科;
- 统计学习的目的是对数据进行预测与分析;
- 统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析;
- 统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并且在发展中逐步形成独立的理论体现与方法论。
统计学习的组成:
- 监督学习(supervised learning)
- 非监督学习(unsupervised learning)
- 半监督学习(semi-supervised learning)
- 强化学习(reinforcement learning)
统计学习方法的三要素:
- 模型(model)
- 策略(strategy)
- 算法(algorithm)
监督学习
监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。
统计学习三要素
模型
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。
策略
损失函数和风险函数
损失函数
监督学习问题是在假设空间 F 中选取模型 f 作为决策函数,对于给定的输入 X,由 f(X) 给出相应的输出 Y,这个输出的预测值 f(X) 与真实值 Y 可能一致也可能不一致,用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是 f(x) 和 Y 的非负实值函数,记作 L(Y, f(X))
。
常用的损失函数:
- 0-1损失函数(0-1 loss function)
- 平方损失函数(quadratic loss function)
- 绝对损失函数(absolute loss function)
- 对数损失函数(logarithmic loss function)或对数似然损失函数(loglikelihood loss function)
风险函数
损失函数数值越小,模型就越好。由于模型的输入、输出 (X, Y) 是随机变量,遵循联合分布 P(X, Y),所以损失函数的期望是
这是理论上模型 f(X) 关于联合分布 P(X, Y) 的平均意义下的损失,称为风险函数(risk funciton)或期望损失(expected loss)。
学习的目标就是选择期望风险最小的模型。由于联合分布是未知的,所以损失函数的期望不能直接计算。
给定一个训练数据集。模型 f(X) 关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失风险(empirical loss),记作:
根据大数定律,当样本容量 N 趋于无穷时,经验风险趋于期望风险。
经验风险最小化与结构风险最小化
经验风险
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险最小化(empirical risk minimization,ERM)的策略认为,经验风险最小的模型是最优的模型。
当样本容量足够大时,经验风险最小化能保证有很好的学习效果。比如,极大似然估计(maximum likelihood estimation)就是经验风险最小化的例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等驾驭极大似然估计。
但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,就产生“过拟合(over-fitting)“现象。
结构风险
结构风险最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。在假设空间、损失函数以及训练数据集确定的情况下,结构风险的定义是:。其中 J(f) 为模型的复杂度,是定义在假设空间 F 上的泛函。模型 f 越复杂,复杂度 J(f) 就越大;反之,模型 f 越简单,复杂度 J(f) 就越小。
比如,贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)就是结构风险最小化的例子。当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等驾驭最大后验概率估计。
算法
算法是指学习模型的具体计算方法。
模型评估与模型选择
训练误差与测试误差
统计学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。
过拟合与模型选择
如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过于大时,过拟合现象就会发生。这样,在学习时就要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。下面介绍两种常用的模型选择方法:正则化与交叉验证。
正则化与交叉验证
正则化
模型选择的典型方法使正则化(regularization)。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。
正则化符合奥卡姆剃刀(Occam’s razor)原理。奥卡姆剃刀原理应用于模型选择时为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。
交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分为训练集(training set)、验证集(validation set)和测试集(test set)。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终学习方法的评估。
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
简单交叉验证
简单交叉验证方法是:首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
S 折交叉验证
应用最多的是 S 折交叉验证(S-flod cross validation),方法如下:首先随机地将已给数据切分为 S 个互不相交的大小相同的子集;然后利用 S-1 个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的 S 种选择重复进行;最后选出 S 次评测中平均测试误差最小的模型。
留一交叉验证
S 折交叉验证的特殊情形是 S=N,称为留一交叉验证(leave-one-out cross validation),往往在数据缺乏的情况下使用。这里,N 是给定数据集的容量。
泛化能力
泛化误差
学习方法的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。
事实上,泛化误差就是所学习到的模型的期望风险。
泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界(generalizaiton error bound)。具体来说,就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
生成模型与判别模型
监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。这个模型的一般形式为决策函数:Y=f(X) 或者条件概率分布:P(Y|X)。
监督学习方法又可分为生成方法(generative approach)和判别方法(discriminative approach)。所学习到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。
生成方法由数据学习联合概率分布 P(X, Y),然后求出条件概率分布 P(Y|X) 作为预测的模型。这样的方法之所以称为生成方法。是因为模型表示了给定输入 X 产生输出 Y 的生成关系。典型的生成模型由:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数 f(X) 或者条件概率分布 P(Y|X) 作为预测的模型,即判别模型。判别方法关系的是对给定的输入 X,应该预测什么样的输出 Y。典型的判别模型包括:k 近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场等。
生成方法的特点:生成方法可以还原出联合概率分布 P(X, Y),而判别方法则不能;生成方法的学习收敛更快,即当样本容量增加的时候,学习的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,此时判断方法就不能用。
判别方法的忒点:判别方法直接学习的是条件概率 P(Y|X) 或决策函数 f(X),直接面对预测,往往学习的准确率更高;由于直接学习 P(Y|X) 或 f(X),可以对数据进行个各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
分类问题
在监督学习中,当输入变量 Y 取有限个离散值时,预测问题便称为分类问题。这时,输入变量 X 可以是离散的,也可以是连续的。监督学习从数据中学习一个分离诶模型或分类决策函数,称为分类器(classifier)。分类器对新的输入进行输出的预测(prediction),称为分类(classification)。可能的输出称为类(class)。分类的类别为多个时,称为多类分类问题。
评价分类器性能的指标一般是分类准确率(accuracy),其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是 0-1 损失时测试数据集上的准确率。
标注问题
标注(tagging)也是一个监督学习问题。可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测(structure prediction)问题的简单形式。标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学一个模型,使它能够对观测序列给出标记序列作为预测。注意,可能的标记个数是有限的,但其组合所成的标记序列的个数是依序列长度呈指数级增长的。
标注常用的统计学习方法有:隐马尔可夫模型、条件随机场。
回归问题
回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。
回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之前的关系的类型即模型的类型,分类线性回归和非线性回归。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法(least squares)求解。