独家新闻日记

深刻剖析核主成分剖析Kernel PCA体现的辩证法思想

Kernel PCA同时把升维和降维统一在一起,这个算法是一个矛盾的统一体,其高效的性能背后闪烁着辩证法思想的光芒!

矛盾是事物要素之间或事物之间既对立(相互排斥)又统一(相互联系)的关系。在机器学习中,我们辩证地思考问题,就是用联系的、发展的、全面的观点,特别是用对立统一的观点认识问题、解决问题。

低维与高维的辩证

增加维度:试图模拟真实世界

这个世界很复杂,所以,在应用机器学习技术中,人们试图模拟真实世界,捕获有用的模式并获得更准确的结果,所以倾向于添加尽可能多的特征

有些人认为维度越多越好,恨不得弄个成千上万个特征,以体现大数据功劳。但是,你添加到数据集的维度越多,预测就可能越来越困难。特别地,在某一点之后,模型的性能会随着特征数量的增加而降低,甚至,会导致预测能力呈指数下降。这种现象通常被称为"维度诅咒"。

举一个简单的例子,假设你正在使用模型来预测25cm 2培养皿中大细菌的位置。在将粒子固定到最接近的平方厘米时,该模型可能相当准确。但是,假设现在只添加一个维度:使用3D烧杯而不是2D培养皿。预测空间呈指数增长,从25cm2增加到125cm3。添加更多维度时,计算负担也会增加。要确定3D模型中细菌的位置是不可能的。这是一项更具挑战性的任务。

一方面,获得更多的特征是为了更加精确的刻画数据间的关系,模拟真实世界;另一方面,太多的特征会导致维度诅咒,模型复杂、性能降低。

降低维度:去粗取精并降低过拟合风险

折叠特征。可以通过简单的垃圾电子邮件识别问题来讨论降维的直观示例。这可能涉及大量特征,例如电子邮件是否具有通用标题、电子邮件的内容、电子邮件是否使用模板等。但是,这些特征中的一些可能会重叠。在另一种情况下,依赖于湿度和降雨量的分类问题可以通过PCA折叠成仅一个基础特征,因为两者高度相关。因此,我们可以减少此类问题中的特征数量。

降维促进可视化。3-D分类问题可能难以可视化,而2-D分类问题可以映射到简单的2维空间,而1-D问题可以映射到简单的线。下图说明了这个概念,

降维促进加强你的算法。比如在应用SVM前执行PCA会给我们带来不少的加速。所以,如果保持维度足够简单,还是有不少利好。一个很好的例子是物体检测中的HOG特征。PCA在HOG特征向量上执行。仔细观察特征向量可以看出,简单的维度减少只是总结了不同的特征组,这样就足够了,这给了2到3倍的加速。

提高泛化能力,降低过拟合风险。降维后由于模型具有较少的自由度,因此过度拟合的可能性较低,该模型将更容易推广到新数据。此外,如果我们使用降维,进行特征筛选,将促进重要变量的呈现,这样有助于提高模型的可解释性。

维度降低不会使数据更加可分离,通过减少压缩特征,会产生信息损耗,这种信息损耗可能对学习模型的推广有用,即它对未见数据的性能会增加。

核方法升维:分离数据的差异性并高效工作

与非核方法相比,更高维度空间在现实世界问题中更加真实,能够揭示数据中的非线性关系,核方法将数据投影到高维特征空间。通过映射,把原始空间中数据间的差异在更多维度的新空间中放大、分离,实现线性可分的目的。

核方法的本质作用,就是寻找核函数将我们数据"分散"到Hilbert空间,实现数据间的比较。粗略地说,内核或多或少是一个相似性矩阵,核方法可以将天真的比较方式,即原始空间中的常规点积,切换为最适合数据的核方法。然后,通过数学变换增加空间中比较的维度。确切地说:将数据映射到更高维度的空间(RKHS),甚至可以具有无限维度(若用RBF),并且在该空间中使用了点积。基于核方法的主要技巧是你从未明确地将数据映射到RKHS - 这就是它可以工作的原因。所有的工作都是通过在两个样本上应用你的核函数来完成的。直观地说,核方法只是为你提供了一种更好的方法来比较你的数据:没有真正明确地向你的数据添加维度,仅仅用一种比较它们的更合适的方法而已。

使用内核的全部魔力是不必在RKHS中明确使用点积,它由核方法保留在引擎盖下!否则,您甚至无法计算两个向量的径向基核函数,因为具有无限维度。这个技巧让RKHS高效工作。

可见,降维和升维各有长处并有其目的性,这似乎是很矛盾的!然而这两个方法却可以一起高效合作,这体现了辩证的统一思想。

线性与非线性的辩证

要分清数据的线性、数据线性可分两组概念。本文主要指后者。

数据的线性与非线性

线性指量与量之间按比例、成直线的关系;而非线性则指不按比例、不成直线的关系。非线性中使得整体不再是简单地等于部分之和,而可能出现不同于"线性叠加"的增益或亏损。比如,激光的生成就是非线性的!当外加电压较小时,激光器犹如普通电灯,光向四面八方散射;而当外加电压达到某 一定值时,会突然出现一种全新现象:受激原子好像听到"向右看齐"的命令,发射出相位和方向都一致的单色光,就是激光。

线性可分与非线性可分

分类问题中的线性可分问题。线性可分是指有一些函数可以将两个类分开,这两个类是输入变量的线性组合。例如,如果有两个输入变量,x1并且x2有一些数字theta1,theta2那么函数f(x)=theta1.x1 + theta2.x2就足以预测输出。在二维中,这对应于直线,在3D中它变成平面并且在更高维空间中它变成超平面。

下图是在二维空间中线性不可分的数据,形状像同心圆,无法用一条直线分开。

但是,如果我们给每个点一个额外的坐标比如z=1 - sqrt(x*x + y*y),那么问题就变得线性可分,因为红色和蓝色点可以通过一个二维平面z=0分开。

这些形象展示了核技巧背后的思想:

将问题映射到具有更多维度的空间使得问题更可能变得线性可分。

线性可分与非线性可分在核方法中是辩证的统一:在低维空间中数据线性不可分,通过映射到高维空间中是可线性可分的;而高维空间中线性可分返回到低维空间中又是非线性可分的。所以这两者是矛盾而统一的。

Kernel PCA实现降维与升维、线性与非线性的辩证统一

核主成分分析(Kernel PCA),是对PCA算法的非线性扩展。

传统PCA无法实现非线性投影

PCA是线性的,其对于非线性数据往往显得无能为力。

PCA降维试图找到数据被限制的低维线性子空间,但数据可能是非线性。如下图:

这里的数据点(左侧)主要位于2D的曲线上。PCA不能将维数从2减少到1,因为这些点不是沿直线定位的。但是,数据"显然"位于一维非线性曲线周围。因此,虽然PCA失败,但必须有另一种方式!实际上,Kernel PCA可以找到这种非线性流形并发现数据实际上几乎是一维的。

总结一下。

Kernel PCA把Kernel升维和PCA降维两种方法有机的融合在一起。

第一、通过将数据映射到更高维空间来实现。这看起来非常矛盾:核方法寻求更高维度,而PCA寻求更低维度。降维与映射到高维,这是两个相反的方向!但事实并非如此。数据被映射到更高维度的空间,但随后变成位于它的较低维度子空间。因此,先增加维度以便能够降低维度。在这里增维与降维实现了辩证的统一。

第二、之所以KPCA发挥作用,源于数据在低维空间中,无法寻找到线性子空间进行降维;但通过核方法映射到高维空间中,可以清晰的找到线性子空间进行降维投影,返回到低维空间中,是非线性投影(非线性流行)。在这里线性与非线性实现了辩证的统一。

KPCA算法实现的关键

KPCA将原来X映射到Φ(x),在新空间中计算协方差。

PCA的目标函数,是在原维度空间中对新基(特征向量)投影的方差寻找最大化:

KPCA目标函数,是映射到新维度空间中对新基投影的方差寻找最大化:,

其中:

KPCA与PCA的对比

下图是二维空间中类似两条曲线的数据分布:

如果应用普遍的线性PCA,那么变换后的前两个主成分如下,只是倒了个,并没有提高区分能力。

如果应用高斯核PCA,那么降维后,前两个主成分如下,显然可分。

特别是其第一个主成分,一目了然,实现了流形向线性的投射,并且严格分开。

分类与聚类的辩证

PCA方法是一种无监督的聚类技术,然而在上面的图形中,仿若我们是在做分类,而且似乎做的很好。机器学习的最高境界实际上是无监督技术,是未来的发展方向,能够不利用标签就能正确聚类(分类)代表着算法的高度智能。所以聚类做的达到一定程度,是能够比拟分类的。聚类在一定程度向矛盾的对立面分类转化。这就是辩证法中的“你中有我,我中有你”,在一定程度相互转化,是统一的。

如果有一个未标记的数据集,聚类让我们来获得大量洞察力。可以使用不同的群集算法将数据自动分组到多个群集中,揭示属于特定群集的数据的共同点。如下图所示,创建了5个聚类,揭示具有不同特征的人。

我们知道在聚类中,谱聚类对数据分布的适应性更强,有着出色的聚类效果!而本讲中的Kernel PCA在着与谱聚类的某种类似程度。

谱聚类首先将原始数据映射到一个新的空间,然后做Kmeans。谱聚类的前半部分相当于Kernel PCA。Kernel PCA对核函数映射过的相似度矩阵进行特征值分解,而谱聚类对拉普拉斯矩阵(也是相似度)进行特征值分解。如果说普通PCA是将原始数据进行正交变换映射到新的空间,那么谱聚类和Kernel PCA就是对原始数据进行某种非线性变换映射到新的空间,并在新空间中进行降维。

很多时候对数据进行线性变换仍然无法获得良好的可分性,但引入非线性性则可能做得到,这也是核方法存在的意义,从这个角度上看,聚类又为有监督的分类提供了基础。聚类与分类可以一起共同完成一个任务,效果更好,这就是辩证法中的同一性原理,统一推动事物的运动变化,构成了事物的发展!

推荐新闻