《统计学习方法》-概论

一 15 一月 2018

看完周志华老师的《机器学习》,对机器学习有了一个全面的了解,但其细节部分不是很了解,遂找同学借了本《统计学习方法》(感谢亲爱的波),感觉对机器学习的概念部分讲的很好,这里留作记录。

概论部分讲了统计学习方法的组成、机器学习的分类及要素,还有一些评估方法。

1. 统计学习背景

统计学习是由一些数学组成:概率统计、信息论、优化理论,所以想要深入的了解的化,本科学的统计、高数的前几章得熟悉,然后线性代数得着重看下,对了解并行处理有很大的帮助,有需要的还可以看下凸优化相关的东西,对优化部分会有更深刻的理解。

统计学习的对象是数据,包括数字、文字、图片、视频、音频等,这里有个前提:这些同类数据具有一定的统计规律性。目标是对数据进行预测与分析。

2. 三要素

\(方法=模型+策略+算法\)

模型:

我对模型的理解是:找到一个映射关系(函数),使得输入和输出的对应关系最大化,也就是一些统计特性更好。

书本上对模型的理解是在假设空间中找到最优的模型,怎么理解?书后面给了解释:

$$ F=\{P\vert P_\theta(Y\vert X),\theta \in \textbf{R}^n\} $$

模型可分为条件概率函数和决策函数,这里是以条件概率为例子讲解,\(\theta\mbox{向量}\)为参数,所有可能的\(\theta\)对应的函数构成了假设空间,问题变成了从\(\theta\)中找到最优的值。

策略

策略是以什么样的准则去得到最优的模型。由于直接从原始的模型函数对得到最优解不是很容易,这里会先将模型转化成另一个关于求解参数的连续函数,更有利于求解问题。下面介绍损失函数和风险函数。

损失函数是度量预测错误的程度,记作\(L(Y,f(x))\),有以下几种:

  • 0-1损失函数\((L_0\mbox{范数})\)

    $$ L(Y,f(x))= \left\{\begin{matrix} 1, & Y\neq f(x)\\ 0, & Y = f(x) \end{matrix}\right. $$

  • 平方损失函数\((L_2\mbox{范数})\)

    $$ L(y,f(x)) = (Y-f(x))^2 $$

  • 绝对损失函数\((L_1\mbox{范数})\)

    $$ L(Y,f(x))=\left| Y-f(x) \right| $$

  • 对数损失函数:

    $$ L(Y,P(Y|X)) = -logP(Y|X) $$

损失函数的期望是:

$$ R_{exp}(f)=E_p[L(Y,f(X))]=\int_{x\times y}L(y,f(x))P(x,y)dxdy $$

又被称为风险函数或期望损失。学习的目标就是选择期望风险最小的模型,显然如果这个都能够直接求的话,也就知道了\(P(x,y)\),没必要学习了,所以需要找到替代的函数。大家都知道当数据是可数的也就是离散的时候,当样本容量也就是数据趋于无穷时,可以用均值来代替期望风险\(R_{exp}(f)\),其中均值被称为经验风险\(R_{emp}(f)\),公式如下:

$$ R_{emp}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) $$

插一下,我看了下满足大数定律的条件是\(x_1,x_2,\cdots,x_n相互独立同分布\),然后看到一篇文章上说了下满足大数定律的充要条件:

\(\{X_n\}\)是随机变量序列,记\(Z_n=\frac{1}{N}\sum_{k=1}^{N}X_k-\frac{1}{N}E(\sum_{k=1}^{N}X_k)\),则\(\{X_n\}\)服从大数定律的充要条件是\(\lim_{n\to \infty }E[\frac{Z_n^2}{1+Z_n^2}]=0\).

这样根据模型求解就变成了根据经验风险函数求解,目标变成最小化\(R_{emp}(f)\)

$$ \min_{f\in F}\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) $$

但是这只适用当样本容量很大的时候,当样本很小时,会有过拟合现象。结构风险最小化(structural risk minimization)就是为了防止过拟合而提出来的策略。

$$ R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f) $$

当使用平方损失函数时,结构风险最小化类似最大后验概率。

算法

算法指具体使用什么计算方法来求解最优模型。如果最优模型有显示的解析解,也就是可以直接求出来的,比如逻辑回归,这个优化问题就变得很简单,但通常解析解不存在,这就需要用数值计算的方法求解。

评估方法

1. 评估主要指标

主要是精确率(precision),召回率(recall),准确率(accuracy)主要是评价分类器性能。

$$ r_{accuracy}=\frac{1}{N'}\sum_{i=1}^{N'}I(y_i=\hat{f}(x_i))\\ \begin{split} P_{precision}=\frac{TP}{TP+FP}\\ P_{recall}=\frac{TP}{TP+FN}\\ \end{split} \; T:True,F:False,P:Positive,N:negtive $$

2. 交叉验证

  • 简单交叉验证

将数据集分成两部分:训练集(train set)和测试集(test set)

  • S折交叉验证

将数据分成S个互不相交的大小相同的子集,每次选择S-1个子集用于训练,一个用于测试,将可能的S种选择重复进行,最后选择平均测试误差最小的那组。

  • 留一交叉验证

当数据N比较小时,S=N,即一个数据一组,其余和S折交叉验证相同。

3. 问题

监督学习分为:分类,回归,标注。这里主要说下标注问题。

标注问题可以认为是分类问题的一个推广,是更复杂的结构预测问题的简单形式,目标是学习一个模型,使其能够对观测序列给出标记序列作为预测。

4. 主要流程

  • 得到一个有限的训练数据集合;
  • 确定包含所有可能的模型的假设空间,即学习模型的集合;
  • 确定模型选择的准则,即学习的策略;
  • 实现求解最优模型的算法,即学习的算法;
  • 通过学习方法选择最优模型;
  • 利用学习的最优模型对新数据进行预测或分析。

这里有很多内容来自《统计学习方法》这本书,如果想详细了解的话还是更推荐书本,上面讲解的更好。

blogroll