Kernel Principal Components Analysis

PCA实际上就是对原坐标进行正交变换,使得变换后的坐标之间相互无关,并且尽可能保留多的信息。但PCA所做的是线性变换,对于某些数据可能需要通过非线性变换,比如在二维空间下对如下数据进行处理。如果还是采用最初的PCA,则得到的主成分是$z_1,z_2$,而这里的$z_1,z_2$都包含了大量的信息,故无法去掉任何一个坐标,也就达不到降维的目的。而此时如果采用极坐标变换(属于非线性变换),我们就可以尽用一条坐标包含大量的信息(每一数据点都可以用不同的角度来表示)。

故而我们引入Kernel PCA,将原空间通过映射,投影到特征空间(Feature Spaces),然后在进行正交变换。假设有$m$个已作平均值为0处理的数据$x_k,k=1,2,\cdots,m$,$x_k\in\mathbb{R}^N,\sum_{k=1}^mx_k=0$。PCA的协方差矩阵为$\mathbf{C}=\frac{1}{m}\sum_{j=1}^mx_jx_j^\prime$,于是我们要解决的是特征值方程:

\begin{equation}\mathbf{C}v=\lambda v\label{equ:tezhengFun}\end{equation}

将$\mathbf{C}=\frac{1}{m}\sum_{j=1}^mx_jx_j^\prime$代入式子\ref{equ:tezhengFun}得:

$$\mathbf{C}v=\frac{1}{m}\sum_{j=1}^mx_jx_j^\prime v=\frac{1}{m}\sum_{j=1}^m\langle x_j,v\rangle x_j=\lambda v\Longrightarrow v=\frac{1}{m\lambda}\sum_{j=1}^m\langle x_j,v\rangle x_j\triangleq \sum_{j=1}^m\alpha_j x_j$$

即$v$总可以用$x_j$线性表示。同时将式子\ref{equ:tezhengFun}两边同时点乘$x_k$:$\lambda\langle x_k,v\rangle=\langle x_k,\mathbf{C}v\rangle$

我们引入非线性映射$\Phi:\mathbb{R}^N\rightarrow\mathcal{F}$,其中$\mathcal{F}$表示特征空间,所以得到$\Phi(x_k)$,同样我们对$\Phi(x_k)$进行均值为0处理(在后面部分我们会介绍如何不通过$\Phi$即可进行中心化处理),这里我们暂且假设$\sum_{k=1}^m\Phi(x_k)=0$,同样我们得到协方差矩阵:

\begin{equation}\mathbf{\bar{C}}=\frac{1}{m}\sum_{j=1}^m\Phi(x_j)\Phi(x_j)^\prime\end{equation}

这里要解决的同样是特征值方程$\lambda V=\mathbf{\bar{C}}V,\lambda>0,V\in\mathcal{F}/\{0\}$。两边同时点乘$\Phi(x_k)$得:

\begin{equation}\lambda\langle \Phi(x_k),v\rangle=\langle\Phi(x_k),\mathbf{\bar{C}}V\rangle,\forall k\end{equation}

同时也必定存在$\alpha_i$使$V=\sum_{i=1}^m\alpha_i\Phi(x_i)$,故

\begin{align}\lambda\langle\Phi(x_k),V\rangle &= \lambda V^\prime\Phi(x_k)\nonumber\\&=\lambda\sum_{i=1}^m\alpha_i\Phi(x_i)^\prime\Phi(x_i)\nonumber\\&=\lambda\sum_{i=1}^m\alpha_i\langle\Phi(x_k),\Phi(x_i)\rangle\nonumber\\&=\langle\Phi(x_k),\mathbf{\bar{C}}V\rangle\nonumber\\&=\langle\Phi(x_k),\frac{1}{m}\sum_{j=1}^m\Phi(x_j)\Phi(x_j)^\prime\sum_{i=1}^m\alpha_i\Phi(x_i)\rangle\nonumber\\&=\frac{1}{m}\Phi(x_k)^\prime\sum_{j=1}^m\Phi(x_j)\Phi(x_j)^\prime\sum_{i=1}^m\alpha_i\Phi(x_i)\nonumber\\&=\frac{1}{m}\Phi(x_k)^\prime\sum_{j=1}^m[\langle\Phi(x_j),\sum_{i=1}^m\alpha_i\Phi(x_i)\rangle\Phi(x_j)]\label{equ:1}\\&=\frac{1}{m}\Phi(x_k)^\prime\sum_{j=1}^m[\sum_{i=1}^m\alpha_i\langle\Phi(x_j),\Phi(x_i)\rangle\Phi(x_j)]\nonumber\\&=\frac{1}{m}\Phi(x_k)^\prime\sum_{j=1}^m\sum_{i=1}^m[\alpha_i\langle\Phi(x_j),\Phi(x_i\rangle\Phi(x_j))]\nonumber\\&=\frac{1}{m}\sum_{i=1}^m\sum_{j=1}^m[\alpha_i\Phi(x_k)^\prime\langle\Phi(x_j),\Phi(x_i)\rangle\Phi(x_j)]\nonumber\\&=\frac{1}{m}\sum_{i=1}^m\sum_{j=1}^m[\alpha_i\langle\Phi(x_k),\Phi(x_j)\rangle\langle\Phi(x_j),\Phi(x_i)\rangle]\end{align}

$$m\lambda\sum_{i=1}^m\alpha_i\langle \Phi(x_k),\Phi(x_i)\rangle=\sum_{i=1}^m\sum_{j=1}^m[\alpha_i\langle\Phi(x_k),\Phi(x_j)\rangle\langle\Phi(x_i),\Phi(x_j)\rangle]$$

对所有$k=1,2,\cdots,m$都成立,其中等式\ref{equ:1}成立是因为$(xx^\prime)v=\langle x,v\rangle x$。现在我们将其写成矩阵形式。对左边式子:

\begin{equation}m\lambda[K_{k1},K_{k2},\cdots,K_{km}]\left[\begin{array}&\alpha_1\\\vdots\\\alpha_m\end{array}\right]\end{equation}

再将其按$k$排成列:

\begin{equation}m\lambda\left[\begin{array}&K_{11}&K_{12}&\cdots&K_{1m}\\K_{21}&K_{22}&\cdots&K_{2m}\\\vdots&\vdots&\ddots&\vdots\\K_{m1}&K_{m2}&\cdots&K_{mm}\end{array}\right]\left[\begin{array}&\alpha_1\\\vdots\\\alpha_m\end{array}\right]=m\lambda\mathbf{K}\alpha\end{equation}

对右边有:

\begin{equation}[\sum_jK_{kj}K_{1j},\sum_jK_{kj}K_{2j},\cdots,\sum_jK_{kj}K_{mj}]\left[\begin{array}&\alpha_1\\\alpha_2\\\vdots\\\alpha_m\end{array}\right]=[K_{1\cdot}^\prime K_{k\cdot},\cdots,K_{m\cdot}^\prime K_{k\cdot}]\left[\begin{array}&\alpha_1\\\vdots\\\alpha_m\end{array}\right]=\mathbf{K}K_{k\cdot}\alpha\end{equation}

再将其按$k$排成列:

\begin{equation}\left[\begin{array}&\mathbf{K}K_{1\cdot}\\\mathbf{K}K_{2\cdot}\\\vdots\\\mathbf{K}K_{m\cdot}\end{array}\right]\alpha=\mathbf{K}\mathbf{K}\alpha=\mathbf{K}^2\alpha\end{equation}

于是我们得到$m\lambda\mathbf{K}\alpha=\mathbf{K}^2\alpha\Longrightarrow m\lambda\alpha=\mathbf{K}\alpha$,其中$m\lambda$是矩阵$\mathbf{K}$的特征值,$\alpha$为矩阵$\mathbf{K}$的特征向量。注意这里的$\mathbf{K}$是半正定的,因为对于任意$x\in\mathcal{F}$有:

\begin{align*}x^\prime\mathbf{K}x&=x^\prime[\Phi(x_1),\cdots,\Phi(x_m)]^\prime[\Phi(x_1),\cdots,\Phi(x_m)]x\\&=\|(\Phi(x_1),\cdots,\Phi(x_m))x\|^2\geq 0\end{align*}

所以$\mathbf{K}$的特征值都是非负的。由于$\mathbf{\bar{C}}=\frac{1}{m}\mathbf{K}$,故$\mathbf{\bar{C}}$的特征值也都是非负的且其值为$\lambda$。设$\lambda_m\geq\lambda_{m-1}\geq\cdots\geq\lambda_p\geq\cdots\geq\lambda_1$,$\lambda_p$为第一个非0特征值。

由于$V^{(k)}=\sum_{i=1}^m\alpha_i^{(k)}\Phi(x_i)$,我们对$\alpha^p,\cdot,\alpha^m$进行正交化,并使$\alpha^k\cdot\alpha^k=\frac{1}{m\lambda}$,故而可得:

$$V^{(k)}\cdot V^{(k)}=\sum_{i,j=1}^m\alpha_i^k\alpha_j^k\langle\Phi(x_i),\Phi(x_j)\rangle=\sum_{i,j=1}^m\alpha_i^k\alpha_j^kK_{ij}=\langle\alpha^k,\mathbf{K}\alpha^k\rangle=m\lambda\langle\alpha^k,\alpha^k\rangle=1$$

$$\forall k\neq \bar{k},V^{(k)}\cdot V^{(\bar{k})}=m\lambda\langle \alpha^k,\alpha^{\bar{k}}\rangle=0$$

所以我们得到主成分为$V^m,V^{m-1},\cdots,V^p$。对数据进行如下投影即可得到新变量的第$k$个元素$\langle V^k,\Phi(x)\rangle=\sum_{i=1}^m\alpha_i^k\langle\Phi(x_i),\Phi(x)\rangle=\sum_{i=1}^m\alpha_i^kK(x_i,x)$。我们称$V^k$为映射$\Phi$的第$k$个非线性主成分。

总结,KPCA的步骤:

  1. 选取合适的和函数,计算矩阵$\mathbf{K}$。
  2. 计算其特征值对应的特征向量$\alpha_i$,并将其正交化,且使$\alpha_k\cdot\alpha_k=\frac{1}{m\lambda}$,$m\lambda$为矩阵$\mathbf{K}$的特征值。
  3. 根据$\langle V^k,\Phi(x)\rangle=\sum_{i=1}^m\alpha_i^kK(x_i,x)$计算其相应的主成分$k=p,\cdots,m$。

附录:对$\Phi(x_k)$进行均值为0化。

$$\hat{\Phi(x_k)}=\Phi(x_k)-\frac{1}{m}\sum_{i=1}^m\Phi(x_i)$$

\begin{align*}\hat{K_{ij}}&=\hat{\Phi(x_i)}^\prime\hat{\Phi(x_j)}=[\Phi(x_i)-\frac{1}{m}\sum_{k=1}^m\Phi(x_k)]^\prime[\Phi(x_j)-\frac{1}{m}\sum_{k=1}^m\Phi(x_k)]\\&=\Phi(x_i)^\prime\Phi(x_j)-\frac{1}{m}\sum_{k=1}^m\Phi(x_k)^\Phi(x_j)-\frac{1}{m}\sum_{k=1}^m\Phi(x_k)^\prime\Phi(x_i)+\\&\quad\frac{1}{m^2}\sum_{k=1}^m\Phi(x_k)^\prime\sum_{k=1}^m\Phi(x_k)\\&=K_{ij}-K_{\cdot j}^\prime-\frac{1}{m}K_{\cdot i}^\prime\mathbf{1}-\frac{1}{m}K_{\cdot i}^\prime\mathbf{1}+\frac{1}{m^2}\mathbf{1}^\prime\mathbf{K}\mathbf{1}\end{align*}

其中$\mathbf{1}=(1,1,\cdots,1)^\prime$。写成矩阵的形式为:

$$\mathbf{\hat{K}}=\mathbf{K}-\frac{1}{m}\mathbf{I}_m\mathbf{K}-\frac{1}{m}\mathbf{K}\mathbf{I}_m+\frac{1}{m^2}\mathbf{I}_m\mathbf{K}\mathbf{I}_m$$

其中$\mathbf{I}_m$为$m\times m$的全1矩阵。

Jordan Lecture Note-10: Kernel Principal Components Analysis (KPCA).的更多相关文章

  1. 解释一下核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程(转载)

    KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实 ...

  2. 核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程

    KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实 ...

  3. Jordan Lecture Note-9: Principal Components Analysis (PCA).

    Principal Components Analysis (一)引入PCA    当我们对某个系统或指标进行研究时往往会发现,影响这些系统和指标的因素或变量的数量非常的多.多变量无疑会为科学研究带来 ...

  4. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  5. A tutorial on Principal Components Analysis | 主成分分析(PCA)教程

    A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...

  6. Stat2—主成分分析(Principal components analysis)

    最近在猛撸<R in nutshell>这本课,统计部分涉及的第一个分析数据的方法便是PCA!因此,今天打算好好梳理一下,涉及主城分析法的理论以及R实现!come on…gogogo… 首 ...

  7. 主成分分析(principal components analysis, PCA)

    原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------ ...

  8. [zz] Principal Components Analysis (PCA) 主成分分析

    我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/ ...

  9. 主成分分析 | Principal Components Analysis | PCA

    理论 仅仅使用基本的线性代数知识,就可以推导出一种简单的机器学习算法,主成分分析(Principal Components Analysis, PCA). 假设有 $m$ 个点的集合:$\left\{ ...

随机推荐

  1. IOS 类别与扩展的区别 (category & extensions)

    类别 .h @interface NSString(XXXXXX) -(NSInteger)getLen; @end .m @implementation NSString(XXXXXX) -(NSI ...

  2. 提高Web页面性能的技巧

    现在动辄几兆大小的页面加载量,让性能优化成了不可避免的热门话题.WEB 应用越流畅,用户体验就会越好,继而带来更多的访问量.这也就是说,我们应该反省一下那些过度美化的 CSS3 动画和多重操作的 DO ...

  3. C#汉字转换拼音技术详解

    C#汉字转换拼音技术详解(高性能) 下面将源代码贴出.public static class ChineseToPinYin           {               private sta ...

  4. bzoj 1025 [SCOI2009]游戏(置换群,DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1025 [题意] 给定n,问1..n在不同的置换下变回原序列需要的不同排数有多少种. [ ...

  5. CSS布局基础

    (初级)css布局 一.单列布局1.基础知识块级元素 div p ul li dl dt 行级元素 img span input strong同一行显示.无换行2.盒子模型盒子模型 (边框border ...

  6. H264编码参数的一些小细节

    一次写播放器,基于ijkplayer.在播放一些网络视频的时候,发现无论怎么转码,视频比例始终不对.即便获取了分辨率,但是播放的时候,view不是分辨率比例的那个长宽比.使用ffmpeg查看了一下属性 ...

  7. 转】Maven学习总结(四)——Maven核心概念

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4051819.html 感谢! 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中 ...

  8. [iOS 多线程 & 网络 - 2.11] - ASI框架上传文件

    A.ASI的上传功能基本使用 1.实现步骤 (1)创建请求 使用ASIFormDataRequest (2)设置上传文件路径 (3)发送请求     2.上传相册相片 UIImagePickerCon ...

  9. Light oj 1214-Large Division (同余定理)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1214 题意很好懂,同余定理的运用,要是A数被B数整除,那么A%B等于0.而A很大,那我 ...

  10. angular 管理后台

    http://blog.csdn.net/iamnieo/article/details/50474399