3.ESL笔记:监督学习综述(3)——维度诅咒

高维情况下的局域方法

在上面两篇中,我们提到了,假如说样本的数据总量 N N 非常大,那么我们用最近邻方法可以近似出一个最优函数,其等价于理论上的条件数学期望值。(注:具体的内容主要在第二篇里面)但是同时我们也知道我们一般没有那么大的数据集来满足这样的条件。

在这一篇里,我们会提到,当处理高维数据的时候,这种方法同样会失效。这种现象被称为维度诅咒(curse of dimensionality)

我们来考虑最简单的例子:假设我们使用最近邻方法,我们的输入均匀地散布在一个 p p 维的单位体积超立方当中(注:这个超立方每一个维度的尺寸都是1)。如下图:

3.ESL笔记:监督学习综述(3)——维度诅咒_第1张图片
(图:左边展示的是一个三维情况下的单位立方体。右边展示的是随着体积比的增加,立方体各边需要考察的边长。随着维度 p p 从1变到10,所谓的近邻区不再近邻了)

假设当我们考察其中一个点的近邻区的时候,我们需要整个立方体里面数量比例为 r r 的点来作为近邻区。因为所有的点在空间中是均匀分布的,这意味着我们需要考察体积也为 r r 的区域。假设这块区域也是超立方型状的,那么数学上每一个维度上的长度就是 ep(r)=r1/p e p ( r ) = r 1 / p 。随意计算一下可以得到: e10(0.01)=0.63 e 10 ( 0.01 ) = 0.63 e100.1=0.80 e 10 0.1 = 0.80 ,而整个超立方每条边的长度只有 1.0 1.0 。这意味着:为了考察1%和10%的数据来做最近邻方法,每个维度都要考察63%和80%的值域范围。所以所谓的“近邻区”都不是近邻了。

那么假如考察得少一点,把比例范围 r r 缩小一点呢?那么我们能看到更少的数据点,所得结果的方差也会更高。

另外一个需要注意到的事情是,在高维情况下,所有的样本点都会靠近空间的边。假设有 N N 个数据点均匀分布在一个 p p 维单位球体当中,球心就在坐标原点上。假设我们在原点处使用最近邻方法。从中心到离其最近的数据点的距离的中位数是:

d(p,N)=(1121/N)1/p d ( p , N ) = ( 1 − 1 2 1 / N ) 1 / p

(注:式子的求解过程太过于复杂,如果有人感兴趣那可以一起讨论一下~)

找个数字带进去,我们可以发现 d(10,500)0.52 d ( 10 , 500 ) ≈ 0.52 ,这个值已经超过从原点到球边界的一半距离了,而这个值只是中位数。这说明大部分的点,在高维的样本空间里,都尽可能地趋向于分布在边界区,而远离其他的点。提到这个的原因在于,当遇到样本边界的时候,我们的预测会遇到点困难:在非边界区我们可以通过内插(interpolate)来进行预测,而现在到边界区我们得使用外推了(extrapolate)。

最后需要提的一点是,在高维空间中,样本采样密度正比于 N1/p N 1 / p 。假设一个单输入问题需要 N1=100 N 1 = 100 个样本得到好效果,那么10输入问题对应地需要 N10=10010 N 10 = 100 10 个样本。

下面的例子可以帮助一下理解:假设在 p p 维输入空间中我们有1000个训练样本 xi[1,1]p x i ∈ [ − 1 , 1 ] p 而且均匀分布。假设变量 X X 和变量 Y Y 的真实关系(不带任何测量误差地)是:

Y=f(X)=e8||x||2 Y = f ( X ) = e − 8 | | x | | 2

我们使用1-最近邻方法来预测测试点 x=0 x = 0 对应的值 y0 y 0 。首先用 T T 表示我们的训练集。

那么预测 x0 x 0 的误差 EPE E P E 就是 f(0) f ( 0 ) 的残差平方 MSE M S E (因为问题是确定性而非概率性的):

MSE(x0)=ET[f(x0)y^0]2=Var(f(x0)y^0)+[ET[f(x0)y^0]]2=ET[(f(x0)y^0)ET[f(x0)y^0]]2+[f(x0)ET[y^0]]2=ET[f(x0)y^0f(x0)+ET[y^0]]2+[f(x0)ET[y^0]]2=ET[y^0ET(y^0)]2+[ET(y^0)f(x0)]2=VarT(y^0)+Bias2(y^0) M S E ( x 0 ) = E T [ f ( x 0 ) − y ^ 0 ] 2 = V a r ( f ( x 0 ) − y ^ 0 ) + [ E T [ f ( x 0 ) − y ^ 0 ] ] 2 = E T [ ( f ( x 0 ) − y ^ 0 ) − E T [ f ( x 0 ) − y ^ 0 ] ] 2 + [ f ( x 0 ) − E T [ y ^ 0 ] ] 2 = E T [ f ( x 0 ) − y ^ 0 − f ( x 0 ) + E T [ y ^ 0 ] ] 2 + [ f ( x 0 ) − E T [ 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 )

我们将 MSE M S E 分解成了两个部分:方差与偏差的平方。这个步骤有时候也被称作方差-偏差分解。因为我们用最近邻的 y y 值去预测 y^0 y ^ 0 ,而根据真实关系公式 y y 必定比 f(0) f ( 0 ) 小,所以平均估计下来,我们的偏差是偏小走的。关于方差,它的来源是因为1-最近邻的采样方差。(注:这些分析是基于我们对 MSE M S E 公式结果的理解)在低维以及 N=1000 N = 1000 的情况下,最近的邻居非常接近与0自身,所以偏差和方差都很小;当维度上升之后,最近的邻居趋向于原理目标测试点,因此偏差和方差都会上升。当维度 p=10 p = 10 的时候,对99%的样本而言其最近的邻居都距离原点0.5以上的距离。所以当 p p 继续增长,而我们还采用1-最近邻的时候,我们得到的估值就是0。(注:高维->最近邻距离远->按照真实公式,最近邻的 y y 几乎为0->预测原点的值也为0)同时,偏差会越来越大,而方差则逐渐稳定, MSE M S E 最终稳定在1。所以我们在高维的情况下需要加大数据密度来应对这些情况。

(注:以上就是书中关于维度诅咒的主要内容。维度诅咒具体来说包含的不只是一个方面。随着维度的增加,相应的数据集也要不断增大来加以应对,这是在实际问题里需要考虑到的)

你可能感兴趣的:(书籍)