Jordan Lecture Note-10: Kernel Principal Components Analysis (KPCA).
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的步骤:
- 选取合适的和函数,计算矩阵$\mathbf{K}$。
- 计算其特征值对应的特征向量$\alpha_i$,并将其正交化,且使$\alpha_k\cdot\alpha_k=\frac{1}{m\lambda}$,$m\lambda$为矩阵$\mathbf{K}$的特征值。
- 根据$\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).的更多相关文章
- 解释一下核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程(转载)
KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实 ...
- 核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程
KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实 ...
- Jordan Lecture Note-9: Principal Components Analysis (PCA).
Principal Components Analysis (一)引入PCA 当我们对某个系统或指标进行研究时往往会发现,影响这些系统和指标的因素或变量的数量非常的多.多变量无疑会为科学研究带来 ...
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- A tutorial on Principal Components Analysis | 主成分分析(PCA)教程
A tutorial on Principal Components Analysis 原著:Lindsay I Smith, A tutorial on Principal Components A ...
- Stat2—主成分分析(Principal components analysis)
最近在猛撸<R in nutshell>这本课,统计部分涉及的第一个分析数据的方法便是PCA!因此,今天打算好好梳理一下,涉及主城分析法的理论以及R实现!come on…gogogo… 首 ...
- 主成分分析(principal components analysis, PCA)
原理 计算方法 主要性质 有关统计量 主成分个数的选取 ------------------------------------------------------------------------ ...
- [zz] Principal Components Analysis (PCA) 主成分分析
我理解PCA应该分为2个过程:1.求出降维矩阵:2.利用得到的降维矩阵,对数据/特征做降维. 这里分成了两篇博客,来做总结. http://matlabdatamining.blogspot.com/ ...
- 主成分分析 | Principal Components Analysis | PCA
理论 仅仅使用基本的线性代数知识,就可以推导出一种简单的机器学习算法,主成分分析(Principal Components Analysis, PCA). 假设有 $m$ 个点的集合:$\left\{ ...
随机推荐
- Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)
var bdots = "../" var sequence = [ 'l1', 'l2', 'l3', 'l4' ]; Chapter1是个总览,引出了射影几何的概念,通过在欧式 ...
- web自动化框架之四测试报告的搭建
现状: 看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner:然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如 ...
- Windows安装pomelo过程
安装总要出点状况的.操作系统是win7 64bit. 为了保证顺利,打开的是VS2012命令行提示.运行 npm install -g pomelo 经过一系列输出,最后安装提示完成了.但是输入 po ...
- [CODEVS1697]⑨要写信
题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因…… 琪露诺的符卡 冰符“Icicle ...
- 【转】VC6.0附带小工具软件一览
)ActiveX Control Test Container称为"ActiveX 控件测试容器",顾名思义,此工具的主要功能就是测试ActiveX 控件,可以通过改变Active ...
- windows7+eclipse-jee-luna+hadoop2.6运行环境及eclipse plugin插件编译
一.hadoop集群环境配置 参见:<Hadoop2.6集群环境搭建(HDFS HA+YARN)原来4G内存也能任性一次.> Win7环境: 登录用户名:hadoop , 与Hadoop ...
- hadoop HDFS 写入吞吐量
最近一个项目 在大把大把的使用hadoop-HDFS,关于HDFS 的优势网上都快说烂了,这里不再说了,免得被.. 呵呵 废话少说,开整 1.场景描述: 服务器A 监听 服务器B分发任务socket. ...
- 32位和64位dll判断
如何判断一个dll文件是32位还是64位? 1. 开发中经常会使用到VC的一个工具 Dependency Walker用depends.exe打开dll,文件名前有64标示的即为64位. 但是这个方式 ...
- ocp 1Z0-043 131-205题解析
131. Which three methods can you use to run an Automatic Database Diagnostic Monitor (ADDM) analysis ...
- spark结合 Openfire服务器,发送聊天消息
1.下载OpenFire服务器,进行安装,参考http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html 2.程序运行客户端:下载客户端代 ...