摘要:
一种新的非线性“主成分分析(PCA)”方法被提出了。
通过对核函数的积分,利用非线性映射,我们可以有效地计算与输入空间相关的高维特征空间中的主成分。
例如,在图像中所有可能的d个像素的空间。
我们给出了该方法的推导,并给出了用于模式识别的多项式特征提取的实验结果。
假设我们有一个数据集:
其中,数据集的均值为0(如果均值不为0,要先对
做处理,减去均值)
的协方差矩阵:
主成分分析(PCA)其实是对数据集做基变换。
经过这个基变换之后,使得协方差矩阵能被对角化。
特征向量基中的新坐标,即特征向量上的正交投影,称为主分量。
在本文中,我们将此设置推广到以下非线性类型之一。
假设我们将数据非线性映射到特征空间F:
我们将证明,即使F具有任意多的维数,只要确定下来,我们还是可以在F中使用PCA。
这是通过使用支持向量机中已知的核函数来完成的。
假设我们的数据映射到特征空间后变成
:
而且,均值为0
那么,计算相应的协方差矩阵:
接下来,我们要去寻找矩阵的特征值(
),还要找到特征向量
使得
我们知道,所有的特征向量的解其实都在
的空间中。
这意味着我们可以考虑另一个等式:
(4)
对于这个等式,存在系数,使得:
定义一个的矩阵
(6)
“:=”表示“定义为”
联立(3)(4)(5),得:
(7)
其中表示具有元素
的列向量。
为了找到(7)的解
我们解决这个特征值的问题:
(8)
对于任何一个非0的特征值,显然,所有能满足(8)的解都能使(7)成立
此外,这表明(8)的任何附加解对于展开式(5)来说没有影响,因此对我们来说不感兴趣。
为了对F中的相应的向量进行归一化,也就是使
我们可以对属于非零特征值的解进行归一化。
通过式子(5),(6)和(8),转化为
为了提取主分量,我们根据以下公式计算图像的测试点投影到F中的特征向量
上的结果
由(5),得:
注意,(6)和(10)都不需要以明确的形式表示,它们仅在点积中需要。
因此,我们可以使用核函数来计算这些式子,而无需实际执行映射
对于核的一些选择,可以用泛函分析的方法证明,存在一个映射到某个点积空间F的映射
(可能具有无限维),使得
能计算F中的点积。
目前已经成功地用于支持向量机的内核有许多,其中包括多项式核:
(11)
此外还有径向基函数:radial basis functions(RBF)
Sigmoid核:
可以表明,D次方的多项式核对应于映射,映射到一个输入模式的d次方的所有乘积所跨越的特征空间。
(没看懂这句话啥意思,但是看下面的例子就知道了)
对于N=2,d=2的情况:
核PCA的基本思想:用非线性核函数k代替标准点积,隐式地在可能与输入空间非线性相关的高维空间F中执行PCA。虚线是等特征值的等高线。
如果我们处理的对象是一张图片,那么我们就可以在d个像素的所有乘积的空间中工作,从而在进行PCA时考虑更高阶的统计量。
用核函数代替所有出现的地方,我们得到以下的KPCA算法:
1:我们计算点积矩阵
2:通过使K对角化来求解(8)
3:在(9)的约束下,使特征向量的系数归一化。
4:利用式子(10)通过在特征向量上计算投影来提取测试点X的主分量(对应于核K)
我们应该指出,在实践中,我们的算法不等价于通过显式映射到特征空间F中得到的非线性PCA的形式:即使点积矩阵的秩会受样本大小的限制,但如果维度太高,我们还是没办法计算矩阵。
例如,16×16像素的图片和多项式度d=5,这样产生10^10的维数。
通过提供在该子空间中的向量之间计算点积的方法,核PCA通过自动选择F的子空间来处理这个问题。(由k的秩确定维数)
这样,我们必须在输入空间中计算‘核函数’,而不是在10^10维空间中计算点积。
为了结束本节,我们简要地提到了放弃以F为中心的假设的情况。
注意,通常我们不知道数据中心,因为我们不能计算没有显式形式的一组点的平均值。
取而代之的是,我们必须使用上面的代数:
事实证明,在这种情况下,我们必须对矩阵进行角化。
对角化之后的矩阵记为:
在程序中,核的种类有以下:
kernel : "linear" | "poly" | "rbf" | "sigmoid" | "cosine" | "precomputed"
"linear":线性核,。(相当于普通的PCA)
"poly":多项式核,
"rbf":(Radial Basis Function)高斯径向基核函数 ,
"sigmoid":sigmoid核函数,