0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

讨论维数灾难问题并且了解在高维空间的数据

lviY_AI_shequ 来源:未知 作者:李倩 2018-07-24 17:47 次阅读

很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不仅让训练过程变得非常缓慢,同时还很难找到一个很好的解,我们接下来就会遇到这种情况。这种问题通常被称为维数灾难(curse of dimentionality)。

幸运的是,在现实生活中我们经常可以极大的降低特征维度,将一个十分棘手的问题转变成一个可以较为容易解决的问题。例如,对于 MNIST 图片集(第 3 章中提到):图片四周边缘部分的像素几乎总是白的,因此你完全可以将这些像素从你的训练集中扔掉而不会丢失太多信息。图 7-6 向我们证实了这些像素的确对我们的分类任务是完全不重要的。同时,两个相邻的像素往往是高度相关的:如果你想要将他们合并成一个像素(比如取这两个像素点的平均值)你并不会丢失很多信息。

警告:降维肯定会丢失一些信息(这就好比将一个图片压缩成 JPEG 的格式会降低图像的质量),因此即使这种方法可以加快训练的速度,同时也会让你的系统表现的稍微差一点。降维会让你的工作流水线更复杂因而更难维护。所有你应该先尝试使用原始的数据来训练,如果训练速度太慢的话再考虑使用降维。在某些情况下,降低训练集数据的维度可能会筛选掉一些噪音和不必要的细节,这可能会让你的结果比降维之前更好(这种情况通常不会发生;它只会加快你训练的速度)。

降维除了可以加快训练速度外,在数据可视化方面(或者 DataViz)也十分有用。降低特征维度到 2(或者 3)维从而可以在图中画出一个高维度的训练集,让我们可以通过视觉直观的发现一些非常重要的信息,比如聚类。

在这一章里,我们将会讨论维数灾难问题并且了解在高维空间的数据。然后,我们将会展示两种主要的降维方法:投影(projection)和流形学习(Manifold Learning),同时我们还会介绍三种流行的降维技术:主成分分析(PCA),核主成分分析(Kernel PCA)和局部线性嵌入(LLE)。

维数灾难

我们已经习惯生活在一个三维的世界里,以至于当我们尝试想象更高维的空间时,我们的直觉不管用了。即使是一个基本的 4D 超正方体也很难在我们的脑中想象出来(见图 8-1),更不用说一个 200 维的椭球弯曲在一个 1000 维的空间里了。

图 8-1 点,线,方形,立方体和超正方体(0D 到 4D 超正方体)

这表明很多物体在高维空间表现的十分不同。比如,如果你在一个正方形单元中随机取一个点(一个1×1的正方形),那么随机选的点离所有边界大于 0.001(靠近中间位置)的概率为 0.4%(1 - 0.998^2)(换句话说,一个随机产生的点不大可能严格落在某一个维度上。但是在一个 1,0000 维的单位超正方体(一个1×1×...×1的立方体,有 10,000 个 1),这种可能性超过了 99.999999%。在高维超正方体中,大多数点都分布在边界处。

还有一个更麻烦的区别:如果你在一个平方单位中随机选取两个点,那么这两个点之间的距离平均约为 0.52。如果您在单位 3D 立方体中选取两个随机点,平均距离将大致为 0.66。但是,在一个 1,000,000 维超立方体中随机抽取两点呢?那么,平均距离,信不信由你,大概为 408.25(大致)!这非常违反直觉:当它们都位于同一单元超立方体内时,两点是怎么距离这么远的?这一事实意味着高维数据集有很大风险分布的非常稀疏:大多数训练实例可能彼此远离。当然,这也意味着一个新实例可能远离任何训练实例,这使得预测的可靠性远低于我们处理较低维度数据的预测,因为它们将基于更大的推测(extrapolations)。简而言之,训练集的维度越高,过拟合的风险就越大。

理论上来说,维数爆炸的一个解决方案是增加训练集的大小从而达到拥有足够密度的训练集。不幸的是,在实践中,达到给定密度所需的训练实例的数量随着维度的数量呈指数增长。如果只有 100 个特征(比 MNIST 问题要少得多)并且假设它们均匀分布在所有维度上,那么如果想要各个临近的训练实例之间的距离在 0.1 以内,您需要比宇宙中的原子还要多的训练实例。

降维的主要方法

在我们深入研究具体的降维算法之前,我们来看看降低维度的两种主要方法:投影和流形学习。

投影(Projection)

在大多数现实生活的问题中,训练实例并不是在所有维度上均匀分布的。许多特征几乎是常数,而其他特征则高度相关(如前面讨论的 MNIST)。结果,所有训练实例实际上位于(或接近)高维空间的低维子空间内。这听起来有些抽象,所以我们不妨来看一个例子。在图 8-2 中,您可以看到由圆圈表示的 3D 数据集。

图 8-2 一个分布接近于2D子空间的3D数据集

注意到所有训练实例的分布都贴近一个平面:这是高维(3D)空间的较低维(2D)子空间。现在,如果我们将每个训练实例垂直投影到这个子空间上(就像将短线连接到平面的点所表示的那样),我们就可以得到如图8-3所示的新2D数据集。铛铛铛!我们刚刚将数据集的维度从 3D 降低到了 2D。请注意,坐标轴对应于新的特征z1和z2(平面上投影的坐标)。

图 8-3 一个经过投影后的新的 2D 数据集

但是,投影并不总是降维的最佳方法。在很多情况下,子空间可能会扭曲和转动,比如图 8-4 所示的着名瑞士滚动玩具数据集。

图 8-4 瑞士滚动数玩具数据集

简单地将数据集投射到一个平面上(例如,直接丢弃x3)会将瑞士卷的不同层叠在一起,如图 8-5 左侧所示。但是,你真正想要的是展开瑞士卷所获取到的类似图 8-5 右侧的 2D 数据集。

图 8-5 投射到平面的压缩(左)vs 展开瑞士卷(右)

流形学习

瑞士卷一个是二维流形的例子。简而言之,二维流形是一种二维形状,它可以在更高维空间中弯曲或扭曲。更一般地,一个d维流形是类似于d维超平面的n维空间(其中d < n)的一部分。在我们瑞士卷这个例子中,d = 2,n = 3:它有些像 2D 平面,但是它实际上是在第三维中卷曲。

许多降维算法通过对训练实例所在的流形进行建模从而达到降维目的;这叫做流形学习。它依赖于流形猜想(manifold assumption),也被称为流形假设(manifold hypothesis),它认为大多数现实世界的高维数据集大都靠近一个更低维的流形。这种假设经常在实践中被证实。

让我们再回到 MNIST 数据集:所有手写数字图像都有一些相似之处。它们由连线组成,边界是白色的,大多是在图片中中间的,等等。如果你随机生成图像,只有一小部分看起来像手写数字。换句话说,如果您尝试创建数字图像,那么您的自由度远低于您生成任何随便一个图像时的自由度。这些约束往往会将数据集压缩到较低维流形中。

流形假设通常包含着另一个隐含的假设:你现在的手上的工作(例如分类或回归)如果在流形的较低维空间中表示,那么它们会变得更简单。例如,在图 8-6 的第一行中,瑞士卷被分为两类:在三维空间中(图左上),分类边界会相当复杂,但在二维展开的流形空间中(图右上),分类边界是一条简单的直线。

但是,这个假设并不总是成立。例如,在图 8-6 的最下面一行,决策边界位于x1 = 5(图左下)。这个决策边界在原始三维空间(一个垂直平面)看起来非常简单,但在展开的流形中却变得更复杂了(四个独立线段的集合)(图右下)。

简而言之,如果在训练模型之前降低训练集的维数,那训练速度肯定会加快,但并不总是会得出更好的训练效果;这一切都取决于数据集。

希望你现在对于维数爆炸以及降维算法如何解决这个问题有了一定的理解,特别是对流形假设提出的内容。本章的其余部分将介绍一些最流行的降维算法。

图 8-6 决策边界并不总是会在低维空间中变的简单

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2885

    浏览量

    107604
  • 降维
    +关注

    关注

    0

    文章

    10

    浏览量

    7659
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24723

原文标题:【翻译】Sklearn 与 TensorFlow 机器学习实用指南 —— 第8章 降维(上)

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于多传感器数据融合处理实现与城市三维空间和时间配准

    城市三维空间信息的获取是“数字城市”的基本工程,它具有位置性、多维性和时序性等特点,是“数字城市”中融合其他各种信息、形成空间和时间上连续分布的城市综合信息的基础,这就决定了所获取的城市三
    的头像 发表于 07-14 08:04 4137次阅读
    基于多传感器<b class='flag-5'>数据</b>融合处理实现与城市三<b class='flag-5'>维空间</b>和时间配准

    [10.2.1]--4.6.1三维空间中的平面方程_clip001

    维空间
    jf_90840116
    发布于 :2022年12月15日 10:49:11

    [10.2.1]--4.6.1三维空间中的平面方程_clip002

    维空间
    jf_90840116
    发布于 :2022年12月15日 10:50:20

    labview 利用三维空间画了一个球,然后想在球面上画几个点

    labview 利用三维空间画了一个球,然后想在球面上画几个点,不知道该怎么加,求助各位大牛,能不能最好把程序穿上里呀
    发表于 02-21 19:07

    基于麦克风阵列模拟人耳进行三维空间的声源定位

    一、设计概述 /Design Introduction1.1 设计目的基于麦克风阵列模拟人耳进行三维空间的声源定位,有着广泛应用前景,可应用于大型机械产品的故障检测以及新生婴儿先天性心脏病检测筛查等
    发表于 08-06 09:21

    基于单元区域的数据聚类算法

    提出一种数据集合聚类算法(CAHD)。采用双向搜索策略指定的n维空间或其子空间上发现
    发表于 04-22 09:55 14次下载

    基于交流伺服控制的三维空间磁场与磁力测试技术

    基于交流伺服控制的三维空间磁场与磁力测试技术:利用交流伺服控制的高精度、稳定性的特点,以交流伺服数控设备为运动平台,采用霍尔探头、测力传感器、数据采集卡和测
    发表于 07-05 19:33 11次下载

    基于Autoencoder网络的数据降维和重构

    机器学习,模式识别以及数据挖掘等诸多研究领域中,往往会面临着“灾难”问题。因此,特征数据
    发表于 11-18 13:58 16次下载

    基于伺服控制的三维空间磁场与磁力测试系统

    利用交流伺服控制的高精度、稳定性的特点,以交流伺服数控设备为运动平台,采用霍尔探头、测力传感器、数据采集卡和测试应用软件组成的三维空间磁场与磁力测试系统。
    发表于 09-08 15:15 17次下载
    基于伺服控制的三<b class='flag-5'>维空间</b>磁场与磁力测试系统

    数据相似性连接查询算法

    了解数据相似性连接查询中存在的维度灾难和计算代价高等问题,基于p一稳态分布,将
    发表于 12-15 17:13 0次下载

    什么是数据_数据如何定义

    数据的概念其实不难,简单的说就是多维数据的意思。平时我们经常接触的是一数据或者可以写成表形
    的头像 发表于 02-12 14:31 6.3w次阅读
    什么是<b class='flag-5'>高</b><b class='flag-5'>维</b><b class='flag-5'>数据</b>_<b class='flag-5'>高</b><b class='flag-5'>维</b><b class='flag-5'>数据</b>如何定义

    维空间逼近最近邻评测

    最近邻方法是机器学习中一个非常流行的方法,它的原理很容易理解:邻近的数据点是相似的数据点,更可能属于同一分类。然而,维空间中快速地应用最
    的头像 发表于 05-29 08:33 4910次阅读
    <b class='flag-5'>高</b><b class='flag-5'>维空间</b>逼近最近邻评测

    高精度三维空间定位之单目空间定位技术解析

    本文将重点介绍单目方案的空间定位。 三、单目三维空间测量与定位要解决的问题 1、 求解原理和过程 如前文所述,单目三维空间测量与定位,是依据PnP原理来求解的。理论上讲,如果可以获取一个三
    的头像 发表于 10-16 14:54 1.1w次阅读

    适用于户外环境的三维空间椭圆信道模型

    为研究无线多输入多输岀(MIMO)系统信道特性,考虑无线信道模型的信号传播复杂性与空间性的基础上,提岀一种适用于户外环境的三维空间椭圆信道模型,并在其收发端设置均匀矩形阵列(URA)。利用该模型
    发表于 05-11 17:04 15次下载

    立体仓库三维空间路径优化方案的介绍

    为什么要进行立体仓库三维空间路径优化 制造企业的智能仓储系统中,货物的转移作业是智能仓储系统中最常见作业方式,同时也是体现其效率的最关键点。选择最优化的仓位间的三运行路径是提高智能仓储系统整体
    发表于 07-12 09:24 991次阅读