1 Curse of dimensionality
我们知道, k k k-NN算法是一种非常简单又很有效果的算法,它的核心思想就是局部近似。究其原因,就是因为它可以很好地对条件期望进行近似,一方面它用样本均值代替了期望,另一方面它用给定某个点的邻域代替了该点,结合起来,就是用在邻域内的样本均值,取代了在该点处的条件期望。
但是,在高维问题中, k k k-NN会逐渐变得无效。为什么?还要从高维问题的一些特点说起。
首先,高维空中的样本,分布非常稀疏。假设有一个单位体积的超立方体(hypercube),即每个维度的“边长”都为 1 1 1,它的“体积”也为 1 1 1,而样本在里面均匀分布。如果我们想要取到它一定比例 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维空间中,仅仅想取它 10 % 10\% 10%的体积,就应取每条边的 e 10 ( 0.1 ) = 0.80 e_{10}(0.1)=0.80 e10(0.1)=0.80的长度,也就是对每条边都要取 80 % 80\% 80%的范围。
第二,高维空间中的样本,几乎都分布在“边缘”处。考虑
p
p
p维空间中的
N
N
N个样本,假设它们均匀分布在一个单位球中,球心就在原点,那么,距离原点最近的那个样本,它到原点的“距离”的中位数是多少?令
D
=
min
i
{
∥
x
i
∥
}
D=\min_i\{\Vert x_i \Vert\}
D=mini{∥xi∥}为各样本到原点距离的最小值,计算它的累积分布函数
F
(
d
)
=
Pr
(
D
≤
d
)
=
1
−
Pr
(
D
>
d
)
=
1
−
∏
i
=
1
N
Pr
(
∥
x
i
∥
>
d
)
=
1
−
∏
i
=
1
N
[
1
−
Pr
(
∥
x
i
∥
≤
d
)
]
=
1
−
[
1
−
d
p
]
N
\begin{aligned} &F(d)\\ =& \Pr(D\leq d)\\ =& 1-\Pr(D\gt d)\\ =& 1- \prod_{i=1}^{N} \Pr(\Vert x_i \Vert \gt d)\\ =& 1- \prod_{i=1}^{N} [1-\Pr(\Vert x_i \Vert \leq d)]\\ =& 1- \left[1-d^p\right]^{N} \end{aligned}
=====F(d)Pr(D≤d)1−Pr(D>d)1−i=1∏NPr(∥xi∥>d)1−i=1∏N[1−Pr(∥xi∥≤d)]1−[1−dp]N
想知道距离的中位数,只需让累积分布函数取值 1 / 2 1/2 1/2即可。可以算出,最近距离的中位数 d ( N , p ) = [ 1 − ( 1 / 2 ) 1 / N ] 1 / p d(N,p)=\left[1-\left(1/2 \right)^{1/N}\right]^{1/p} d(N,p)=[1−(1/2)1/N]1/p。比如 p = 10 p=10 p=10, N = 500 N=500 N=500的话, d ( 10 , 500 ) ≈ 0.52 d(10,500)\approx 0.52 d(10,500)≈0.52,也就是说,离原点最近的那个点,就已经在一半距离以外了。
第三,在高维中,采样密度与 N 1 / p N^{1/p} N1/p成比例。如果在 1 1 1维时我们采样 100 100 100个点,那么在 10 10 10维时我们需要采样 10 0 10 100^{10} 10010个点才能维持一样的采样密度。
2 高维问题举例
2.1 高维中的 1 1 1-NN
设定: N = 1000 N=1000 N=1000, X X X为 p p p维随机变量,且在 [ − 1 , 1 ] p [-1,1]^p [−1,1]p上均匀分布, Y = f ( X ) = exp ( − 8 ∥ X ∥ 2 ) Y=f(X)=\exp(-8 \Vert X \Vert^2) Y=f(X)=exp(−8∥X∥2),记训练集为 T \mathcal{T} T,我们要用 1 1 1-NN去预测 x 0 = 0 x_0=0 x0=0处的 y 0 y_0 y0。当然,我们已经知道了答案 y 0 = f ( x 0 ) = 1 y_0=f(x_0)=1 y0=f(x0)=1。
可以对MSE(mean squared error,均方误差)做分解:
MSE
(
x
0
)
=
E
T
[
f
(
x
0
)
−
y
^
0
]
2
=
[
f
(
x
0
)
−
E
T
(
y
^
0
)
]
2
+
E
T
[
E
T
(
y
^
0
)
−
y
^
0
]
2
\begin{aligned} &\text{MSE}(x_0)\\ =& E_{\mathcal{T}}[f(x_0)-\hat{y}_0]^2\\ =& [f(x_0)-E_{\mathcal{T}}(\hat{y}_0)]^2 +E_{\mathcal{T}}[E_{\mathcal{T}}(\hat{y}_0)-\hat{y}_0]^2 \end{aligned}
==MSE(x0)ET[f(x0)−y^0]2[f(x0)−ET(y^0)]2+ET[ET(y^0)−y^0]2
最后一个等式是因为
E
T
{
[
f
(
x
0
)
−
E
T
(
y
^
0
)
]
(
E
T
(
y
^
0
)
−
y
^
0
)
}
=
0
E_{\mathcal{T}}\{[f(x_0)-E_{\mathcal{T}}(\hat{y}_0)](E_{\mathcal{T}}(\hat{y}_0)-\hat{y}_0)\}=0
ET{[f(x0)−ET(y^0)](ET(y^0)−y^0)}=0。第一部分为bias的平方,第二部分为variance。
在 p = 1 p=1 p=1时, 1 1 1-NN算法找的最近的点,很可能不会在 0 0 0处,因此必有 E T ( y ^ 0 ) < 0 E_{\mathcal{T}}(\hat{y}_0)\lt 0 ET(y^0)<0,但由于此时 N = 1000 N=1000 N=1000比较大,找的点基本上会离 x 0 x_0 x0比较近,因此bias和variance都不会太大。
但在高维时,问题就开始出现了。比如 p = 10 p=10 p=10,那么如上文所说,到原点的最短距离会大大增加:有 99 % 99\% 99%以上的样本,到 x 0 = 0 x_0=0 x0=0的最近距离会大于 0.5 0.5 0.5。因此预测的 y ^ 0 \hat{y}_0 y^0有很高的概率接近于 0 0 0,bias会非常大,就算variance很小,也会导致MSE接近于 1 1 1了。
有时候不一定是bias过多影响了MSE,比如真正的函数关系只与其中几个维度有关的话,如 f ( X ) = ( X 1 + 1 ) 3 / 2 f(X)=(X_1+1)^3/2 f(X)=(X1+1)3/2,此时,bias不会太大,在MSE中是variance起了决定性作用。
2.2 高维中的LS
设定:真实的变量关系为 y = X β + ϵ y=X\beta+\epsilon y=Xβ+ϵ,其中 ϵ ∼ N ( 0 , σ 2 I N ) \epsilon\sim N(0,\sigma^2 I_N) ϵ∼N(0,σ2IN)且与 X X X无关,我们还是要估计 x 0 x_0 x0处的 y 0 y_0 y0。
首先利用最小二乘法,我们有 β ^ = ( X ′ X ) − 1 X ′ y = β + ( X ′ X ) − 1 X ′ ϵ \hat\beta=(X'X)^{-1}X'y=\beta+(X'X)^{-1}X'\epsilon β^=(X′X)−1X′y=β+(X′X)−1X′ϵ, y ^ 0 = x 0 ′ β ^ = x 0 ′ β + x 0 ′ ( X ′ X ) − 1 X ′ ϵ \hat y_0=x_0'\hat\beta=x_0'\beta+x_0'(X'X)^{-1}X'\epsilon y^0=x0′β^=x0′β+x0′(X′X)−1X′ϵ,在这里,我们关注在 x 0 x_0 x0处的expected (squared) prediction error(期望预测误差) EPE ( x 0 ) = E y 0 ∣ x 0 E T ( y 0 − y ^ 0 ) 2 \text{EPE}(x_0)=E_{y_0|x_0}E_{\mathcal{T}} (y_0-\hat{y}_0)^2 EPE(x0)=Ey0∣x0ET(y0−y^0)2。
与2.1节中的情况相比,这里多了一个扰动项
ϵ
\epsilon
ϵ,我们将
y
0
−
y
^
0
y_0-\hat{y}_0
y0−y^0拆解为两部分:
y
0
−
y
^
0
=
(
y
0
−
x
0
′
β
)
+
(
x
0
′
β
−
y
^
0
)
y_0-\hat{y}_0=(y_0-x_0'\beta)+(x_0'\beta -\hat{y}_0)
y0−y^0=(y0−x0′β)+(x0′β−y^0)
由简单的计算,可将第一项的平方项化为
E
y
0
∣
x
0
E
T
(
y
0
−
x
0
′
β
)
2
=
σ
2
E_{y_0|x_0}E_{\mathcal{T}} (y_0-x_0'\beta)^2=\sigma^2
Ey0∣x0ET(y0−x0′β)2=σ2,将第二项的平方项化为
E
y
0
∣
x
0
E
T
(
x
0
′
β
−
y
^
0
)
2
=
[
x
0
′
β
−
E
T
(
y
^
0
)
]
2
+
E
T
[
E
T
(
y
^
0
)
−
y
^
0
]
2
E_{y_0|x_0}E_{\mathcal{T}}(x_0'\beta -\hat{y}_0) ^2 =[x_0'\beta-E_{\mathcal{T}}(\hat{y}_0)]^2 +E_{\mathcal{T}}[E_{\mathcal{T}}(\hat{y}_0)-\hat{y}_0]^2
Ey0∣x0ET(x0′β−y^0)2=[x0′β−ET(y^0)]2+ET[ET(y^0)−y^0]2
并且,由于
E
T
(
y
^
0
)
=
x
0
′
β
+
x
0
′
E
T
[
(
X
′
X
)
−
1
X
′
ϵ
]
E_{\mathcal{T}}(\hat{y}_0)=x_0'\beta+x_0'E_{\mathcal{T}} [(X'X)^{-1}X'\epsilon]
ET(y^0)=x0′β+x0′ET[(X′X)−1X′ϵ],再利用
E
T
[
(
X
′
X
)
−
1
X
′
ϵ
]
=
E
X
E
Y
∣
X
[
(
X
′
X
)
−
1
X
′
ϵ
]
=
E
X
[
(
X
′
X
)
−
1
X
′
E
Y
∣
X
(
ϵ
)
]
=
0
E_{\mathcal{T}} [(X'X)^{-1}X'\epsilon]=E_{\mathcal{X}} E_{\mathcal{Y|X}} [(X'X)^{-1}X'\epsilon]=E_{\mathcal{X}} \left[ (X'X)^{-1}X' E_{\mathcal{Y|X}} (\epsilon)\right]=0
ET[(X′X)−1X′ϵ]=EXEY∣X[(X′X)−1X′ϵ]=EX[(X′X)−1X′EY∣X(ϵ)]=0,可知
E
T
(
y
^
0
)
=
x
0
′
β
E_{\mathcal{T}}(\hat{y}_0)=x_0'\beta
ET(y^0)=x0′β,上式第一项即bias的平方为
0
0
0,最终只剩variance,并可进一步化为
E
y
0
∣
x
0
E
T
(
x
0
′
β
−
y
^
0
)
2
=
E
T
[
E
T
(
y
^
0
)
−
y
^
0
]
2
=
E
T
[
x
0
′
(
X
′
X
)
−
1
X
′
ϵ
ϵ
′
X
(
X
′
X
)
−
1
x
0
]
=
x
0
′
E
X
[
(
X
′
X
)
−
1
X
′
[
E
Y
∣
X
(
ϵ
ϵ
′
)
]
X
(
X
′
X
)
−
1
]
x
0
=
x
0
′
E
X
[
(
X
′
X
)
−
1
]
x
0
σ
2
\begin{aligned} &E_{y_0|x_0}E_{\mathcal{T}}(x_0'\beta -\hat{y}_0) ^2\\ =& E_{\mathcal{T}}[E_{\mathcal{T}}(\hat{y}_0)-\hat{y}_0]^2\\ =& E_{\mathcal{T}}[x_0'(X'X)^{-1}X'\epsilon\epsilon' X (X'X)^{-1}x_0]\\ =& x_0' E_{\mathcal{X}} \left[ (X'X)^{-1}X' [E_{\mathcal{Y|X}}(\epsilon\epsilon')]X (X'X)^{-1} \right] x_0\\ =&x_0' E_{\mathcal{X}} \left[(X'X)^{-1}\right]x_0 \sigma^2 \end{aligned}
====Ey0∣x0ET(x0′β−y^0)2ET[ET(y^0)−y^0]2ET[x0′(X′X)−1X′ϵϵ′X(X′X)−1x0]x0′EX[(X′X)−1X′[EY∣X(ϵϵ′)]X(X′X)−1]x0x0′EX[(X′X)−1]x0σ2
最后,再次利用
E
T
(
y
^
0
)
=
x
0
′
β
E_{\mathcal{T}}(\hat{y}_0)=x_0'\beta
ET(y^0)=x0′β,交叉项为
2
E
y
0
∣
x
0
E
T
[
(
y
0
−
x
0
′
β
)
(
x
0
′
β
−
y
^
0
)
]
=
2
E
y
0
∣
x
0
[
(
y
0
−
x
0
′
β
)
E
T
(
x
0
′
β
−
y
^
0
)
]
=
0
\begin{aligned} &2E_{y_0|x_0}E_{\mathcal{T}}[(y_0-x_0'\beta)(x_0'\beta -\hat{y}_0)]\\ =& 2E_{y_0|x_0}\left[(y_0-x_0'\beta)E_{\mathcal{T}} (x_0'\beta -\hat{y}_0)\right]\\ =& 0 \end{aligned}
==2Ey0∣x0ET[(y0−x0′β)(x0′β−y^0)]2Ey0∣x0[(y0−x0′β)ET(x0′β−y^0)]0
汇总以上3个结果,有:
EPE
(
x
0
)
=
E
y
0
∣
x
0
E
T
(
y
0
−
y
^
0
)
2
=
σ
2
+
x
0
′
E
X
[
(
X
′
X
)
−
1
]
x
0
σ
2
\text{EPE}(x_0)=E_{y_0|x_0}E_{\mathcal{T}} (y_0-\hat{y}_0)^2=\sigma^2+x_0' E_{\mathcal{X}} \left[(X'X)^{-1}\right]x_0 \sigma^2
EPE(x0)=Ey0∣x0ET(y0−y^0)2=σ2+x0′EX[(X′X)−1]x0σ2
若
T
\mathcal{T}
T为随机抽取的样本,假定
E
(
x
)
=
0
E(x)=0
E(x)=0,当
N
→
∞
N\to\infty
N→∞时,
X
′
X
→
N
Cov
(
x
)
X'X\to N \text{Cov}(x)
X′X→NCov(x),再对于所有
x
0
x_0
x0取期望,有
E
x
0
EPE
(
x
0
)
∼
σ
2
+
σ
2
N
E
x
0
[
x
0
′
Cov
(
x
)
−
1
x
0
]
=
σ
2
+
σ
2
N
tr
[
Cov
(
x
)
−
1
E
x
0
(
x
0
x
0
′
)
]
=
σ
2
+
σ
2
N
tr
(
I
p
)
=
σ
2
+
p
N
σ
2
\begin{aligned} &E_{x_0}\text{EPE}(x_0)\\ \sim& \sigma^2+\dfrac{\sigma^2}{N} E_{x_0} [x_0' \text{Cov}(x)^{-1} x_0]\\ =& \sigma^2+\dfrac{\sigma^2}{N} \text{tr} \left[ \text{Cov}(x)^{-1} E_{x_0} (x_0x_0' )\right]\\ =& \sigma^2+\dfrac{\sigma^2}{N} \text{tr} (I_p)\\ =& \sigma^2+\dfrac{p}{N}\sigma^2 \end{aligned}
∼===Ex0EPE(x0)σ2+Nσ2Ex0[x0′Cov(x)−1x0]σ2+Nσ2tr[Cov(x)−1Ex0(x0x0′)]σ2+Nσ2tr(Ip)σ2+Npσ2
可以看出,EPE会随着 p p p的增加而增加。
参考文献
- Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. No. 10. New York: Springer series in statistics, 2001.