清心斋 我心素已闲,清川澹如此。

统计学习方法笔记

第一章

统计学习方法:

  • 从训练数据(training data)(给定的、有限的集合)出发,
  • (假设数据是独立同分布产生的)
  • 运用某个(某评价标准evaluation criterion)(从假设空间hypothesis space)选出的最优模型(由算法实现)
  • (假设空间:假设要学习的模型属于某个函数的集合)
  • 已知训练数据和未知测试数据(在评价标准下)有最优的预测
    • 三要素:→ “模型的假设空间”(model) → “模型的选择准则”(strategy) → “模型学习的算法”(algorithm)
    • 方法 = 模型 + 策略 + 算法

步骤:

  1. 得到一个有限的训练数据的集合
  2. 确定包含所有可能的模型的假设空间(学习模型的集合)
  3. 确定模型选择的准则(学习的策略)
  4. 实现求解最优模型的算法(学习的算法)
  5. 通过学习方法选择最优模型
  6. 利用学习的最优模型对心的数据进行预测或分析


统计学习包括监督学习、非监督学习、半监督学习和强化学习

监督学习

监督学习:利用训练数据集学习一个模型,再用模型对测试样本集进行预测

模型:概率函数或者非概率函数(决策函数)

  • 决策函数(之假设空间$\mathcal F$):
  • 条件概率函数(之假设空间$\mathcal F$):

策略:误差最小化(经验风险/结构风险最优化(最小化)问题)(结构风险 = 经验风险 + $\lambda*J(f)$

  • 误差用损失函数(loss function)(非负实值函数)表示:$L(Y,f(X))$
  • 期望损失/期望风险($=$损失函数的期望)(输入、输出$(X,Y)$为随机变量,遵循联合分布$P(X,Y)$(未知)→所以期望风险无法直接计算,需要‘学习’):
  • 经验损失/经验风险(即给定训练数据集$T={(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)}$,模型$f(X)$关于$T$的平均损失):
  • 根据大数定律,当样本容量$N$趋于无穷时,经验风险$R_{emp}(f)$趋于期望风险$R_{exp}(f)$
  • 当样本容量足够大时,可直接用经验风险最小化作为策略:

    例如极大似然估计: 当模型为条件概率分布,损失函数为对数损失函数时,经验风险最小化等价于极大似然估计

  • 当样本容量很小时,只利用经验风险最小化作为策略,容易出现过拟合(over-fitting)现象,所以提出结构风险最小化(structural risk minimization, SRM)为策略
  • 结构风险($J(f)$为模型的复杂度(越复杂越大),是定义在假设空间$\mathcal F$上的泛函,是对复杂模型的惩罚):
  • 贝叶斯估计中的最大后验概率估计就是结构风险最小化的例子:当模型为条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化等价于最大后验概率估计

算法:求解最优解的具体计算方法

  • 如果有显式解析解,最优化问题比较简单
  • 但通常解析解不存在,就需要用数值计算的方法求解
  • 如何保证找到全局最优解,并使求解过程非常高效,是一个重要问题

训练误差:模型在训练数据上的误差(本质上不重要) 测试误差:模型在测试数据上的误差(非常重要)→→ 测试误差小的方法具有更好的预测能力,是更有效的方法

过拟合:选择的模型所含参数过多(比真模型多):

  • 一味追求缩小测试误差,所选模型复杂度(如参数个数)往往比真模型高(过拟合),以致于出现对已知数据预测很好,对未知数据预测很差的现象。→ 模型选择旨在避免过拟合并提高模型的预测能力


以多项式拟合为例:

  • 给定一个训练集$T$
  • 假设数据由$M$次多项式函数$f$生成(目标 → 选择一个对已知数据和未知数据都有很好预测能力的函数(模型))
  • 解决办法:
    • 首先确定模型的复杂度(即确定多项式的次数$M$)
    • 再按经验风险最小化的策略,求解参数(即多项式的系数)
      • 可用最小二乘法求得拟合多项式系数的唯一解(简单的最优化问题)
    • 结果分析:
      • $M = 0$ 时,多项式曲线是一个常数,数据拟合效果很差
      • $M = 1$ 时,多项式曲线是一条直线,效果也很差
      • $M = 3$ 时,曲线对训练数据拟合效果足够好,模型也比较简单,是比较好的选择
      • $M = 9$ 时,曲线通过每个数据点,训练误差为0,但是对未知数据预测能力不好,过拟合,不可取


多项式拟合可以看到:

  • 随着多项式次数(模型复杂度)增加,训练误差会减小,直至趋于0
  • 但测试误差会随着多项式次数的增加,先减小后增大 → 最终目的是使测试误差达到最小:为此要选择合适的多项式次数(对一般模型选择也成立)

两种常用的模型选择方法:正则化交叉验证

正则化(regularization):是结构风险最小化策略中的罚项(penalty term 或叫正则化项regularizer)$\lambda J(f)$,一般是模型复杂度的单调递增函数,比如可以是模型参数向量的范数

  • 正则化的作用:选择经验风险和模型复杂度同时较小的模型
  • 从贝叶斯估计角度看:正则化项 → 模型的先验概率(模型复杂,先验概率较小)


交叉验证(cross validation):(基本思想:重复使用数据)把给定的数据随机切分为训练集、验证集和测试集,在此基础上反复进行训练、测试以及模型选择

  • 例如,数据随机分为两部分,70%为训练集,30%为测试集
  • 然后用训练集在各种条件下(例如,不同参数个数)训练模型,从而得到不同的模型
  • 再在测试集上评价各个模型的测试误差,选出误差最小的模型


泛化能力

泛化能力/推广能力(generalization ability):指由该方法学习到的模型对未知数据的预测能力

泛化误差(generalization error):如果学到的模型是$\hat f$,则用这个模型对未知数据预测的误差即为泛化误差(其实就是模型的期望风险

泛化误差上界(generalization error bound):泛化能力分析往往是通过研究泛化误差的概率上界进行的.

  • 它是样本容量的函数,当样本容量增加时,泛化上界趋于0
  • 它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大

定理(泛化误差上界) 对二类分类问题,当假设空间是有限个函数的集合$\mathcal F={f_1,f_2,\cdots,f_d}$时,对任意一个函数$f\in\mathcal F$,至少以概率$1-\delta$,以下不等式成立(即以下不等式成立的概率大于等于$1-\delta$):

其中, $ \varepsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(\log d +\log\frac{1}{\delta})}$

不等式左端$R(f)$是泛化误差,右端即为泛化误差上界. 右端第一项是训练误差,训练误差越小,泛化误差也越小. 第二项$\varepsilon(d,N,\delta)$是$N$的单调递减函数,当$N$趋于无穷时趋于$0$;同时它也是$\sqrt{\log d}$阶的函数,假设空间$\mathcal F$包含的函数越多,其值越大.


算法/统计(监督)学习方法

分为生成方法(generative approach)(得到的模型称为生成模型)和判别方法(discriminative approach)(得到的模型称为判别模型

生成方法:数据由联合概率分布$P(X,Y)$学习,求出条件概率分布$P(Y\mid X)$作为预测模型,即得生成模型:

  • 模型表示了给定输入$X$产生输出$Y$得生成关系;
  • 典型的生成模型:朴素贝叶斯法和隐马尔可夫模型;
  • 此法可还原出联合概率分布$P(X,Y)$,而判别方法则不能;
  • 学习收敛速度更快:当样本容量增加时,学到的模型可以更快地收敛于真实模型;
  • 当存在隐变量时,此法仍可用,但判别方法不能用.

判别方法:数据直接学习决策函数$f(X)$或者条件概率分布$P(Y\mid X)$作为预测的模型,即为判别模型。

  • 关心的是对给定的输入$X$,应该预测什么样的输出$Y$;
  • 典型的判别模型:$k$邻近法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场等;
  • 学习准确率更高;
  • 可以对数据进行各种程度上地抽象、定义特征并使用特征,因此可以简化学习问题.

分类问题

分类问题:当输出变量$Y$取有限个离散值时(无论输入变量是离散还是连续),预测问题便成为分类问题.

  • 分类问题地模型称为分类器(classifier).
  • 分类器对输入进行输出的预测,称为分类,可能地输出称为,类别为多个时,称为多类分类问题.
  • 过程:从已知的训练集学习一个分类器,再用分类器对新的数据进行分类.
  • 评价分类器性能的指标一般是分类准确率(accuracy):对给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率
  • 二类分类问题常用的评价指标是精确率(precision)和召回率(recall)。通常以关注的类为正类,其他类为负类

    • $TP$——将正类预测为正类数;
    • $FN$——将正类预测为负类数;
    • $FP$——将负类预测为正类数;
    • $TN$——将负类预测为负类数;
    • 精确率定义为
    • 召回率定义为
    • $F_1$值,为精确率和召回率的调和均值,即
    • 精准率和召回率都高时,$F_1$值也会高
  • 可用于分类的统计学习方法:$k$邻近法、感知机、朴素贝叶斯法、决策树、决策列表、逻辑斯蒂回归模型、支持向量机、提升方法、贝叶斯网络、神经网络、Winnow等.
  • 应用举例:
    • 银行业务,可以构建客户分类模型,对客户按照贷款风险的大小进行分类;
    • 网络安全,可以利用日志数据的分类对非法入侵进行检测;
    • 图像处理,可以用分类检测图像中是否有人脸出现
    • 手写识别,可以用分类识别手写的数字;
    • 互联网搜索,网页的分类可以帮助网页的抓取、索引和排序

标注问题

标注问题(tagging):是分类问题的一个推广,又是更复杂的结构预测(structure prediction)问题的简单形式。其输入是一个观测序列,输出是一个标记序列或状态序列

  • 评价标准同分类问题;
  • 常用的统计学习方法:隐马尔可夫模型、条件随机场;
  • 在信息抽取、自然语言处理等领域被广泛应用,是这些领域的基本问题;
  • 应用举例:如对英文句子中的名词短语进行标记。

回归问题

回归问题(regression):等价于函数拟合(选择一条函数曲线,使其很好地拟合已知数据且很好地预测未知数据) 回归模型正事表示从输入变量到输出变量之间的映射函数。

  • 常用的损失函数为平方损失函数,可以由最小二乘法求解。
  • 应用举例:市场趋势预测、产品质量管理、客户满意度调查、投资风险分析