DanielLaah

《统计学习方法》笔记 (一) - 统计学习方法概论(上)


本篇博客为《统计学习方法》笔记系列第1篇, 因为第1章内容较多, 所以拆成两篇, 本篇对应《统计学习方法》中第1章上半部分的内容. 主要介绍统计学习, 监督学习, 统计学习三要素, 模型评估与选择.
说明: 目前来讲, 本系列博客内容基本完全摘抄自李航博士的《统计学习方法》, 所以阅读本系列博客极有可能造成您的不适, 如发生, 请尽快关闭浏览器. 写此系列博客目的一是学习的时候加深印象二是为了方便自己随时复习. 后面如果在其他书籍或课程中学习了相关的知识, 可能会对文章内容进行适量增删. 谢谢你!
PPT下载


1.1 统计学习

统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科. 统计学习也称为统计机器学习(statistical machine learning). 统计学习主要由监督学习(supervised learning), 非监督学习(unsupervised learning), 半监督学习(semi-supervised learning)以及强化学习(reinforcement learning)组成. 本书主要讨论监督学习问题.

1.2 监督学习

在监督学习中, 输入变量记作$X$, 输出变量记作$Y$, 输入变量的取值用$x$表示, 输出变量的取值用$y$表示. 一个输入实例$x$的特征向量记作:
$$x=(x^{(1)}, x^{(2)}, x^{(3)}, … , x^{(n)})^T$$
注意区分上下角标, 上角标代表第几个特征, 下角标代表第几个输入变量. 例如, $x^{(i)}$表示$x$的第$i$个特征, $x_i$表示第$i$个输入变量, 即
$$x_i=(x_i^{(1)}, x_i^{(2)}, x_i^{(3)}, … , x_i^{(n)})^T$$
监督学习中, 训练数据由输入和输出对组成, 通常表示为:
$$T={(x_1, y_1), (x_2, y_2), …, (x_N, y_N)}$$
输入与输出对又称为样本(sample)或样本点.
根据输入变量$X$和输出变量$Y$类型, 可以将监督学习分为几个不同的问题: 当输入变量与输出变量均为连续变量的时候称为回归问题; 当输出变量为有限个离散变量的时候称为分类问题; 当输入变量与输出变量均为变量序列的时候称为标注问题.

1.3 统计学习三要素

方法=模型+策略+算法

1.3.1 模型

当模型为非概率模型时, 假设空间$\mathcal{F}$通常是由一个参数向量决定的函数族:
$$\mathcal{F}=\{f|Y=f_\theta(X), \theta\in R^n\}$$
当模型为概率模型时, 假设空间$\mathcal{F}$通常是由一个参数向量决定的条件概率分布族:
$$\mathcal{F}=\{P|P_\theta(Y|X), \theta\in R^n\}$$

1.3.2 策略

统计学习的目标在于从假设空间中选取最优模型. 想要选择最优模型就要有一个度量标准, 首先引入损失函数与风险函数的概念. 损失函数度量模型一次预测的好坏, 风险函数度量平均意义下模型预测的好坏.

损失函数和风险函数

当从假设空间中选定了一个模型$f$时, 对于给定的输入$X$, 会有相应的输出$f(X)$, 而这个输出可能与真实的$Y$相等也有可能不相等. 用一个损失函数(loss function)或代价函数(cost function)来度量错误的程度. 损失函数是$f(X)$和$Y$的非负实值函数, 记作$L(Y, f(X)$.
统计学习常用的损失函数有一下几种:
1.0-1损失函数(0-1 loss function)
$$L(Y, f(X))=\begin{cases} 1,Y\neq f\left( x\right) \\ 0,Y=f\left( x\right) \end{cases} $$
2.平方损失函数(quadratic loss function)
$$L(Y, f(X))=(Y-f(X))^2$$
3.绝对值损失函数(absolute loss function)
$$L(Y, f(X))=|Y-f(X)|$$
4.对数损失函数(logarithmic loss function)
$$L(Y, P(Y|X))=-\log P(Y|X)$$
假设模型的输入输出遵循联合分布概率分布$P(X,Y)$, 则损失函数的期望为:
$$R_{exp}(f)=E_p\left[L(Y, f(X)\right]=\int_{\mathcal{X}\times \mathcal{Y}}L(y,f(x))P(x,y)dxdy$$
这是理论上模型$f(X)$关于联合分布$P(X, Y)$的平均意义下的损失, 称为风险函数(risk function)或期望损失(expected loss).
学习的目标就是选择期望风险最小的模型, 但是我们没有办法直接选择$R_{exp}$最小的模型, 因为这里的联合概率$P(X, Y)$是未知的, 实际上如果我们知道了$P(X, Y)$, 那么就可以求出条件概率$P(Y|X)$, 就不需要学习了. 这似乎陷入了僵局, 一方面选择期望风险最小的模型需要用到联合概率分布, 另一方面, 联合概率分布有事未知的. 既然没法知道损失的期望值, 那么一个自然的想法就是用均值去估计期望.
给定一个训练数据集:
$$T={(x_1, y_1), (x_2, y_2), …, (x_N, y_N)}$$
模型$f(X)$关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss), 记作$R_{emp}$:
$$R_{emp}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i, f(x_i))$$
根据大数定律, 当样本容量$N$趋于无穷大时, 经验风险$R_{emp}$趋于期望风险$R_{exp}$. 但是现实中, 我们的训练集是有限的, 用经验风险估计期望风险常常并不理想, 所以要对经验风险进行一定的矫正. 这就关系到监督学习的两个基本策略: 经验风险最小化和结构风险最小化.

经验风险最小化与结构风险最小化

经验风险最小化(empirical risk minimization, ERM)策略认为, 经验风险最小的模型是最优的模型. 在假设空间, 损失函数以及训练数据集确定的情况下, 问题就变成了求解最优化问题:
$$\min_{f\in\mathcal{F}}\frac{1}{N}\sum_{i=1}^N\left(L(y_i, f(x_i)\right)$$
当样本容量足够大时, 经验风险最小化能保证有很好的学习效果. 但是当样本容量很小时, 经验最小化学习就容易产生”过拟合(over-fitting)”. 而结构风险最小化(structural risk minimization, SRM)是为了防止过拟合而提出来的策略. 结构风险最小化等价于正则化(regularization). 结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term). 在假设空间, 损失函数以及训练数据集确定的情况下, 结构风险的定义为:
$$R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL\left(y_i, f(x_i)\right)+\lambda J(f)$$
其中, $J(f)$为模型的复杂度, 是定义在假设空间$\mathcal{F}$上的泛函. 模型$f$越复杂, $J(f)$就越大; 模型$f$越简单, $J(f)$就越小. 也就是说, 复杂度表示了对复杂模型的惩罚. $\lambda$是正则化系数, 用来权衡经验风险和模型复杂度. 结构风险需要经验风险与模型复杂度同时小. 结构风险小的模型往往对训练数据以及测试数据都有较好的预测.
有了结构风险, 现在求解最优模型就便成了求解最优问题:
$$\min_{f\in\mathcal{F}}\frac{1}{N}\sum_{i=1}^NL\left(y_i, f(x_i)\right)+\lambda J(f)$$

1.3.3 算法

算法指的就是求解最优模型使用的方法.

1.4 模型评估与模型选择

1.4.1 训练误差与测试误差

假设学习到的模型是$Y=\hat{f}(X)$, 训练误差是模型$Y=\hat{f}(X)$关于训练数据的平均损失:
$$R_{emp}=\frac{1}{N}\sum_{i=1}^NL\left(y_i, \hat{f}(x_i)\right)$$
其中$N$是训练样本容量. 测试误差是模型$Y=\hat{f}(X)$关于测试数据的平均损失:
$$e_{test}=\frac{1}{N’}\sum_{i=1}^{N’}L\left(y_i, \hat{f}(x_i)\right)$$
其中$N’$是训练样本容量.
测试误差反应了学习方法对未知的测试数据集的预测能力, 给定两种学习方法, 测试误差小的方法具有更好的预测能力, 是更有效的方法. 通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability).

1.4.2 过拟合与模型选择

在做模型选择的时候, 如果一味的追求提高对训练数据的预测能力, 所选模型的复杂度往往会比”真模型”高, 这种现象称为过拟合(over-fitting). 具体地, 过拟合是指学习时选择的模型所包含的参数过多, 以至于出现这一模型对已知数据预测得很好, 但对未知数据预测得很差的现象.
下图是M次多项式函数拟合的例子:

图中给出了$M=0, M=1, M=3$以及$M=9$时, 多项式函数拟合的情况. 当$M=0$, $M=1$时, 拟合效果很差. 相反, 当$M=9$时, 多项式曲线通过每个数据点, 训练误差为0. 虽然此时的模型能对训练数据准确预测, 但是它已经出现了过拟合, 在实际中是不可取的. 也就是说, 模型选择时, 不仅要考虑对已知数据的预测能力, 而且还要考虑对未知数据的预测能力. 当$M=3$时, 多项式曲线对训练数据拟合效果足够好, 模型也比较简单, 是一个较好的选择.
下图展示了模型复杂度与预测误差的关系图: