学习笔记——统计学习方法概论

这是对《统计学习方法》第一章的一个总结,记录一些基础的概念、定义和术语,理清统计学习方法的各个方面,开始系统地学习这个领域。算法

统计学习


统计学习(statistical learning)是关于计算机基于数据构建几率统计模型,并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习。统计学习用于对数据进行预测和分析。由监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)等组成。监督学习方法简单归纳为:使用训练数据(training data)(数据是独立同分布产生的),假设要学习的模型属于某个函数的集合,称为假设空间(hypothesis space),应用某个评价准则(evaluation criterion),选择最优的模型,使得训练数据和测试数据(test data)在给定的准则下最优。app

统计学习方法的三要素:机器学习

  • 模型(model)
  • 策略(strategy)
  • 算法(algorithm)

步骤:函数

  • 获得一个有限的训练数据集合
  • 肯定包含全部可能的模型的假设空间(学习模型的集合)
  • 肯定模型选择的准则(学习的策略)
  • 实现求解最优模型的算法(学习的算法)
  • 经过学习方法选择最优模型
  • 利用学习的最优模型对新数据进行预测和分析

监督学习


基本概念

  • 输入空间(input space)/输出空间(output space)——分别指输入与输出全部可能取值的空间
  • 每一个具体的输入是一个实例(instance),一般由特征向量表示(feature vector),对应的空间称为特征空间(feature space)
  • 输入输出对称为样本(sample)
  • 回归问题(输入输出均为连续变量);分类问题(输出为有限个离散变量);标注问题(输入输出均为变量序列)
  • 监督学习假设输入输出的随机变量X和Y遵循一个联合几率分布(即输入输出是有个规则的)
  • 监督学习的目的在于学习一个由输入到输出的映射。
    • 条件几率分布:\(P(Y|X)\)
    • 决策函数(decision function):\(Y=f(X)\)

统计学习的三要素

方法=模型+策略+算法post

  • 模型学习

    假设空间用\(\mathcal{F}\)表示,是一个决策函数的集合:\(\mathcal{F}= \left \{ f\ |\ Y=f(X) \right \}\)测试

  • 策略优化

    引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。lua

    1. 损失函数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)\]

    2. 风险函数

      损失函数的指望称为风险函数(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)\)。这样以来,就又可能利用经验风险来估计指望风险,可是因为实际中训练样本数有限,效果不理想,要对经验风险进行必定的矫正——关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。

    3. 经验风险最小化

      经验风险最小化(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)

    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_{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)来比较它们的优劣。泛化偏差上界的性质:

  • 样本容量越大,泛化偏差上界越小。
  • 假设空间容量(capacity)越大,泛化偏差上界越大。

泛化偏差上界:

对二分类问题,当假设空间是有限个函数集合\(\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不等式来证实。

生成模型与判别模型


  • 生成方法——生成模型(generation model),可还原出联合几率分布\(P(X,Y)\),好比朴素贝叶斯法、隐马尔科夫模型。
  • 判别方法——判别模型(discriminative model),直接面对预测,好比K近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提高方法、条件随机场等。




(注:本文为读书笔记与总结,侧重算法原理,来源为《统计学习方法》一书第一章)


做者:rubbninja
出处:http://www.cnblogs.com/rubbninja/ 关于做者:目前主要研究领域为机器学习与无线定位技术,欢迎讨论与指正!

相关文章
相关标签/搜索