2.5 高维问题的局部方法
这是一篇有关《统计学习基础》,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放在自己的个人网站上,翻译质量非常高,本博客中有关翻译的内容都是出自该学者的网页,个人解读部分才是自己经过查阅资料和其他学者的学习笔记,结合个人理解总结成的原创内容。
有关ESL更多的学习笔记的markdown文件,可在作者GitHub上查看下载。
原文 | The Elements of Statistical Learning |
---|---|
翻译 | szcf-weiya |
时间 | 2018-08-21 |
解读 | Hytn Chen |
更新 | 2020-02-01 |
翻译原文
至今为止我们已经仔细讨论了两个关于预测的学习方法:稳定但是有偏差的线性模型和不稳定但显然偏差较小的 k k k-最近邻估计.当有充分大的训练数据,我们似乎总会选择 k k k-最近邻平均来近似理论上的最优条件期望,因为我们能够找到一个相当大的离 x x x 近的观测构成的邻域并且平均里面的观测值.在高维情形下这种方法以及我们的直觉都没有用,而且这种现象通常被称作 维度的诅咒 (curse of dimensionality) (Bellman, 19611).关于这个问题有很多的证明,我们将要仔细讨论一些.
!!! note “weiya 注:”
查阅维基百科,“curse of dimensionality” 可以翻译成 维数灾难 或 维度的诅咒.
正如图 2.6 显示的那样,我们考虑输入在 p p p 维单位超立方体均匀分布的最近邻过程.假设我们在某个目标点构造超立方体的邻域来捕获观测值的一个小部分 r r r.因为这个邻域对应单位体积的比例 r r r,则边长的期望值为 e p ( r ) = r 1 / p e_p(r)=r^{1/p} ep(r)=r1/p.在 10 10 10 维空间下 e 10 ( 0.01 ) = 0.63 e_{10}(0.01)=0.63 e10(0.01)=0.63, e 10 ( 0.1 ) = 0.80 e_{10}(0.1)=0.80 e10(0.1)=0.80,而每个输入的全部范围为 1.0 1.0 1.0.所以选取 1 % 1\% 1% 或 10 % 10\% 10% 的数据去形成局部均值,我们必须在每个输入变量上覆盖到 63 % 63\% 63% 或者 80 % 80\% 80%.这样的邻域不再是局部的.显著地降低 r r r 并没有作用,因为我们选取去平均的观测值越少,我们拟合的方差也会越大.
图 2.6:一个输入为均匀分布数据的单位立方体的子立方体邻域, 它很好地展现出了维数的灾难.右边的图显示了不同维数 p p p 下,为了捕捉一小部分的数据 r r r,子立方体的所需要的边长.在 10 10 10 维的情况下,为了捕捉 10 % 10\% 10% 的数据,我们需要包括每个坐标取值范围的 80 % 80\% 80%.
高维下的稀疏取样的另外一个后果是所有的样本点离样本的某一边很近.考虑在 p p p 维以原点为中心的单位球中均匀分布的 N N N 个数据点.假设我们考虑原点处的最近邻估计.距离原点最近的数据点距离的中位数由下式给出(练习 2.3)
d ( p , N ) = ( 1 − ( 1 2 ) 1 / N ) 1 / p (2.24) d(p,N)=(1-(\frac{1}{2})^{1/N})^{1/p}\tag{2.24} d(p,N)=(1−(21)1/N)1/p(2.24)
!!! note “weiya 注”
我们可以这样得到(2.24)式:
将数据点与原点的距离看成随机变量 X X X,因为数据点均匀分布,则 X X X 的分布函数为
F ( X < x ) = x p , x ∈ [ 0 , 1 ] F(X < x)=x^p, \; x\in [0,1] F(X<x)=xp,x∈[0,1]
则最近距离为次序统计量 X ( 1 ) X_{(1)} X(1),其分布函数为
F 1 ( x ) = 1 − ( 1 − F ( x ) ) N F_1(x)=1-(1-F(x))^N F1(x)=1−(1−F(x))N
最近距离的中位数满足 F 1 ( d ( p , N ) ) = 1 2 F_1(d(p,N))=\frac{1}{2} F1(d(p,N))=21,于是可以得到(2.24)式.
距离原点最近的数据点的距离的均值表达式更加复杂.当 N = 500 , p = 10 , d ( p , N ) ≈ 0.52 N=500,p=10,d(p,N)\approx 0.52 N=500,p=10,d(p,N)≈0.52,比到边界的距离的一半还要大.因此大部分的数据点离样本空间的边界比其他任何的数据点更近.这里产生问题的原因是对于训练样本中靠近的边的预测更加困难.一定要从样本点的邻域外推而不是在中间插入.
另外一个证明这个灾难是取样密度是跟 N 1 / p N^{1/p} N1/p 成比例,其中 p p p 为输入空间的维数, N N N 为样本的规模.因此,如果 N 1 = 100 N_1=100 N1=100 表示对于单输入问题的大密度取样,然后 N 10 = 10 0 10 N_{10}=100^{10} N10=10010 是 10 10 10 个输入时取样密度同上面相同时所需要的样本规模大小.因此在高维空间中所有可行的训练样本在输入空间中很稀少.
让我们构造另一个均匀分布的例子.假设我们有从 [ − 1 , 1 ] p [-1,1]^p [−1,1]p 中均匀产生的 1000 1000 1000 个训练样本 x i x_i xi.假设没有任何测量错误, X X X 和 Y Y Y 之间真正的关系是
Y = f ( X ) = e − 8 ∣ ∣ X ∣ ∣ 2 , Y = f(X) = e^{−8\mid \mid X\mid \mid ^2}, Y=f(X)=e−8∣∣X∣∣2,
我们采用 1 1 1-最近邻规则去预测测试点 x 0 = 0 x_0=0 x0=0 的值 y 0 y_0 y0.记训练集为 KaTeX parse error: Undefined control sequence: \cal at position 2: {\̲c̲a̲l̲{T}}.对于我们的过程,可以通过平均所有的大小为 1000 1000 1000 的样本来计算在 x 0 x_0 x0 处的预测偏差的期望值.因为这个问题是确定性的,下面是估计 f ( 0 ) f(0) f(0) 的均方误差 M S E \rm{MSE} MSE
M S E ( x 0 ) = E T [ f ( x 0 ) − y ^ 0 ] 2 = E T [ y ^ 0 − E T ( y ^ 0 ) ] 2 + [ E T ( y ^ 0 ) − f ( x 0 ) ] 2 = V a r T ( y ^ 0 ) + B i a s 2 ( y ^ 0 ) (2.25) \begin{aligned} \rm{MSE}(x_0)&=\rm{E}_{\mathcal{T}}[f(x_0)-\hat{y}_0]^2\\ &=\rm{E}_{\mathcal{T}}[\hat{y}_0-E_{\mathcal{T}}(\hat{y}_0)]^2+[\rm{E}_{\mathcal T}(\hat y_0)-f(x_0)]^2\\ &=\rm{Var}_{\mathcal{T}}(\hat{y}_0)+Bias^2(\hat{y}_0)\tag{2.25} \end{aligned} MSE(x0)=ET[f(x0)−y^0]2=ET[y^0−ET(y^0)]2+[ET(y^0)−f(x0)]2=VarT(y^0)+Bias2(y^0)(2.25)
图 2.7 显示了这个设定.我们已经把 M S E \rm{MSE} MSE 分解成两个部分,随着我们继续讨论,会越来越熟悉这两个部分,这两部分分别是方差和偏差平方.这一分解总是可行的的而且经常有用,并且这一分解被称为 偏差-方差分解 (bias-variance decomposition).除非最近邻在 0 0 0 处,这一例子中 y ^ 0 \hat{y}_0 y^0 会比 f ( 0 ) f(0) f(0) 小,而且平均估计会向下偏.方差是因为 1 1 1-最近邻取样的方差.在低维度以及 N = 1000 N=1000 N=1000 情况下,最近邻非常接近 0 0 0,于是偏差和方差都会非常小.当维数增大,最近邻有从目标点远离的趋势,而且都会带来偏差跟方差. p = 10 p=10 p=10 时,超过 99 % 99\% 99% 的样本的最近邻距离原点大于 0.5 0.5 0.5.因此,当 p p p 增长时,估计值多半有趋势趋于 0 0 0,因此 M S E \rm{MSE} MSE 保持在 1.0 1.0 1.0 附近,偏差也是如此,方差开始下降(这个例子的衍生).
图 2.7:一个模拟的例子,证明维数的灾难以及其在 M S E \rm{MSE} MSE,偏差和方差的影响.输入的特征在 [ − 1 , 1 ] p , p = 1 , … , 10 [-1,1]^p,p=1,\ldots,10 [−1,1]p,p=1,…,10 上均匀分布.左上角显示了在 I R \rm{IR} IR 上的目标函数(无噪声): f ( X ) = e − 8 ∣ ∣ X ∣ ∣ 2 f(X)=e^{-8\mid \mid X\mid \mid ^2} f(X)=e−8∣∣X∣∣2,而且展示了 1 1 1-最近邻在估计 f ( 0 ) f(0) f(0) 时的误差.训练点用蓝色的记号表示.右上角显示了为什么 1 1 1-最近邻的半径随着维数 p p p 的增加而增加.左下角显示了 1 1 1-最近邻的平均半径.右下角显示了 M S E \rm{MSE} MSE,偏差平方和方差关于维数 p p p 的函数曲线.
本章不同于2.5节从最小二乘的角度解读泛化误差,而是采用k近邻的方法代入泛化误差公式,最后解读出k近邻情况下的诸多结论,而这些结论其实代表了一种普遍现象,对其他的模型结论亦是如此。
尽管这是一个非常不自然的例子,类型的情形发生的更一般.多变量的函数复杂度随着维数呈指数增长,而且如果我们希望以在低维中以相同的精度来估计高维中的函数,我们将会需要呈指数增长规模的训练集.在这个例子中,函数是所有 p p p 个变量参与的复杂交互.
偏差项关于距离的依赖性取决于真实值,而且在 1 1 1-最近邻情况它并不总是占主要部分.举个例子,如果像图 2.8 一样函数总是仅仅与少量的维度有关,方差便会占主要部分.
另一方面假设我们知道 Y Y Y 与 X X X 之间的关系为线性的
Y = X T β + ε (2.26) Y = X^T\beta + \varepsilon\tag{2.26} Y=XTβ+ε(2.26)
其中 ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma^2) ε∼N(0,σ2),而且我们用最小二乘对训练数据进行拟合模型.对于任意测试点 x 0 x_0 x0,我们有 y ^ 0 = x 0 T β ^ \hat y_0=x_0^T\hat{\beta} y^0=x0Tβ^,可以写成 y ^ 0 = x 0 T β + ∑ i = 1 N ℓ i ( x 0 ) ϵ i \hat y_0=x_0^T\beta+\sum_{i=1}^N\ell_i(x_0)\epsilon_i y^0=x0Tβ+∑i=1Nℓi(x0)ϵi,其中 ℓ i ( x 0 ) \ell_i(x_0) ℓi(x0) 是 X ( X T X ) − 1 x 0 {\mathbf{X(X^TX)}}^{-1}x_0 X(XTX)−1x0 的第 i i i 个元素.因为在这个模型下,最小二乘估计是无偏的,我们发现
E P E ( x 0 ) = E y 0 ∣ x 0 E T ( y 0 − y ^ 0 ) 2 = E y 0 ∣ x 0 E T ( x 0 T β + ε − y ^ 0 ) 2 = E y 0 ∣ x 0 E T [ ( x 0 T β − y ^ 0 ) 2 + 2 ε ( x 0 T β − y ^ 0 ) + ε 2 ] = E y 0 ∣ x 0 ε 2 + E T ( x 0 T β − y ^ 0 ) 2 ∵ E y 0 ∣ x 0 ε = 0 = V a r ( y 0 ∣ x 0 ) + E T [ y ^ 0 − E T y ^ 0 ] 2 + [ E T y ^ 0 − x 0 T β ] 2 = V a r ( y 0 ∣ x 0 ) + V a r T ( y ^ 0 ) + B i a s 2 ( y ^ 0 ) = σ 2 + E T x 0 T ( X T X ) − 1 x 0 σ 2 + 0 2 (2.27) \begin{aligned} \rm{EPE}(x_0) &= \rm{E}_{y_0\mid x_0}\rm{E}_{ {\mathcal T}}(y_0-\hat{y}_0)^2\\ &={\color{red} {\rm{E}_{y_0\mid x_0}\rm{E}_{\mathcal T}(x_0^T\beta+\varepsilon-\hat{y}_0)^2}}\\ &={\color{red} {\rm{E}_{y_0\mid x_0}\rm{E}_{\mathcal T}[(x_0^T\beta-\hat{y}_0)^2+2\varepsilon (x_0^T\beta-\hat{y}_0)+\varepsilon ^2]}}\\ &={\color{red} {\rm{E}_{y_0\mid x_0}\varepsilon ^2+\rm{E}_{\mathcal T}(x_0^T\beta-\hat{y}_0)^2\qquad\qquad \because \rm{E}_{y_0\mid x_0}\varepsilon = 0}}\\ &=\rm{Var}(y_0\mid x_0)+\rm{E}_{\mathcal T}[\hat{y}_0-\rm{E}_{\mathcal T}\hat{y}_0]^2+[\rm{E}_{\mathcal T}\hat{y}_0-x_0^T\beta]^2\\ &=\rm{Var}(y_0\mid x_0)+\rm{Var}_{\mathcal T}(\hat{y}_0)+\rm{Bias}^2(\hat{y}_0)\\ &=\sigma^2+E_{\mathcal T}x_0^T(\mathbf{X^TX})^{-1}x_0\sigma^2+0^2\qquad\qquad\tag{2.27} \end{aligned} EPE(x0)=Ey0∣x