这是对《统计学习方法》第一章的一个总结,记录一些基础的概念、定义和术语,理清统计学习方法的各个方面,开始系统地学习这个领域。算法
统计学习(statistical learning)是关于计算机基于数据构建几率统计模型,并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习。统计学习用于对数据进行预测和分析。由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)等组成。监督学习方法简单归纳为:使用训练数据(training data)(数据是独立同分布产生的),假设要学习的模型属于某个函数的集合,称为假设空间(hypothesis space),应用某个评价准则(evaluation criterion),选择最优的模型,使得训练数据和测试数据(test data)在给定的准则下最优。app
统计学习方法的三要素:机器学习
步骤:函数
方法=模型+策略+算法post
模型学习
假设空间用\(\mathcal{F}\)表示,是一个决策函数的集合:\(\mathcal{F}= \left \{ f\ |\ Y=f(X) \right \}\)测试
策略优化
引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。lua
损失函数spa
损失函数(loss function)或者代价函数(cost function)度量预测错误的程度,记做\(L(Y,f(X))\)。有如下几种:
0-1损失函数(0-1 loss function)\[L(Y,f(x))=\left\{\begin{matrix} 1, & Y\neq f(X)\\ 0, & Y=f(X) \end{matrix}\right\]
平方损失函数(quadratic loss function) \[L(Y,f(x))=(Y-f(X))^2\]
绝对损失函数(absolute loss function) \[L(Y,f(x))=\left |Y-f(X) \right |\]
对数损失函数(logarithmic loss function)或者对数似然损失函数(log-likelihood loss function)
\[L(Y,P(Y|X)))=-\log P(Y|X)\]
风险函数
损失函数的指望称为风险函数(risk function)或者指望损失(expected loss),即平均意义下的损失:
\[R_{exp}(f)=E_p[L(Y,f(X))]=\int_{\mathcal{X}\times \mathcal{Y}}L(y,f(x))P(x,y)dxdy\]
实际上联合分布\(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)\)。这样以来,就又可能利用经验风险来估计指望风险,可是因为实际中训练样本数有限,效果不理想,要对经验风险进行必定的矫正——关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
经验风险最小化
经验风险最小化(empirical ridk minimization,ERM)的策略认为经验风险最小的模型就是最优模型:\[\min_{f\in \mathcal{F}}\: \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))\]这种策略在样本容量足够大的时候很好,可是当样本容量很小的时候,效果未必好,会出现“过拟合”现象。
好比:极大似然估计(maximum likelihood estimation)
结构风险最小化
结构风险最小化(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_{f\in \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}\times \mathcal{Y}}L(y,\hat{f}(x))P(x,y)dxdy\]实际上,泛化偏差就是学习到的模型的指望风险。
通常经过比较两种学习方法的泛化偏差上界(generalization error bound)来比较它们的优劣。泛化偏差上界的性质:
泛化偏差上界:
对二分类问题,当假设空间是有限个函数集合\(\mathcal F=\left \{ f_1,f_2,\cdot \cdot \cdot ,f_d \right \}\)时,对任意一个函数\(f\in \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+\log\frac{1}{\delta } \right )}\]
不等式左端\(R(f)\)是泛化偏差,右端为泛化偏差上界。泛化偏差上界中,第一项是训练偏差,训练偏差越小,泛化偏差也越小。第二项\(\varepsilon (d,N,\delta )\),\(N\)越大,值越小,假设空间\(\mathcal F\) 包含的函数越多,值越大。
上述定理可经过Hoeffding不等式来证实。
(注:本文为读书笔记与总结,侧重算法原理,来源为《统计学习方法》一书第一章)
做者:rubbninja
出处:http://www.cnblogs.com/rubbninja/ 关于做者:目前主要研究领域为机器学习与无线定位技术,欢迎讨论与指正!