Kernelized Principal Component Analysis详解
第三十八次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。《主成分分析(PCA)详解(附带详细公式推导)》一文中曾对一种重要的降维手段——主成分分析(PCA)进行了讲解,这篇文章则主要对PCA的一种变体——核主成分分析(KPCA)进行讲解。
主成分分析的问题分析
主成分分析(PCA)中采用的降维方法是线性降维,然而在很多现实任务中,可能需要非线性映射才能找到恰当的低维嵌入(Low-dimension Embedding),如下图所示,图1(a)中的3000个样本点是从图1(b)所示的二维矩形区域采样后并以S形曲面嵌入到三维空间中的,为了对这个二维矩形区域和经过降维后得到的低维嵌入进行对比,在这里将此区域称为“本真”(Intrinsic)二维空间,可以看出经过PCA降维后得到的低维嵌入丢失了原始数据的低维结构。主成分分析(PCA)中采用的降维方法是线性降维,然而在很多现实任务中,可能需要非线性映射才能找到恰当的低维嵌入(Low-dimension Embedding),如下图所示,图1(a)中的3000个样本点是从图1(b)所示的二维矩形区域采样后并以S形曲面嵌入到三维空间中的,为了对这个二维矩形区域和经过降维后得到的低维嵌入进行对比,在这里将此区域称为“本真”(Intrinsic)二维空间,可以看出经过PCA降维后得到的低维嵌入丢失了原始数据的低维结构。

基于上述问题,我们考虑向线性降维中引入“核化”(kernelized),下面对核化版本的主成分分析,即核主成分分析(Kernelized Principal Component Analysis,简称KPCA)进行分析。
核主成分分析的推导
假设,原始样本空间 X ∈ R d × m \mathbf{X}\in\mathbb{R}^{d\times{m}} X∈Rd×m,核化后的样本空间 Z ∈ R d ′ × m \mathbf{Z}\in\mathbb{R}^{d'\times{m}} Z∈Rd′×m,降维后得到的样本空间 Y ∈ R d ′ ′ × m \mathbf{Y}\in\mathbb{R}^{d''\times{m}} Y∈Rd′′×m,那么由PCA我们可知存在如下等式,
(1) ( ∑ i = 1 m z i z i T ) w j = λ j w j \left(\sum_{i=1}^{m}{\mathbf{z}_{i}\mathbf{z}_{i}^{T}}\right)\mathbf{w}_{j}=\lambda_{j}\mathbf{w}_{j} \tag{1} (i=1∑mziziT)wj=λjwj(1)
其中, z i \mathbf{z}_i zi是原样本空间中第 i i i个样本点 x i \mathbf{x}_i xi在核化后的高维空间中的对应点, w j \mathbf{w}_j wj是要求得的投影矩阵 W ∈ R d ′ × d ′ ′ \mathbf{W}\in{\mathbb{R}^{d'\times{d''}}} W∈Rd′×d′′的第 j j j个向量, λ j \lambda_j λj是协方差矩阵 Z Z T \mathbf{Z}\mathbf{Z}^{T} ZZT的第 j j j个特征值,那么 w j \mathbf{w}_j wj可以作如下表示,
(2) w j = 1 λ j ( ∑ i = 1 m z i z i T ) w j = ∑ i = 1 m z i z i T w j λ j = ∑ i = 1 m z i α i j \mathbf{w}_{j}=\frac{1}{\lambda_{j}}\left(\sum_{i=1}^{m}{\mathbf{z}_{i}\mathbf{z}_{i}^{T}}\right)\mathbf{w}_{j}=\sum_{i=1}^{m}{\mathbf{z}_i}\frac{\mathbf{z}_{i}^{T}\mathbf{w}_{j}}{\lambda_{j}}=\sum_{i=1}^{m}{\mathbf{z}_{i}\alpha_{i}^{j}} \tag{2} wj=λj1(i=1∑mziziT)wj=i=1∑mziλjziTwj=i=1∑mziαij(2)
其中, α i j = z i T w j λ j \alpha_{i}^{j}=\frac{\mathbf{z}_{i}^{T}\mathbf{w}_{j}}{\lambda_j} αij=λjziTwj是 α i \mathbf{\alpha}_i αi的第 j j j个分量,存在映射 ϕ : x i → z i \phi:\mathbf{x}_i\rightarrow{\mathbf{z}_i} ϕ:xi→zi,如果 ϕ \phi ϕ已知,那么可以先将原始样本空间中的点映射到高维空间中去,然后在高维空间中运行PCA得到低维嵌入,这时式(1)和(2)可以表示为,
(3)
(
∑
i
=
1
m
ϕ
(
x
i
)
ϕ
(
x
i
)
T
)
w
j
=
λ
j
w
j
\left(\sum_{i=1}^{m}{\phi\left(\mathbf{x}_{i}\right)\phi\left(\mathbf{x}_{i}\right)^{T}}\right)\mathbf{w}_{j}=\lambda_{j}\mathbf{w}_{j} \tag{3}
(i=1∑mϕ(xi)ϕ(xi)T)wj=λjwj(3)
(4)
w
j
=
∑
i
=
1
m
ϕ
(
x
i
)
α
i
j
\mathbf{w}_j=\sum_{i=1}^{m}{\phi\left(\mathbf{x}_{i}\right)\alpha_{i}^{j}} \tag{4}
wj=i=1∑mϕ(xi)αij(4)
由于现实情况中,我们并不清楚映射 ϕ : x i → z i \phi:\mathbf{x}_i\rightarrow{\mathbf{z}_i} ϕ:xi→zi的具体形式,因此在这里引入核函数
(5) k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) k\left(\mathbf{x}_i,\mathbf{x}_j\right)=\phi\left(\mathbf{x}_{i}\right)^{T}\phi\left(\mathbf{x}_{j}\right) \tag{5} k(xi,xj)=ϕ(xi)Tϕ(xj)(5)
将式(4)和(5)带入式(3)中,可以得到
K α j = λ j α j \mathbf{K}\alpha^{j}=\lambda_{j}\alpha^{j} Kαj=λjαj
其中, K \mathbf{K} K是 k k k对应的核矩阵, ( K ) i j = k ( x i , x j ) \left(\mathbf{K}\right)_{ij}=k\left(\mathbf{x}_i,\mathbf{x}_j\right) (K)ij=k(xi,xj), α j = ( α 1 j ; α 2 j ; . . . ; α m j ) \alpha^{j}=\left(\alpha_{1}^{j};\alpha_{2}^{j};...;\alpha_{m}^{j}\right) αj=(α1j;α2j;...;αmj),下面的步骤与PCA类似,对矩阵 K \mathbf{K} K进行特征值分解,取最大的 d ′ ′ d'' d′′个特征值对应的特征向量作为投影矩阵 W = ( w 1 , w 2 , . . . , w d ′ ′ ) \mathbf{W}=\left(\mathbf{w}_1,\mathbf{w}_2,...,\mathbf{w}_{d''}\right) W=(w1,w2,...,wd′′)的解,那么对于样本点 x \mathbf{x} x,低维嵌入中对应点的第 j j j维坐标为
y j = w j T ϕ ( x ) = ∑ i = 1 m α i j ϕ ( x i ) T ϕ ( x ) = ∑ i = 1 m α i j k ( x i , x ) y^{j}=\mathbf{w}_j^{T}\phi\left(\mathbf{x}\right)=\sum_{i=1}^{m}{\alpha_{i}^{j}\phi\left(\mathbf{x}_{i}\right)^{T}\phi\left(\mathbf{x}\right)}=\sum_{i=1}^{m}{\alpha_{i}^{j}k\left(\mathbf{x}_i,\mathbf{x}\right)} yj=wjTϕ(x)=i=1∑mαijϕ(xi)Tϕ(x)=i=1∑mαijk(xi,x)
其中,
α
i
j
\alpha_{i}^{j}
αij已经过规范化。
由上述讨论可看出,虽然KPCA更适合现实任务,但是计算复杂度很高,为求得某个样本点在低维嵌入中的对应点,需要对数据集进行遍历并求和,在不使用特殊的数据结构时,其时间复杂度是
O
(
d
′
′
×
m
)
O\left(d''\times{m}\right)
O(d′′×m)。
参考资料
【1】 《机器学习》周志华