《机器学习:算法视角(原书第2版)》 —2.1.2 维度灾难
2.1.2 维度灾难
维度灾难是一个非常强大的名称,所以你可能会猜到它有点问题。灾难的本质是认识到随着维度的增加,单位超球面(unit hypersphere)的体积不随之增加。如果我们从原点(坐标系的中心)开始并绘制距离原点为1的所有点,则单位超球面是我们得到的区域。在2D中,我们得到围绕(0,0)半径为1的圆(如图2-2所示),在3D中我们得到一个围绕(0,0,0)的球(图2-3)。在更高的维度上,球体变成了一个超球面。下表显示了前几个维度的单位超球面的大小,图2-4中的图表显示了相同的情况,但也清楚地表明,由于维度的数量趋于无穷大,因此超球面的体积趋于零。
角落,随着维度的增加,这会变得更加明显维度体积12.000023.141634.188844.934855.263665.167774.724884.058793.2985102.5502图2-4 不同维度的单位超球面的体积
乍一看,这似乎完全违反直觉。但是,考虑将超球面封装在宽度为2的盒子中(沿着每个轴在-1和1之间),这样盒子就会触及超球体的两侧。对于圆形,框内的几乎所有区域都包含在圆圈中,除了每个角落的一点点(见图2-2),3D中也是如此(图2-3)。但如果我们考虑100D超球面(不一定是你想要想象的东西),并沿着从原点出来的对角线到框的一个角,然后当所有坐标都是0.1时,我们与超球面的边界相交。盒子内剩余的90%的线在超球面之外,因此随着维度的增加,超球面的体积明显缩小。图2-4中显示当维度超过20时,体积实际上为零。这是使用维度n的超球面体积的公式计算的,即vn=(2π/n)vn-2。因此,一旦n>2π,体积就开始缩小。
维度灾难将适用于我们的机器学习算法,因为随着输入维度的增加,我们将需要更多数据来使算法充分推广。我们的算法尝试根据特征将数据分类,因此,随着特征数量的增加,需要的数据量也会增加。出于这个原因,我们经常需要注意为算法提供的信息,这意味着需要事先了解有关数据的信息。
无论有多少输入维度,机器学习的重点是对数据输入进行预测。在下一节中,我们将考虑如何评估算法实际实现的效果。
- 点赞
- 收藏
- 关注作者
评论(0)