问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

维数灾难:机器学习中的维度诅咒

创作时间:
作者:
@小白创作中心

维数灾难:机器学习中的维度诅咒

引用
1
来源
1.
https://www.cnblogs.com/ooon/articles/4492168.html

维数灾难(Curse of Dimensionality)是机器学习和数据挖掘领域中一个重要的概念,它描述了当数据的维度增加时,数据的稀疏性和计算复杂度会呈指数级增长,从而导致模型性能下降的现象。本文将通过一个具体的分类问题,直观地解释维数灾难,并探讨其对模型过拟合的影响。

1. 引言

考虑一个简单的分类任务:区分猫和狗的图片。为了实现这一目标,我们需要将图片转换为机器可以理解的数字形式。最直观的方法是使用颜色特征,例如红、绿、蓝三原色的平均值。假设我们使用以下线性分类器:

if (0.5*red + 0.3*green + 0.2*blue > 0.6):
    return "cat"
else:
    return "dog"

然而,仅使用颜色特征可能不足以区分猫和狗。因此,我们可以添加更多特征,如图片在X和Y方向的边缘强度,从而将特征维度从3增加到5。进一步地,我们可以添加基于颜色或纹理的更多特征。但问题来了:特征维度的增加是否一定能带来更好的分类效果?


图1:特征维度与分类器性能的关系

2. 维数灾难与过拟合

让我们通过一个简单的实验来理解维数灾难。假设我们有10张猫和狗的图片作为训练集,目标是构建一个能够正确分类无限数量测试样本的模型。

单一特征

首先尝试使用单一特征(例如红色)进行分类:


图2:单一特征无法对训练集分类

显然,单一特征无法有效区分猫和狗。

添加第二个特征

接下来添加绿色特征:


图3:添加第二个特征后仍然无法线性分类

即使添加了第二个特征,分类效果仍然不理想。

添加第三个特征

继续添加蓝色特征:

图4:三维空间中能够找到一个超平面来完美分类

在三维空间中,我们终于找到了一个能够完美分类的超平面。

这似乎表明,增加特征维度可以提高分类效果。然而,事实并非如此简单。

特征维度与样本密度

随着特征维度的增加,样本密度会呈指数级下降。例如,在1维空间中,长度为5个单位;在2维空间中,面积为25个单位;在3维空间中,体积达到125个单位。这意味着,固定数量的样本(本例中为10个)在高维空间中会变得极其稀疏。

这种稀疏性使得模型更容易找到一个超平面来分离训练样本,但同时也增加了过拟合的风险。当模型在高维空间中过度拟合训练数据中的噪声时,其泛化能力会大大降低。


图6:3维投影到2维后的图示

图6展示了这一现象:在高维空间中线性可分的数据,投影到低维空间后可能变为非线性可分。这表明,通过增加特征维度来获得更好的分类效果,实际上相当于在低维空间中使用更复杂的非线性分类器(如核方法)。

维度与训练数据需求

为了保持相同的分类效果,随着维度的增加,所需的训练数据量也会呈指数级增长。例如,如果想要覆盖特征空间的20%,在1维空间中需要20%的样本;在2维空间中,每个维度需要45%的样本(0.45^2 ≈ 0.2);在3维空间中,每个维度需要58%的样本(0.58^3 ≈ 0.2)。


图8:维度增加时训练数据需求的变化

特征空间中的数据分布

在高维空间中,数据点主要分布在特征空间的角落,而不是中心。例如,在二维空间中,如果数据点落在单位圆内,则相对容易分类;如果落在单位圆外,则很难分类。随着维度的增加,单位圆所占的空间比例会迅速减小。


图10:维度增加时单位圆容量的变化

在8维空间中,大约98%的数据点位于256个角落。这种分布特性使得距离度量(如欧氏距离)在高维空间中效果变差,从而影响分类器的性能。

3. 怎样避免维数灾难

避免维数灾难的主要方法包括:

  • 特征选择:只保留对分类任务最有帮助的特征。
  • 特征降维:使用PCA等降维技术减少特征维度。
  • 正则化:通过L1或L2正则化防止模型过拟合。
  • 数据增强:增加训练数据量以提高样本密度。

4. 总结

维数灾难是机器学习中一个重要的概念,它揭示了特征维度增加与模型性能之间的复杂关系。理解维数灾难有助于我们更好地设计和优化机器学习模型,避免过度拟合,提高模型的泛化能力。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号