全文共2433字,预计学习时长7分钟
图源:unsplash
维数灾难究竟是什么?除了是机器学习术语中让人闻风丧胆的主要实例外,还包括特征数量的增加对数据集的影响。简言之,维数灾难全都与孤独有关。
在具体解释维数灾难之前,让我们先来先解决一些基础术语问题。
什么是特征?特征是机器学习中的一个词,在其他学科中可能称为预测器/(独立)变量/属性/信号。换句话说,它是关于每个数据点的信息。
数据间保持距离非常容易:只需添加一个维度。但对某些算法来说,这可能是个灾难。如果一种机器学习算法对维数灾难非常敏感,该算法就只有在数据点被空间中的朋友围绕时才能有***的运行效果。空间中,数据点周围的朋友越少,形势越容易恶化。
一维
想象自己坐在一个大教室里,周围都是好朋友。
将自己想象成一个数据点,放置在一维空间中,房间一片漆黑,教室后面发出的亮光照射着你,影子投射在前面墙体的一条线上。在那条线上,你一点也不孤独,大家就像罐头中的沙丁鱼一样抱团取暖。一维空间真舒适,但可能有点儿舒适过头了。
二维
为了让你有呼吸的空间,现在增加一个维度。我们正处于二维空间,下面的平面是房间地板。在这一空间中,你和朋友们更加分散,每个人可以获得个人空间。
如果想象成虚构的电子表格对你而言更容易,那就把添加/删除一个维度换成插入/删除一列数字。
三维
现在添加第三维度,把大家随机分配到原本所在的5层楼中的任意一层。
突然,周围的朋友数骤减,孤独将你包围。如果你喜欢被朋友紧紧包围的感觉,可能如今你只能哀怨地盯着好几张空椅子,于是你泪眼朦胧,但至少周围可能还有一个朋友......
四维
现在再添加另一个维度——时间维度。
学生们分散至60分钟的课堂的不同时段(不同楼层)——我们规定只有9节课,因为老师们也需要休息和生活。因此,如果你有幸在此之前仍然有同伴的情感支持,但现在,笔者可以明确告诉你,你已经与世隔绝了。
如果你孤身一人时没有效率,那就麻烦了,维数灾难已经降临!
MOAR维度
随着维度增加,你的孤独感也增加得十分迅速。如果要确保每个同学都像在二维空间中被朋友环绕一样,就需要非常多的学生。
这里最重要的是朋友数量必须呈指数增长,而非线性增长,这样才能防止“抑郁”。
如果添加两个维度,那么甚至两个教室的学生都远远不够。起初如果教室有50名学生,添加5层楼和9堂课后则需要原来学生数的5x9=45倍才能达到原来只需50个人就能达到的效果。因此,我们需要45x50=2250个学生才能避免孤独。每个维度增加一个学生远远不够!数据需求飞速上升。
如果添加维度,则最小的数据需求也会快速增长。每上升一个维度就要招收更多的学生(数据点)。如对你来说数据十分昂贵,那么维数灾难可不是闹着玩的。
维度佼佼者
并非所有的机器学习算法在面对一些独处时光时都会失控,k-NN之类的方法就是种子选手。k-NN是k-最近邻(Nearest Neighbors)的简称——该方法被用来计算临近数据点,因而数据点们“睦邻友好”相当重要。
当涉及到维度时,其他方法则稳健地多。上一节线性回归课,你就会知道拥有可观数量的数据点,增加或去除一个维度并不会造成灾难性破坏。虽然依然会承担代价,但承担得起了。
这并非意味着它能适应所有变更,没有万全之策,神经网络也是如此。如果你不知道最小二乘法会引起混乱,比如包含一个单个异常值或增加一个几乎完全一样的特征(多重共线性,又称犯罪的拿破仑,会卷土重来),那么你需要警惕起来。
你该如何应对?
如果实践中遇到维数灾难应该怎么办?如果你是机器学习研究人员,***确认一下自己的算法是否有这个问题……但你肯定已经确认过了。
笔者大胆揣测一下你的想法——你可能会想有没有可能设计出一种对维度不那么敏感的算法。在事物趋向于文本化的情况下,许多用户更喜欢高大的矩阵。(通常,在矩阵中行代表实例,而列代表特征,这样的话,高瘦的矩阵中就有许多实例分布在少数维度中。)
如果你是应用数据科学爱好者,你会按照一直以来的方法处理,即在尝试所有可能的方法之前,只用一个或几个可能的特征获取算法的基准。
一些方法只适用于高瘦数据集,因此,如果感觉算法处于维数灾难,你需要对数据集进行瘦身。
如果你的方法在有限数量的特征上运行良好,而在你增加维度时却连连罢工,这就暗示你要么坚持自己选择的特征(或者你留了一手逐步选择),要么首先用一些特征工程技术把几个超级特征排除出去。可以试试保守办法,如主成分分析——时至今日,向量分析仍很重要,它永不过时——也可以尝试新派做法,如自编码器或其他神经网络方法。
无需了解维数灾难这一术语就可完成任务,因为过程(从小处着手并逐步建立复杂度)本应该为用户服务,但是如果它给你带来困扰,那么现在就可以摆脱
总结一下,增加越来越多的特征(列)需要以指数增长的实例(行)数来解决数据点在空间中的分散问题。一些方法只适用于高瘦数据集,所以如感觉发生维数灾难则需要对数据集瘦身。
图源:SOURCE
最后,为了防止大家把“空间封闭性”与规模关联起来,笔者需要解释一下,因为这与用英里还是厘米测量产生的影响无关,所以这种困境不能怪不断扩张的宇宙空间。
简单的乘法运算也不能避免维数灾难。相反,也许这张图能帮你以3D形式感知它:这只球形奶牛……这只猫咪有多大并不重要,重要的是,它身上覆盖着多少塑料泡沫。
一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)