Curse of Dimensionality

本文围绕高维问题展开,介绍了高维空间样本分布稀疏、多在边缘、采样密度与N1/p成比例等特点。以k-NN和LS算法为例,阐述高维对算法的影响。在高维中,k-NN的MSE受bias或variance影响增大,LS的EPE会随维度增加而增加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Curse of dimensionality

我们知道,kkk-NN算法是一种非常简单又很有效果的算法,它的核心思想就是局部近似。究其原因,就是因为它可以很好地对条件期望进行近似,一方面它用样本均值代替了期望,另一方面它用给定某个点的邻域代替了该点,结合起来,就是用在邻域内的样本均值,取代了在该点处的条件期望。

但是,在高维问题中,kkk-NN会逐渐变得无效。为什么?还要从高维问题的一些特点说起。

首先,高维空中的样本,分布非常稀疏。假设有一个单位体积的超立方体(hypercube),即每个维度的“边长”都为111,它的“体积”也为111,而样本在里面均匀分布。如果我们想要取到它一定比例rrr的样本,也即取该超立方体rrr比例的体积,那么,每条边应该取多少的比例范围?很简单,每个边长应取ep(r)=r1/pe_p(r)=r^{1/p}ep(r)=r1/p。如果在101010维空间中,仅仅想取它10%10\%10%的体积,就应取每条边的e10(0.1)=0.80e_{10}(0.1)=0.80e10(0.1)=0.80的长度,也就是对每条边都要取80%80\%80%的范围。

第二,高维空间中的样本,几乎都分布在“边缘”处。考虑ppp维空间中的NNN个样本,假设它们均匀分布在一个单位球中,球心就在原点,那么,距离原点最近的那个样本,它到原点的“距离”的中位数是多少?令D=min⁡i{∥xi∥}D=\min_i\{\Vert x_i \Vert\}D=mini{xi}为各样本到原点距离的最小值,计算它的累积分布函数
F(d)=Pr⁡(D≤d)=1−Pr⁡(D>d)=1−∏i=1NPr⁡(∥xi∥>d)=1−∏i=1N[1−Pr⁡(∥xi∥≤d)]=1−[1−dp]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(Dd)1Pr(D>d)1i=1NPr(xi>d)1i=1N[1Pr(xid)]1[1dp]N

想知道距离的中位数,只需让累积分布函数取值1/21/21/2即可。可以算出,最近距离的中位数d(N,p)=[1−(1/2)1/N]1/pd(N,p)=\left[1-\left(1/2 \right)^{1/N}\right]^{1/p}d(N,p)=[1(1/2)1/N]1/p。比如p=10p=10p=10N=500N=500N=500的话,d(10,500)≈0.52d(10,500)\approx 0.52d(10,500)0.52,也就是说,离原点最近的那个点,就已经在一半距离以外了。

第三,在高维中,采样密度与N1/pN^{1/p}N1/p成比例。如果在111维时我们采样100100100个点,那么在101010维时我们需要采样10010100^{10}10010个点才能维持一样的采样密度。

2 高维问题举例

2.1 高维中的111-NN

设定:N=1000N=1000N=1000XXXppp维随机变量,且在[−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(8X2),记训练集为T\mathcal{T}T,我们要用111-NN去预测x0=0x_0=0x0=0处的y0y_0y0。当然,我们已经知道了答案y0=f(x0)=1y_0=f(x_0)=1y0=f(x0)=1

可以对MSE(mean squared error,均方误差)做分解:
MSE(x0)=ET[f(x0)−y^0]2=[f(x0)−ET(y^0)]2+ET[ET(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
最后一个等式是因为ET{[f(x0)−ET(y^0)](ET(y^0)−y^0)}=0E_{\mathcal{T}}\{[f(x_0)-E_{\mathcal{T}}(\hat{y}_0)](E_{\mathcal{T}}(\hat{y}_0)-\hat{y}_0)\}=0ET{[f(x0)ET(y^0)](ET(y^0)y^0)}=0。第一部分为bias的平方,第二部分为variance。

p=1p=1p=1时,111-NN算法找的最近的点,很可能不会在000处,因此必有ET(y^0)<0E_{\mathcal{T}}(\hat{y}_0)\lt 0ET(y^0)<0,但由于此时N=1000N=1000N=1000比较大,找的点基本上会离x0x_0x0比较近,因此bias和variance都不会太大。

但在高维时,问题就开始出现了。比如p=10p=10p=10,那么如上文所说,到原点的最短距离会大大增加:有99%99\%99%以上的样本,到x0=0x_0=0x0=0的最近距离会大于0.50.50.5。因此预测的y^0\hat{y}_0y^0有很高的概率接近于000,bias会非常大,就算variance很小,也会导致MSE接近于111了。

有时候不一定是bias过多影响了MSE,比如真正的函数关系只与其中几个维度有关的话,如f(X)=(X1+1)3/2f(X)=(X_1+1)^3/2f(X)=(X1+1)3/2,此时,bias不会太大,在MSE中是variance起了决定性作用。

2.2 高维中的LS

设定:真实的变量关系为y=Xβ+ϵy=X\beta+\epsilony=Xβ+ϵ,其中ϵ∼N(0,σ2IN)\epsilon\sim N(0,\sigma^2 I_N)ϵN(0,σ2IN)且与XXX无关,我们还是要估计x0x_0x0处的y0y_0y0

首先利用最小二乘法,我们有β^=(X′X)−1X′y=β+(X′X)−1X′ϵ\hat\beta=(X'X)^{-1}X'y=\beta+(X'X)^{-1}X'\epsilonβ^=(XX)1Xy=β+(XX)1Xϵy^0=x0′β^=x0′β+x0′(X′X)−1X′ϵ\hat y_0=x_0'\hat\beta=x_0'\beta+x_0'(X'X)^{-1}X'\epsilony^0=x0β^=x0β+x0(XX)1Xϵ,在这里,我们关注在x0x_0x0处的expected (squared) prediction error(期望预测误差)EPE(x0)=Ey0∣x0ET(y0−y^0)2\text{EPE}(x_0)=E_{y_0|x_0}E_{\mathcal{T}} (y_0-\hat{y}_0)^2EPE(x0)=Ey0x0ET(y0y^0)2

与2.1节中的情况相比,这里多了一个扰动项ϵ\epsilonϵ,我们将y0−y^0y_0-\hat{y}_0y0y^0拆解为两部分:
y0−y^0=(y0−x0′β)+(x0′β−y^0) y_0-\hat{y}_0=(y_0-x_0'\beta)+(x_0'\beta -\hat{y}_0) y0y^0=(y0x0β)+(x0βy^0)

由简单的计算,可将第一项的平方项化为Ey0∣x0ET(y0−x0′β)2=σ2E_{y_0|x_0}E_{\mathcal{T}} (y_0-x_0'\beta)^2=\sigma^2Ey0x0ET(y0x0β)2=σ2,将第二项的平方项化为
Ey0∣x0ET(x0′β−y^0)2=[x0′β−ET(y^0)]2+ET[ET(y^0)−y^0]2E_{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 Ey0x0ET(x0βy^0)2=[x0βET(y^0)]2+ET[ET(y^0)y^0]2
并且,由于ET(y^0)=x0′β+x0′ET[(X′X)−1X′ϵ]E_{\mathcal{T}}(\hat{y}_0)=x_0'\beta+x_0'E_{\mathcal{T}} [(X'X)^{-1}X'\epsilon]ET(y^0)=x0β+x0ET[(XX)1Xϵ],再利用ET[(X′X)−1X′ϵ]=EXEY∣X[(X′X)−1X′ϵ]=EX[(X′X)−1X′EY∣X(ϵ)]=0E_{\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]=0ET[(XX)1Xϵ]=EXEYX[(XX)1Xϵ]=EX[(XX)1XEYX(ϵ)]=0,可知ET(y^0)=x0′βE_{\mathcal{T}}(\hat{y}_0)=x_0'\betaET(y^0)=x0β,上式第一项即bias的平方为000,最终只剩variance,并可进一步化为
Ey0∣x0ET(x0′β−y^0)2=ET[ET(y^0)−y^0]2=ET[x0′(X′X)−1X′ϵϵ′X(X′X)−1x0]=x0′EX[(X′X)−1X′[EY∣X(ϵϵ′)]X(X′X)−1]x0=x0′EX[(X′X)−1]x0σ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} ====Ey0x0ET(x0βy^0)2ET[ET(y^0)y^0]2ET[x0(XX)1XϵϵX(XX)1x0]x0EX[(XX)1X[EYX(ϵϵ)]X(XX)1]x0x0EX[(XX)1]x0σ2

最后,再次利用ET(y^0)=x0′βE_{\mathcal{T}}(\hat{y}_0)=x_0'\betaET(y^0)=x0β,交叉项为
2Ey0∣x0ET[(y0−x0′β)(x0′β−y^0)]=2Ey0∣x0[(y0−x0′β)ET(x0′β−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} ==2Ey0x0ET[(y0x0β)(x0βy^0)]2Ey0x0[(y0x0β)ET(x0βy^0)]0

汇总以上3个结果,有:
EPE(x0)=Ey0∣x0ET(y0−y^0)2=σ2+x0′EX[(X′X)−1]x0σ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)=Ey0x0ET(y0y^0)2=σ2+x0EX[(XX)1]x0σ2

T\mathcal{T}T为随机抽取的样本,假定E(x)=0E(x)=0E(x)=0,当N→∞N\to\inftyN时,X′X→NCov(x)X'X\to N \text{Cov}(x)XXNCov(x),再对于所有x0x_0x0取期望,有
Ex0EPE(x0)∼σ2+σ2NEx0[x0′Cov(x)−1x0]=σ2+σ2Ntr[Cov(x)−1Ex0(x0x0′)]=σ2+σ2Ntr(Ip)=σ2+pNσ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[x0Cov(x)1x0]σ2+Nσ2tr[Cov(x)1Ex0(x0x0)]σ2+Nσ2tr(Ip)σ2+Npσ2

可以看出,EPE会随着ppp的增加而增加。

参考文献

  • Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. No. 10. New York: Springer series in statistics, 2001.
1. 算法背景 问题场景:在高维数据(如图像特征、文本向量)中进行**最近邻搜索(NN Search)**时,传统方法(如暴力搜索、KD树)可能效率低下,尤其是在维度灾难(Curse of Dimensionality)下,KD树的搜索时间可能退化为线性复杂度。 核心目标:在KD树的基础上,通过近似最近邻搜索(Approximate Nearest Neighbor, ANN),在保证一定精度的前提下,显著提升搜索效率。 2. 核心思想 BBF算法由David Lowe在SIFT特征匹配中提出,主要优化KD树的搜索过程: 优先级队列(Priority Queue): 将待搜索的树节点按与查询点的距离优先级排序,优先探索更可能包含最近邻的子树。 剪枝策略(Pruning): 设置最大搜索次数或误差容忍阈值,提前终止搜索,避免遍历所有节点。 近似解替代精确解: 通过限制搜索路径数量,牺牲少量精度以换取速度提升。 3. 算法步骤 构建KD树:与传统KD树相同,递归划分数据空间。 初始化优先级队列: 将根节点加入队列,队列中节点按与查询点的最小可能距离排序。 迭代搜索: 从队列中取出优先级最高的节点: 若为叶子节点,计算其数据点与查询点的距离,更新最近邻候选。 若为非叶子节点,将其子节点加入队列。 终止条件: 达到预设的最大搜索次数,或队列为空时停止。 返回结果:当前找到的最近邻(可能是近似解)。 4. 优缺点总结 优点 缺点 1. 高效:显著减少搜索时间,复杂度接近对数级别(O(log n))。 2. 适用高维数据:优于传统KD树暴力搜索。 3. 灵活控制精度:通过调整搜索次数平衡效率与精度。 1. 近似解:可能无法保证严格最近邻。 2. 参数敏感:需手动设置最大搜索次数或误差阈值。 3. 预处理开销:需预先构建KD树。 5. 应用场景 图像特征匹配(如SIFT、SURF)。 大规模高维数据检索(如推荐系统、生物信息学)。 实时系统:需快速响应的场景(如机器人导航、AR/VR)。 6. 教学要点总结 核心机制:优先级队列 + 剪枝策略 → 近似最近邻。 关键公式:节点优先级 = 查询点到节点区域的最小可能距离(如超平面距离)。 对比KD树: 传统KD树 BBF优化 必须搜索到叶子节点 提前终止,近似解 精确解 可能牺牲精度换速度 高维效率低 高维下更稳定 代码实现提示:需结合KD树结构与优先队列(如Python的heapq库)。 生成思维导图
最新发布
03-15
一般来说,语言模型旨在对于人类语言的内在规律进行建模,从而准确预测 词序列中未来(或缺失)词或词元(Token)的概率。根据所采用技术方法的不同, 针对语言模型的研究工作可以分为以下四个主要发展阶段: • 统计语言模型(Statistical Language Model, SLM). 在 20 世纪 90 年代兴起的 统计语言模型 [4, 5] 是基于统计学习方法研发的。具体来说,统计语言模型使用马 尔可夫假设(Markov Assumption)来建立语言序列的预测模型,通常是根据词序 列中若干个连续的上下文单词来预测下一个词的出现概率,即根据一个固定长度 的前缀来预测目标单词。具有固定上下文长度 𝑛 的统计语言模型通常被称为 𝑛 元 (𝑛-gram)语言模型,如二元或三元语言模型。统计语言模型被广泛应用于信息检索 (Information Retrieval, IR)和自然语言处理(Natural Language Processing, NLP)等领 域的早期研究工作。对于高阶统计语言模型来说,随着阶数 𝑛 的增加,需要估计的 转移概率项数将会指数级增长,经常会受到“维数灾难”(Curse of Dimensionality) 的困扰。为了缓解数据稀疏问题,需要设计专门的语言模型平滑策略,如回退估 计(Back-off Estimation)和古德-图灵估计(Good-Turing Estimation)。然而平滑方 法对于高阶上下文的刻画能力仍然较弱,无法精确建模复杂的高阶语义关系。 • 神经语言模型(Neural Language Model, NLM). 神经语言模型 [6, 7] 使用神经 网络来建模文本序列的生成,如循环神经网络(Recurrent Neural Networks, RNN)。图 1.1 语言模型的发展历程 灵奖获得者 Yoshua Bengio 在一项早期工作中 [6] 引入了分布式词表示(Distributed Word Representation)这一概念,并构建了基于聚合上下文特征(即分布式词向量) 的目标词预测函数。分布式词表示使用低维稠密向量来表示词汇的语义,这与基 于词典空间的稀疏词向量表示(One-Hot Representation)有着本质的不同,能够刻 画更为丰富的隐含语义特征。同时,稠密向量的非零表征对于复杂语言模型的搭 建非常友好,能够有效克服统计语言模型中的数据稀疏问题。分布式词向量又称为 “词嵌入”(Word Embedding)。这种基于隐含语义特征表示的语言建模方法为自然 语言处理任务提供了一种较为通用的解决途径。在这一系列工作中,word2vec [8, 9] 是一个具有代表性的词嵌入学习模型,它构建了一个简化的浅层神经网络来学 习分布式词表示,所学习到的词嵌入可以用作后续任务的语义特征提取器,在自 然语言处理任务中得到了广泛使用,取得了显著的性能提升。这些创新性的研究 工作将语言模型用于文本表示学习(超越了原始的词序列建模目标),在自然语言 处理领域产生了重要影响。概述上文
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值