核PCA(Kernel PCA)详述

目录

1核函数

2 核函数种类

3核函数应用-KPCA


 

3月份,写过一篇PCA的文章,再此基础上,又看了关于KPCA的东西,所以有了这篇文章,这篇文章,直接使用了PCA中的主要思想,不明白的可以转到https://blog.csdn.net/foneone/article/details/88881334这篇文章。

1核函数

如果存在一个从XP的映射:

                                                                      \phi\left ( x \right ) :X->P

使得对所有x,z属于X,函数K(x,z)满足条件:

                                                                      K(x,z) = \phi \left ( x \right )\cdot \phi (z)

则K(x,z)为核函数,\phi为映射函数,\phi \left ( x \right )\cdot \phi (z)\phi \left ( x \right )\phi (z)内积。

举一个简单的例子: 

通过一个映射,将一个二维的非线性分隔线(椭圆)变成了三维平面,变成了线性分隔。

在学习和预测中,只定义核函数K(x,z),而不定义映射函数\phi(映射不好直接显示表达,但两者内积可以通过核函数表达)。

两者关系:给定核函数,特征空间和映射函数\phi取法不唯一,即使同一特征空间,映射也可以不同。

假设给定的核函数如下:

                                                                             k(x, z)=(x \cdot z)^{2}   

X^{1}=(x_{1},x_{2}),X^{2}=(x_{3},x_{4})

                                    <X^{1} \cdot X^{2}>=\left(\left(x_{1}, x_{2}\right) \cdot (x_{3}, x_{4}\right)^{T})^{^{2}}=x_{1}^{2} x_{3}^{2}+2 x_{1} x_{2} x_{3} x_{4}+x_{2}^{2} x_{4}^{2}

(1)若此时映射写为:

                                                                     \phi(x)=\left(x_{1}^{2}, \sqrt{2} x_{1} x_{2}, x_{2}^{2}\right)

                                                                    \phi(z)=\left(x_{3}^{2}, \sqrt{2} x_{3} x_{4}, x_{4}^{2}\right)

则有\phi(x) \cdot \phi(z)=K(x \cdot z),这样就从二维特征成功的转到了三维特征

(2)若此时映射写为:

                                                           \phi(x)=\frac{1}{\sqrt{2}}\left(x_{1}^{2}-x_{2}^{2}, 2 x_{1} x_{2}, x_{1}^{2}+x_{2}^{2}\right)

                                                           \phi(z)=\frac{1}{\sqrt{2}}\left(x_{3}^{2}-x_{4}^{2}, 2 x_{3} x_{4}, x_{3}^{2}+x_{4}^{2}\right)

那么依旧可以得到\phi(x) \cdot \phi(z)=K(x \cdot z),这也是从二维到三维。

(3)若此时映射写为:

                                                            \phi(x)=\left(x_{1}^{2}, x_{1} x_{2}, x_{1} x_{2}, x_{2}^{2}\right)

                                                           \phi(z)=\left(x_{3}^{2}, x_{3} x_{4}, x_{3} x_{4}, x_{4}^{2}\right)

 

通过核函数运算,可将两者内积表示成,x_{1}^{2} x_{3}^{2}+2 x_{1} x_{2} x_{3} x_{4}+x_{2}^{2} x_{4}^{2}

通过映射也可以达到此效果,即为(1);除了这种映射之外,也可以找到其他映射方法,如(2);映射不仅仅可以从二维到三维,也可以到四维甚至更高维度,如(3)。

因此,核函数和映射之间,不是一一对应的关系。

给定一个映射函数,可以用求解\phi \left ( x \right )\cdot \phi (z)两者的内积求解核函数。但不构造映射函数\phi,如何判断一个给定的函数,是否为核函数K(x,z)?满足什么条件才能成为核函数?

通常情况下,核函数就是正定核函数。

K(x,z)为正定核函数的充要条件是对于任意x属于X,K(x,z)对应的Gram矩阵:

是半正定矩阵。

Gram矩阵:内积组成的矩阵

定义:n维欧式空间中任意k(k<=n)个向量,\alpha_{1}, \alpha_{2}, \dots, \alpha_{k}的内积所组成的矩阵。

                                      \Delta\left(\alpha_{1}, \alpha_{2}, \ldots, \alpha_{k}\right)=\left(\begin{array}{cccc}{\left(\alpha_{1}, \alpha_{1}\right)} & {\left(\alpha_{1}, \alpha_{2}\right)} & {\dots} & {\left(\alpha_{1}, \alpha_{k}\right)} \\ {\left(\alpha_{2}, \alpha_{1}\right)} & {\left(\alpha_{2}, \alpha_{2}\right)} & {\dots} & {\left(\alpha_{2}, \alpha_{k}\right)} \\ {\cdots} & {\cdots} & {\cdots} & {\cdots} \\ {\left(\alpha_{k}, \alpha_{1}\right)} & {\left(\alpha_{k}, \alpha_{2}\right)} & {\dots} & {\left(\alpha_{k}, \alpha_{k}\right)}\end{array}\right)

称为k个向量\alpha_{1}, \alpha_{2}, \dots, \alpha_{k}的格拉姆矩阵(Gram矩阵),它的行列式成为Gram行列式。

也可以说,K(x,z)对应的Gram矩阵是半正定矩阵,则K(x,z)是正定核函数。(两者可以互相推导)

半正定矩阵判别:实对称矩阵A称为半正定的,若A半正定,即对于任意不为零的实例向量x,都有X^{T}AX\geqslant 0

给一个例子,证明K(x,z) = <x,z>为核矩阵。

K=\left[\begin{array}{ccc}{k\left(x_{1}, x_{1}\right)} & {\cdots} & {k\left(x_{1}, x_{n}\right)} \\ {\vdots} & {\ddots} & {\vdots} \\ {k\left(x_{n}, x_{1}\right)} & {\cdots} & {k\left(x_{n}, x_{n}\right)}\end{array}\right]

    =\left[\begin{array}{ccc}{\left(x_{1} \bullet x_{1}\right)} & {\cdots} & {\left(x_{1} \bullet x_{n}\right)} \\ {\vdots} & {\ddots} & {\vdots} \\ {\left(x_{n} \bullet x_{1}\right)} & {\cdots} & {\left(x_{n} \bullet x_{n}\right)}\end{array}\right] (其中\bullet表示内积,等于<x1,x1>)

    =\left[\begin{array}{ccc}{x_{1}^{T} x_{1}} & {\cdots} & {x_{1}^{T} x_{n}} \\ {\vdots} & {\ddots} & {\vdots} \\ {x_{n}^{T} x_{1}} & {\cdots} & {x_{n}^{T} x_{n}}\end{array}\right]

    =\left[\begin{array}{c}{x_{1}^{T}} \\ {\vdots} \\ {x_{n}^{T}}\end{array}\right]\left[\begin{array}{lll}{x_{1}} & {\cdots} & {x_{n}}\end{array}\right]

故:

        y^{T} K y=y^{T}\left[\begin{array}{c}{x_{1}^{T}} \\ {\vdots} \\ {x_{n}^{T}}\end{array}\right]\left[\begin{array}{ccc}{x_{1}} & {\cdots} & {x_{n}}\end{array}\right] y

                    =\left(\begin{array}{lll}{x_{1}} & {\cdots} & {x_{n}}\end{array}\right] y )^{T}\left(\left[\begin{array}{lll}{x_{1}} & {\cdots} & {x_{n}}\end{array}\right] y\right)=\left\|\left(\left[\begin{array}{lll}{x_{1}} & {\cdots} & {x_{n}}\end{array}\right] y\right)\right\|^{2} \geq 0
              证毕。

上述定义在构造核函数时很有用,但是对于一个具体函数K(x,z)来说,检验是否为正定核函数并不容易,因为要验证K对应的Gram矩阵是否为半正定的。

因此,在核函数上,往往应用现有核函数。

2 核函数种类
 

其中最常用的是(1)(2)(3)。

3核函数应用-KPCA
 

核PCA就是将原样本通过核映射后,在核空间基础上做PCA降维。

先假设样本在核映射Φ(x)后也是中心化的——样本集经过Φ(x)一一映射后,均值仍然为0,即:

 但是,存在这样的一个问题,核函数是定义2个向量之间的关系,即 K(x,y)=<Φ(x),Φ(y)>=\phi \left ( x \right )^{T}\cdot \phi (y),结果是一个值。换句话说,不显式的知道Φ(x)的具体映射机制,那么这个映射后的协方差矩阵C当然无法显式计算。(因为要计算协方差矩阵的特征值和特征向量)。

故要通过K(x,y)将问题转化。

K(x1,xn)为升维之后的两者内积,可以求出。故序号1中的特征值和特征向量都可以求出。

通过(1)可以得出(2),故C就可以表示出来,即x^{T}u为C的特征向量(v),\lambda为特征值。

对v特征向量单一化处理,即得到了箭头所指的位置,其中u为已知,\lambda仍为未知。

但是,最后想要得到的并不是\lambda和v,而是最后v^{T}\phi \left ( x \right )。(即为降维之后的样本)

故可以利用,如下转化方法计算。

V所求的特征向量和\phi(x)做内积的结果。

V^{T} \phi(x^{\prime})=\left(\frac{1}{\sqrt{\lambda}} X^{\top} u\right)^{\top}\phi(x^{\prime})

               =\frac{1}{\sqrt{\lambda}} u^{\top} X \phi(x^{\prime})

             =\frac{1}{\sqrt{\lambda}} u^{\top}\left[\begin{array}{c}{\phi\left(x_{1}\right)^{\top}} \\ {\vdots} \\ {\phi\left(x_{N}\right)^{\top}}\end{array}\right] \cdot \phi(x^{\prime})

          =\frac{1}{\sqrt{\lambda}} u^{T}\left[\begin{array}{c}{K\left(x_{1}, x^{\prime}\right)} \\ {\vdots} \\ {K\left(x_{n}, x^{\prime}\right)}\end{array}\right]

故总结一下,核PCA的计算步骤:

1,按照核函数,写出核矩阵

2,求解核矩阵的特征值和特征向量,按照\lambda从大到小排列

3,计算\frac{1}{\sqrt{\lambda }}u_{i}^{T}\begin{bmatrix} K(x_{1},x{}') &... &K(x_{n},x{}') \end{bmatrix}^{T}

 

 

参考文献:

[1]https://www.bilibili.com/video/av16722186

[2]https://www.bilibili.com/video/av31552048

  • 27
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Foneone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值