这是对《统计学习方法》第一章的一个总结,记录一些基础的概念、定义和术语,理清统计学习方法的各个方面,开始系统地学习这个领域。
统计学习
统计学习(statistical learning)是关于计算机基于数据构建概率统计模型,并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习。统计学习用于对数据进行预测和分析。由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)等组成。监督学习方法简单概括为:使用训练数据(training data)(数据是独立同分布产生的),假设要学习的模型属于某个函数的集合,称为假设空间(hypothesis space),应用某个评价准则(evaluation criterion),选择最优的模型,使得训练数据和测试数据(test data)在给定的准则下最优。
统计学习方法的三要素:
- 模型(model)
- 策略(strategy)
- 算法(algorithm)
步骤:
- 得到一个有限的训练数据集合
- 确定包含所有可能的模型的假设空间(学习模型的集合)
- 确定模型选择的准则(学习的策略)
- 实现求解最优模型的算法(学习的算法)
- 通过学习方法选择最优模型
- 利用学习的最优模型对新数据进行预测和分析
监督学习
基本概念
- 输入空间(input space)/输出空间(output space)——分别指输入与输出所有可能取值的空间
- 每个具体的输入是一个实例(instance),通常由特征向量表示(feature vector),对应的空间称为特征空间(feature space)
- 输入输出对称为样本(sample)
- 回归问题(输入输出均为连续变量);分类问题(输出为有限个离散变量);标注问题(输入输出均为变量序列)
- 监督学习假设输入输出的随机变量X和Y遵循一个联合概率分布(即输入输出是有个规则的)
- 监督学习的目的在于学习一个由输入到输出的映射。
- 条件概率分布:(P(Y|X))
- 决策函数(decision function):(Y=f(X))
统计学习的三要素
方法=模型+策略+算法
-
模型
假设空间用(mathcal{F})表示,是一个决策函数的集合:(mathcal{F}= left { f | Y=f(X) ight })
-
策略
引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
-
损失函数
损失函数(loss function)或者代价函数(cost function)度量预测错误的程度,记作(L(Y,f(X)))。有以下几种:
-
0-1损失函数(0-1 loss function)$$L(Y,f(x))=left{egin{matrix}
1, & Y eq f(X)
0, & Y=f(X)
end{matrix} ight$$ -
平方损失函数(quadratic loss function) $$L(Y,f(x))=(Y-f(X))^2$$
-
绝对损失函数(absolute loss function) $$L(Y,f(x))=left |Y-f(X) ight |$$
-
对数损失函数(logarithmic loss function)或者对数似然损失函数(log-likelihood loss function)
[L(Y,P(Y|X)))=-log P(Y|X) ]
-
-
风险函数
损失函数的期望称为风险函数(risk function)或者期望损失(expected loss),即平均意义下的损失:
-
实际上联合分布$P(X,Y)$是未知的,不能直接算出$P(Y|X)$,所有才需要学习。这样一来,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就成为了一个病态问题(ill-formed problem)。
但是训练数据集是已知的,模型$f(x)$关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss),记作$R_{exp}(f)$: $$R_{emp}(f)=frac{1}{N}sum_{i=1}^{N}L(y_i,f(x_i))$$根据大数定理,样本容量$N$趋近无穷时,经验风险趋近于期望风险:$R_{emp}(f)approx R_{exp}(f)$。这样以来,就又可能利用经验风险来估计期望风险,但是由于实际中训练样本数有限,效果不理想,要对经验风险进行一定的矫正——关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
3. 经验风险最小化
经验风险最小化(empirical ridk minimization,ERM)的策略认为经验风险最小的模型就是最优模型:$$min_{fin mathcal{F}}: frac{1}{N}sum_{i=1}^{N}L(y_i,f(x_i))$$这种策略在样本容量足够大的时候很好,但是当样本容量很小的时候,效果未必好,会出现“过拟合”现象。
比如:极大似然估计(maximum likelihood estimation)
4. 结构风险最小化
结构风险最小化(structural risk minimization,SRM)是为防止过拟合而提出的策略,其实等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term):$$R_{srm}(f)=frac{1}{N}sum_{i=1}^{N}L(y_i,f(x_i))+lambda J(f)$$其中$J(f)$为模型的复杂度,模型$f$越复杂,$J(f)$越大,在这里对模型的惩罚也越大。所以,结构风险同时对经验风险和模型复杂度进行权衡,这样往往对训练数据和未知的测试数据都有较好的预测。
比如:贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)
-
算法
考虑用什么样的计算方法求解最优模型,最优化问题。有解析解的话最好了,但是常常没有,就需要数值计算的方法来求解。如何保证找到最优解,并使求解过程十分高效,成为一个重要问题。
模型评估与模型选择
训练误差(training error)和测试误差(test error)作为学习方法评估的标准,实际上测试误差较小的方法具有更好的预测能力,是更有效的方法,这种能力称为泛化能力(generalization ability)
进行模型选择(model selection)时,有些很复杂的模型常常在训练数据中比真实模型看上去误差更小,这种现象称为过拟合(over-fitting),这些复杂的模型在测试数据中没有任何优势。
比如多项式的拟合,如果训练数据量不是足够多,复杂的模型(高阶多项式)可以拟合的很好,比真实的模型还好(因为数据存在噪声),但它的泛化能力太弱,没法很好地预测未知数据。
所以不能让模型的复杂度太高,为防止过拟合,有两种常用的模型选择方法:正则化和交叉验证。
正则化与交叉验证
正则化是结构风险最小化策略的的实现.
正则化(regularization)一般具有如下形式:$$min_{fin mathcal{F}}: =frac{1}{N}sum_{i=1}^{N}L(y_i,f(x_i))+lambda J(f)$$正则化项随着模型复杂度的增加而变大,回归问题中,损失函数是平方损失,正则化项可以是参数向量的(L_2)范数。这个正则化项也可以是其他的形式。
另一种常用的模型选择方法是交叉验证(cross validation)。
一种简单的方法:数据量比较充足的时候,随机地将数据集分成三个部分:训练集(training set)、验证集(validation set)、测试集(test set),分别用来进行模型的训练、选择、最终评估。但是实际中数据没那么充足,可以采用交叉验证的方法(基本思想是重复使用数据)。
-
简单交叉验证
比如70%数据作为训练,30%数据作为测试集,在训练集上训练完,得到各种模型,然后使用测试集进行测试,选出测试误差最小的模型。
-
(S)折交叉验证
(S)折交叉验证(S-fold cross validation)应用最多:将数据分出(S)个互不相交的大小相同的子集,利用其中(S-1)个子集训练,剩下的自己进行测试。有(S)种不同的划分,分别进行,选出平均误差最小的模型。
-
留一交叉验证
算是上面的(S)折交叉验证的特使情况,但(S=N),每个子集仅一个数据,往往在数据缺乏的情况下使用。
上面的几种交叉验证方法,在整个学习的过程中使用了所谓的测试集,实际上它这里所说的测试集应该看作是验证集吧,测试集应该完全不被使用,仅仅在最后用来评估选出的模型的效果。
泛化能力
泛化能力(generalization ability)是指对未知数据的预测能力。泛化误差(generalization error):$$R_{exp}(hat{f})=E_p[L(Y,hat{f}(X))]=int_{mathcal{X} imes mathcal{Y}}L(y,hat{f}(x))P(x,y)dxdy$$实际上,泛化误差就是学习到的模型的期望风险。
一般通过比较两种学习方法的泛化误差上界(generalization error bound)来比较它们的优劣。泛化误差上界的性质:
- 样本容量越大,泛化误差上界越小。
- 假设空间容量(capacity)越大,泛化误差上界越大。
泛化误差上界:
对二分类问题,当假设空间是有限个函数集合(mathcal F=left { f_1,f_2,cdot cdot cdot ,f_d ight })时,对任意一个函数(fin mathcal F),至少以概率(1- sigma),以下不等式成立:
[R(f)leqslant hat{R}(f)+varepsilon (d,N,delta ) ]其中,
[varepsilon (d,N,delta )=sqrt{frac{1}{2N}left ( log d+logfrac{1}{delta } ight )} ]不等式左端(R(f))是泛化误差,右端为泛化误差上界。泛化误差上界中,第一项是训练误差,训练误差越小,泛化误差也越小。第二项(varepsilon (d,N,delta )),(N)越大,值越小,假设空间(mathcal F) 包含的函数越多,值越大。
上述定理可通过Hoeffding不等式来证明。
生成模型与判别模型
- 生成方法——生成模型(generation model),可还原出联合概率分布(P(X,Y)),比如朴素贝叶斯法、隐马尔科夫模型。
- 判别方法——判别模型(discriminative model),直接面对预测,比如K近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法、条件随机场等。
(注:本文为读书笔记与总结,侧重算法原理,来源为[《统计学习方法》](http://book.douban.com/subject/10590856/)一书第一章)
作者:[rubbninja](http://www.cnblogs.com/rubbninja/) 出处:[http://www.cnblogs.com/rubbninja/](http://www.cnblogs.com/rubbninja/) 关于作者:目前主要研究领域为机器学习与无线定位技术,欢迎讨论与指正!