statistical learning: 基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也称统计机器学习(statistical machine learning)。现在,当人们提及机器学习时,往往是指统计机器学习。
一些要点:
统计学习包括:监督学习(surpervised learning)、非监督学习(unsuprvised learning)、半监督学习(semi-supervised learning)、强化学习(reinforcement learning)。本书主要讨论监督学习。
统计学习三要素:模型(model)、策略(strategy)、算法(algorithm)
监督学习主要用于:分类、标注、回归等问题。这也是本书的主要讨论内容。这些问题在自然语言处理、信息检索、文本数据挖掘等领域有广泛应用。
学习一个模型,使之能够对任意给定的输入,对其相应的输出做一个很好的预测。
监督学习基本假设:输入与输出的随机变量X和Y服从联合概率分布P(X,Y)。
统计学的的模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space), 也就是模型的学习范围。
监督学习可以是概率模型或者非概率模型。概率模型由条件概率分布*P(Y|X)表示,非概率模型由决策函数*(decision function) Y = f(X)
表示。
方法 = 模型 + 策略 + 算法
模型就是要学习的条件概率或者决策函数。假设空间包含所有可能的概率分布或决策函数。
按什么样的准则学习和选择模型? 本质上是要在假设空间中选择最优模型。
常用损失函数(loss function)、代价函数(cost function)来度量预测错误的程度。常用损失函数:
损失函数越小,那么模型就越好。由于(X,Y)服从联合概率分布P(X,Y),所以损失函数的期望是:
学习的目的就是要选择期望风险最小的模型。由于联合分布P(X,Y)未知,所以 Rexp 无法计算。事实上,如果知道了联合概率分布,那么就可以直接得到条件概率分布P(X,Y),就不需要学习了。这样,二者就形成了矛盾,一方面计算期望风险需要用到联合概率分布,另一方面联合概率分布又未知,所以监督学习成为一个病态问题(ill-formed problem)。
我们通常用经验风险(empirical risk)或经验损失(empirical loss)来替代期望损失。
根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。然而,现实情况下,当训练样本有限时,就需要对经验风险进行校正,这就涉及到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
经验风险最小化(empirical risk minimization, ERM)认为:经验风险最小的模型是最优模型。当样本容量足够大的时候,经验风险最小化能保证有很好的学习效果。如极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子,当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
但是,当样本容量很小时,经验风险最小化学习的效果未必花很好,反而会产生过拟合现象。
结构风险最小化(structural risk minimization, SRM)是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。结构风险小的模型往往对训练数据和测试数据都有较好的预测。
贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation)就是结构风险最小化的例子。当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型先验概率表示时,结构风险最小化就等价于最大后验概率估计。
结构风险最小化策略认为结构风险最小的模型就是最优的模型。
这样,监督学习问题就变成了经验风险或结构风险函数的优化问题。
训练误差(training error)对可以判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。
测试误差(test error)反映了学习方法对未知的测试数据集的预测能力。
通常将学习方法对未知数据的预测能力称为泛化能力。
过拟合是指学习时选择的模型所含的参数过多,以至于出现这一模型对已知数据预测的很好,但对位置数据预测的很差的现象。
两种常见的模型选择方法:正则化和交叉验证。
正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(或罚项)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。
正则化项一般具有以下形式:
正则化项可以取不同的形式。如在回归问题中,损失函数是平方损失,正则化项可以是参数向量的 L2 范数:
正则化项也可以是参数向量的 L1 范数:
如果样本充足,进行模型选择的一种简单方法是随机的将数据集分成三部分,分别为训练集(training set)、验证集(validation set)、测试集(test set)。训练集用于训练模型,验证集用于模型选择,测试集用于最终对学习方法的评估。
但是,实际情况下经常会出现数据不充足的情况。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复使用数据;把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复地进行训练、测试以及模型选择。
随机将数据集分成训练集和测试集两部分;
然后用训练集在各种条件下训练模型,从而得到不同的模型;
在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
首先随机将数据分为S个互不相交的大小相同的子集;
然后利用S-1个子集的数据训练模型,利用剩余的子集测试模型;
将这一过程对可能的S种选择重复进行;
最后选出S次评测中平均测试误差最小的模型。
S折交叉验证的特殊情形,S=N,往往在缺乏数据的情况下使用。
学习方法的泛化能力(generalization ability)是指由该学习方法学习到的模型对未知数据的预测能力,是学习方法本质上最重要的性质。
现实中采用最多的方法是通过测试误差来评价学习方法的泛化能力。
监督学习可分为生成方法(generative approach)和判别方法(discriminative approach),学习到的模型称为生成模型和判别模型。
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型。
典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数作为预测模型,判别方法关心的是对给定的输入X,应该预测什么样的输出。
典型的判别模型有:k紧邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法、条件随机场。
生成方法:
判别方法:
评价方法:准确率,召回率, F1
常用统计学习方法:
分类问题的推广,是更复杂的结构预测问题的简单形式。输入是一个观测序列,输出是一个标记序列或状态序列,目的在于学习一个模型,使它能够对观测序列给出标记序列作为预测。
评价方法:与分类问题类似
常用统计学习方法:
标注问题在信息抽取、自然语言处理等领域被广泛应用,是这些领域的基本问题。
用于预测输入变量与输出变量之间的关系。
回归问题最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法求解。