《统计学习基础》 (1/6)

读书笔记之一:导言+监督学习概要

英文原书《The Elements of Statistical Learning》 (2nd Edition),简称ESL。

“统计学的那些事” 的一段话,清楚的道出了自己同样的心声,“基础”那两个字也曾让自己怀疑人生。

文章看得差不多了,就反复看他们的那本书“The Elements of Statistical learning”(以下简称 ESL)。说实话,不容易看明白,也没有人指导,我只好把文章和书一起反复看,就这样来来回回折腾。比如为看懂 Efron 的 “ Least angle regression ” , 我一个人前前后后折腾了一年时间(个人资质太差)。当时国内还有人翻译了这本书(2006 年),把名字翻译为“统计学习基础”。我的神啦,这也叫“基础”!还要不要人学啊!难道绝世武功真的要练三五十年?其实正确的翻译应该叫“精要”。在我看来,这本书所记载的是绝世武功的要义,强调的是整体的理解,联系和把握,绝世武功的细节在他们的文章里。

本书涵盖了机器学习、神经网络、高等数学、统计、数据科学等知识,并且试图从数学角度进行严密的论证,对普通人来说过于数学化,所以更适合作为统计专业的专业书籍。

作为AI爱好者更推荐 AI学习书籍介绍 ,这几本书,分门别类,深入浅出的介绍了不同的知识领域,数学的要求不需要那么高。

今年春节前后花了近3个月的时间啃完这本书,以下是本书(weiya在github的中文版翻译)的一些笔记和摘录。

第一章 导言

1.1 这本书是如何组织的

我们的观点是一个人在尝试掌握复杂的概念前必须理解简单的方法.因此,当在第二章对监督学习给出概要后,我们在第三和第四章讨论了回归和分类的线性方法.第五章我们描述了对单个自变量的样条,小波和正则/惩罚方法,第六章则描述了核方法和局部回归.上述两种方法都是高维学习技术的重要基石.模型评估与选择是第七章的主题,包括偏差和方差,过拟合和用于选择模型用的交叉验证.第八章讨论了模型推断与平均,概要地介绍了极大似然法、贝叶斯推断、自助法、EM算法、吉布斯抽样和bagging.与此相关的boosting过程是第十章的重点.

在第九到十三章我们描述了一系列用于监督学习的结构化方法,其中第九和第十一章介绍回归以及第十二和第十三章重点在分类.第十四章描述了非监督学习的方法.两个最近提出来的技术,随机森林和集成学习将在第十五和第十六章讨论.我们在第十七章讨论无向图模型以及最后在第十八章学习高维问题.

在每一张结尾我们讨论计算需要考虑的因素,这对於数据挖掘的应用是很重要的,包括计算量级随着观测值和自变量数目的变化.

我们建议按顺序先阅读第1-4章,第7章也应该当作强制阅读,因为它介绍了关于所有学习方法的中心概念.有了这些概念,这本书的其他章节根据读者的兴趣可以按照顺序读,或选读.

这个标志表明这是技术上困难的部分,读者可以跳过这部分而且不会影响后续讨论.

这本书的网站是,里面包含很多资源,包括这本书里面用到的很多数据集:
http://www-stat.stanford.edu/ElemStatLearn

第二章 监督学习概要

2.1 最小二乘和K-最近邻的核心思想差别

所以 \(k\)-最邻近和最小二乘最终都是根据平均来近似条件期望.但是它们在模型上显著不同

  • 最小二乘假设 \(f(x)\) 是某个整体线性函数的良好近似.
  • \(k\)-最近邻假设 \(f(x)\) 是局部常值函数的良好近似.

2.2 最小二乘法和k-最近邻

两种简单但很有用的预测方法:最小二乘法的线性模型拟合和 \(k\)-最近邻预测规则.线性模型对结构做出很大的假设而且得出稳定但可能不正确的预测.\(k\)-最近邻方法对结构的假设很温和:它的预测通常是准确的但不稳定.

  • 最小二乘:低方差、高偏差;
  • K-最近邻:高方差、低偏差;

2.3 MSE的偏差-方差分解

\(\text{MSE}\) 分解成两个部分,随着我们继续讨论,会越来越熟悉这两个部分,这两部分分别是方差和偏差平方.这一分解总是可行的而且经常有用,并且这一分解被称为 偏差-方差分解 (bias-variance decomposition)

模型复杂度 (model complexity) 增加,方差趋于上升,偏差趋于下降.当模型复杂度下降时会发生相反的行为.对于 \(k\)-最近邻,模型复杂度由 \(k\) 来控制.

2.4 模型选择和偏差-方差的权衡

上面讨论的所有模型以及其他将要在后面章节讨论的模型都有一个 光滑 (smoothing)复杂性 (complexity) 参数需要确定:

  • 惩罚项的乘子
  • 核的宽度
  • 基函数的个数

模型复杂度 (model complexity) 增加,方差趋于上升,偏差趋于下降.当模型复杂度下降时会发生相反的行为.一般地,我们选择模型复杂度使偏差与方差达到均衡从而使测试误差最小.

无论何时增加模型复杂度(换句话说,无论何时更精细地(harder)拟合数据),训练误差都趋于下降.然而过度的拟合,模型会自适应使得更加接近训练数据,但不能很好地进行泛化(比如说,测试误差很大).

2.5 维度的诅咒

curse of dimensionality

如果我们希望以在低维中以相同的精度来估计高维中的函数,我们将会需要呈指数增长规模的训练集.

通过依赖严格的假设,线性模型没有偏差而且方差几乎可以忽略,然后 \(1\)-最近邻的误差就会相当的大。然而,如果假设是错误的,所有的东西都不复存在,而 \(1\)-最近邻将占主导地位.我们将会看到介于严格的线性模型和非常灵活的 \(1\)-最近邻模型之间的模型谱,每个都有它们各自的假设和偏差,这些假设已经具体提到过,通过在很大程度上借鉴这些假设来避免高维下函数复杂度呈指数增长.

统计判别理论的章节的理论准备中,对于定量的响应,我们看到平方误差损失引导我们得到了回归函数 \(f(X)=\text{E}(Y\mid X=x)\).最近邻方法可以看成是对条件期望的直接估计,但是我们可以看到至少在两个方面它们不起作用

  • 如果输入空间的维数高,则最近邻不必离目标点近,而且可能导致大的误差
  • 如果知道存在特殊的结构,可以用来降低估计的偏差与方差.

2.6 极大似然估计

尽管最小二乘在一般情况下非常方便,但并不是唯一的准则,而且在一些情形下没有意义.一个更一般的估计准则是 极大似然估计 (maximum likelihood estimation). 极大似然的原则是假设最合理的 \(\theta\) 值会使得观测样本的概率最大.

2.7 约束条件和问题简化

一般地,大多数学习方法施加的约束条件都可以描述为这样或那样对复杂度的限制.这通常也意味着在输入空间的小邻域的一些规则的行为.

限制的强度由邻域的大小所确定.邻域的规模越大,限制条件则越强,而且解对特定限制条件的选择也很敏感.举个例子,在无穷小邻域内局部常值拟合根本不是限制;在一个比较大的邻域内进行局部线性拟合几乎是全局线性模型,而且限制性是非常强的.

限制的本质取决于采用的度量.一些像核方法、局部回归和基于树的方法,直接明确了度量以及邻域的规模.至今为止讨论的最近邻方法是基于函数局部为常值的假设; 其它像样条、神经网络以及基于函数的方法隐性定义了邻域的局部行为。

限制性估计的种类: 非参回归技巧的多样性或学习方法的类型根据其限制条件的本质可以分成不同的种类.这些种类不是完全不同的,而且确实一些方法可以归为好几种不同的类别.这里我们进行一个简短的概要,因为详细的描述将在后面章节中给出.每个类都有与之对应的一个或多个参数,有时恰当地称之为 光滑化(smoothing) 参数,这些参数控制着局部邻域的有效大小.

这里我们描述三个大的类别.

2.7.1 粗糙度惩罚和贝叶斯方法

惩罚函数,或者说 正则 (regularization) 方法,表达了我们的 先验信仰 (prior belief)——寻找具有一个特定类型的光滑行为函数类型,而且确实可以套进贝叶斯的模型中.

2.7.2 核方法和局部回归

这些方法可以认为是通过确定局部邻域的本质来显式给出回归函数的估计或条件期望,并且属于局部拟合得很好的规则函数类.局部邻域由 核函数(kernel function) \(K_{\lambda}(x_0,x)\) 确定。

核函数是一种隐式定义特征空间的函数,它能够将低维输入数据映射到高维特征空间,而不需要显式计算每个映射后的特征。核方法通过计算两个输入点之间的相似度来工作。

数学上,核函数 $ K(x, x') $ 表示输入数据点 $ x $ 和 $ x' $ 在某个隐式高维空间中的内积:

\[ K(x, x') = \langle \phi(x), \phi(x') \rangle \]

其中:

  • $ (x) $ 是将输入数据 $ x $ 映射到高维空间的映射函数;
  • 核函数通过内积计算相似度,无需显式地构造高维空间。

核函数的概念详见文件《核函数和基函数.md》

注:内积(dot product)与距离(distance)有密切关系尤其是在欧几里得空间中,二者经常可以互相表达、转化。
欧几里得距离(Euclidean distance)
\[ \|\vec{a} - \vec{b}\| = \sqrt{(a_1 - b_1)^2 + (a_2 - b_2)^2 + \cdots + (a_n - b_n)^2} \]

用内积表示
\[ \|\vec{a} - \vec{b}\|^2 = (\vec{a} - \vec{b}) \cdot (\vec{a} - \vec{b}) = \vec{a} \cdot \vec{a} - 2\vec{a} \cdot \vec{b} + \vec{b} \cdot \vec{b} = \|\vec{a}\|^2 + \|\vec{b}\|^2 - 2 \vec{a} \cdot \vec{b} \] 在机器学习中的重要意义:

  • 余弦相似度(cosine similarity):基于内积
  • 欧几里得距离(KNN、聚类):基于向量差
  • 二者在许多模型(SVM、PCA、核方法)中互相关联

2.7.3 基函数和字典方法

这个方法的类别包括熟悉的线性和多项式展开式,但是最重要的有多种多样的更灵活的模型.这些关于 \(f\) 的模型是基本函数的线性展开。 单层的向前反馈的带有线性输出权重的神经网络模型可以认为是一种自适应的基函数方法(详见文中公式2.45),激活 (activation) 函数.作为投射追踪模型。

这些自适应选择基函数的方法也被称作 字典 (dictionary) 方法,其中有一个可用的候选基函数的可能无限集或字典 \(\cal D\)可供选择,而且通过应用其它的搜索机制来建立模型。

全书的读书笔记(共6篇)如下:

《统计学习基础》读书笔记之一
《统计学习基础》读书笔记之二
《统计学习基础》读书笔记之三
《统计学习基础》读书笔记之四
《统计学习基础》读书笔记之五
《统计学习基础》读书笔记之六