维数灾难(英语:curse of dimensionality,又名维度的詛咒)是一个最早由理查德·贝尔曼(Richard E. Bellman)在考虑优化问题时首次提出来的术语[1][2],用来描述当(数学)空间维度增加时,分析和组织高高维空间(通常有成百上千维),因体积指数增加而遇到各种问题场景。这样的难题在低维空间中不会遇到,如物理空间通常只用三维来建模。

举例来说,100个平均分布的点能把一个单位区间以每个点距离不超过0.01采样;而当维度增加到10后,如果以相邻点距离不超过0.01小方格采样一单位超正方体,则需要1020 个采样点:所以,这个10维的超正方体也可以说是比单位区间大1018倍。(这个是理查德·贝尔曼所举的例子)

在很多领域中,如采样、组合数学、机器学习和数据挖掘都有提及到这个名字的现象。这些问题的共同特色是当维数提高时,空间的体积提高太快,因而可用数据变得很稀疏。稀疏性对于任何要求有统计学意义的方法而言都是一个问题,为了获得在统计学上正确并且有可靠的结果,用来支撑这一结果所需要的数据量通常随着维数的提高而呈指数级增长。而且,在组织和搜索数据时也有赖于检测对象区域,这些区域中的对象通过相似度属性而形成分组。然而在高维空间中,所有的数据都很稀疏,从很多角度看都不相似,因而平常使用的数据组织策略变得极其低效。

“维数灾难”通常是用来作为不要处理高维数据的无力借口。然而,学术界一直都对其有兴趣,而且在继续研究。另一方面,也由于本征维度(英语:intrinsic dimension)的存在,其概念是指任意低维数据空间可简单地通过增加空余(如复制)或随机维将其转换至更高维空间中,相反地,许多高维空间中的数据集也可削减至低维空间数据,而不必丢失重要信息。这一点也通过众多降维(英语:dimension reduction)方法的有效性反映出来,如应用广泛的主成分分析方法。针对距离函数和最近邻搜索,当前的研究也表明除非其中存在太多不相关的维度,带有维数灾难特色的数据集依然可以处理,因为相关维度实际上可使得许多问题(如聚类分析)变得更加容易。另外,一些如马尔科夫蒙特卡洛或共享最近邻搜索方法[3]经常在其他方法因为维数过高而处理棘手的数据集上表现得很好。

组合学

在一些问题中,每个变量都可取一系列离散值中的一个,或者可能值的范围被划分为有限个可能性。把这些变量放在一起,则必须考虑很多种值的组合方式,这后果就是常说的组合爆炸(英语:Combinatorial explosion)。即使在最简单的二元变量例子中,可能产生的组合总数就已经是在维数上呈现指数级的。一般而言,每个额外的维度都需要成倍地增加尝试所有组合方式的影响。

采样

当在数学空间上额外增加一个维度时,其体积会呈指数级的增长。如,点间距离不超过10-2=0.01,102=100个均匀间距的样本点足够采样到一个单元区间(英语:unit interval)(“一个维度的立方体”);一个10维单元超立方体的等价采样,其相邻两点间的距离为0-2=0.01则需要1020个样本点。一般而言,点距为10-n的10维超立方体所需要的样本点数量,是1维超立方体这样的单元区间的10n(10-1)倍。在上面的n=2的例子中:当样本距离为0.01时,10维超立方体所需要的样本点数量会比单元区间多1018倍。这一影响就是上面所述组合学问题中的组合结果,距离函数问题将在下面介绍。

优化

当用数值逆向归纳法(英语:backward induction)解决动态优化问题时,目标函数针对每个可能的组合都必须计算一遍,当状态变量的维度很大时,这是极其困难的。

机器学习

在机器学习问题中,需要在高维特征空间(每个特征都能够取一系列可能值)的有限数据样本中学习一种“自然状态”(可能是无穷分布),要求有相当数量的训练数据含有一些样本组合。给定固定数量的训练样本,其预测能力随着维度的增加而减小,这就是所谓的Hughes影响[4]Hughes现象(以Gordon F. Hughes命名)。[5][6]

贝叶斯统计

在贝叶斯统计(英语:Bayesian statistics)中维数灾难通常是一个难点,因为其后验分布(英语:posterior distributions)通常都包含着许多参数。

然而,这一问题在基于模拟的贝叶斯推理(尤其是适应于很多实践问题的马尔科夫蒙特卡洛方法)出现后得到极大地克服,当然,基于模拟的方法收敛很慢,因此这也并不是解决高维问题的灵丹妙药。

距离函数

当一个度量,如欧几里德距离使用很多坐标来定义时,不同的样本对之间的距离已经基本上没有差别。

一种用来描述高维欧几里德空间的巨型性的方法是将超球体(英语:hypersphere)中半径和维数的比例,和超立方体中边长和等值维数的比例相比较。 这样一个球体的体积计算如下:

立方体的体积计算如下:

随着空间维度的增加,相对于超立方体的体积来说,超球体的体积就变得微不足道了。这一点可以从当趋于无穷时比较前面的比例清楚地看出:

。 因此,在某种意义上,几乎所有的高维空间都远离其中心,或者从另一个角度来看,高维单元空间可以说是几乎完全由超立方体的“边角”所组成的,没有“中部”,这对于理解卡方分布是很重要的直觉理解。 给定一个单一分布,由于其最小值和最大值与最小值相比收敛于0,因此,其最小值和最大值的距离变得不可辨别。 .

这通常被引证为距离函数在高维环境下失去其意义的例子。

最近邻搜索

最近邻搜索在高维空间中影响很大,因为其不可能使用其中一个坐标上的距离下界来快速地去掉一个候选项,因为该距离计算需要基于所有维度。[7][8]

然而,最近的研究表明仅仅一些数量的维度不一定会必然导致该问题,[3]因为相关的附加维度也能增加其相反项。另外,结果排序的方法仍然有助于辨别近处和远处的邻居。然而,不相关(“噪声”)维度也如期望一样会减少相反项,在时序分析中,数据一般都是高维的,只要信噪比足够高的话,其距离函数也同样能够可靠地工作。[9]

k近邻分类

高维度在距离函数的另一个影响例子就是k近邻(k-NN)图,该图使用一些距离函数从数据集(英语:Data set)构造。当维度增加时,k-NN有向图的入度分页将会向右倾斜,从而导致中心的出现,很多的数据实例出现在其他许多实例(比预期多得多)的k-NN列表中。这一现象对很多技术,如分类(包括最近鄰居法、半监督学习(英语:semi-supervised learning),和聚类分析都有很大的影响。[10],同时它也对信息检索问题有影响。[11]

延伸閱讀

  • 组合爆炸(英语:Combinatorial explosion)
  • 相似度集中(英语:Concentration of measure)
  • 降维(英语:dimension reduction)
  • 傅立葉變換列表(英语:Fourier-related transforms)
  • 高维数据聚类(英语:Clustering high-dimensional data)
  • 动态规划
  • 贝尔曼方程
  • 逆向归纳法(英语:Backwards induction)
  • 主成分分析
  • 最小二乘法
  • 准随机(英语:Quasi-random)
  • 聚类分析
  • 小波分析
  • 时间序列
  • 奇异值分解

维数灾难(from wiji)相关推荐

  1. 分类问题中的“维数灾难” - robotMax

    分类问题中的"维数灾难" - robotMax 在看机器学习的论文时,经常会看到有作者提到"curse of dimensionality",中文译为" ...

  2. 深度学习近似建模,助力飞越「维数灾难」温度场

    允中 整理自 红山开源平台 量子位 报道 | 公众号 QbitAI 深度学习与飞行器设计领域交叉可为克服飞行器系统多学科设计优化的计算复杂性难题开辟一条全新途径.国防科技创新研究院无人系统技术研究中心 ...

  3. 维数灾难:都是孤独惹的祸

    全文共2433字,预计学习时长7分钟 图源:unsplash 维数灾难究竟是什么?除了是机器学习术语中让人闻风丧胆的主要实例外,还包括特征数量的增加对数据集的影响.简言之,维数灾难全都与孤独有关. 在 ...

  4. 机器学习笔记之降维(一)维数灾难

    机器学习笔记之降维--维数灾难 引言 回顾:过拟合 维度灾难 从数值角度观察维数灾难 从几何角度观察维度灾难 示例1 示例2 引言 本节将介绍降维算法,并介绍降维算法的相关背景. 回顾:过拟合 我们在 ...

  5. 维度灾难 维数灾难 暂记

    距离度量问题 对于基于距离的模型KNN,K-means来说.需要有效的降维,或者大量数据的训练,发现数据的低维流形空间. Theorem[Beyer et al.99]:Fix ϵ\epsilonϵ ...

  6. 机器学习----维数灾难

    一.定义 ~~~~~~~~随着维度的增加,分类器性能逐步上升,到达某点之后,其性能便逐渐下降         ~~~~~~~~也许分类器准确率依然无法达到要求,加入更多的特征,比如颜色.纹理的统计信息 ...

  7. 维数灾难或者维数诅咒的含义

    高维空间数据样本具有稀疏性 举例来说,100个平均分布的点能把一个单位区间以每个点距离不超过0.01采样:而当维度增加到10后,如果以相邻点距离不超过0.01小方格采样一单位超正方体,则需要100^1 ...

  8. 解决softmax后列和不为1的bug记录 :问题原因为 s为1维的,来除torch.exp(x)(64x10)时候,维数不对应,需要将s也要转换为2维的即维数为(64x1),才可以广播按行对应相除

    def softmax(x):     ## TODO: Implement the softmax function here     #print("torch.exp(x)=" ...

  9. 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了

    tf.math.reduce_mean(input_tensor, axis=None, keepdims=False, name=None ) 对tf.reduce_mean的理解就是求平均值,re ...

最新文章

  1. linux系统oracle服务自启动
  2. 排除问题的时候不要随意修改系统筛选数据的逻辑
  3. 【Android工具】免费二次元追番神器,各种字幕组新番旧番良心资源,重要的事说三遍:没有广告!没有广告!没有广告...
  4. Plitch for the final Feb 16
  5. setjmp和longjmp
  6. 剑指offer(23)二叉搜索树的后序遍历序列
  7. mysql test数据库_mysql数据库test
  8. 【报告分享】2021年30+精致女性人群需求洞察:“她”经济时代科技引领精致生活.pdf(附下载链接)...
  9. LINUX安装TensorRT及特别注意事项
  10. 在ADS中进行DCR仿真
  11. html 二维表_Qrcode 二维码 API 接入方法,任何内容都可以生成二维码
  12. 公众号裂变一般用什么方法?小白如何做好一场公众号裂变活动?
  13. 关于投入产出表中的一些原则和方法论
  14. 2020.8.25课堂笔记(Linux入门、常用命令)
  15. 当今几大主流服务器的操作系统简介
  16. 【实战场景】商城-折扣活动设计方案
  17. UI设计中我们需要了解的知识
  18. 快排的三种优化方式。
  19. TCP拥塞控制算法纵横谈-Illinois和YeAH
  20. win7 x64 PL/SQL连接Make sure you have the 32 bits Oracle Cient italled.问题解决

热门文章

  1. html如何设置四个链接,HTML基础(四)——设置超链接的样式示例
  2. 【pytest官方文档】解读- 开发可pip安装的第三方插件
  3. 计算机等级考试具体分几级?
  4. 【验】Postfix+Dovecot+MySQL搭建邮件服务器
  5. PDF模板打印(中文折行,包括图片)
  6. PowerPoint 2010 设置演讲者模式
  7. 10分钟快速充电,WPG闪电充你了解吗?
  8. Winform 换皮肤
  9. 如何用python处理excel做直方图_python可视化(5)——直方图-excel直方图
  10. 视频技术结合机器学习和人工智能的5种方式