Kernel Methods (5) Kernel PCA
先看一眼PCA与KPCA的可视化区别:

在PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?里已经推导过PCA算法的小半部分原理.
本文假设你已经知道了PCA算法的基本原理和步骤.
从原始输入空间到特征空间
普通PCA算法的输入:
- 训练数据集\(D={x_1, \dots, x_m}\), \(x_i \in R^n\).
- 目标降维维度: \(d\)
- 新的测试数据\(x\)
Kernel PCA则需要在输入中加入一个指定的 kernel function \(\kappa\).
我们已经知道, 每个合法的 kernel function, 即对称和正半定的函数, 都能找到至少一个对应的feature mapping function \(\Phi\). 现在\(\kappa\)是已知的, \(\Phi\)是隐藏的:存在, 但对我们来说未知. 用\(\Phi\)把每个训练样本\(x_i\)映射到一个特征空间\(H\), 得到\(z_i\):
\[
z_i = \Phi(x_i)
\qquad
Z =
\left[
\begin{matrix}
z_1^T \\
z_2^T \\
\vdots \\
z_m^T
\end{matrix}
\right]
\]
均值化处理, 使每个维度的均值为0
均值向量:
\[
\mu = \frac 1m Z^T \left[\begin{matrix}1 \\ 1 \\ \vdots \\1\end{matrix}\right]_{m\times 1} = \frac 1m Z^T \beta
\]
从\(Z\)中每一行都减去\(\mu^T\):
\[
\bar Z = Z - \beta \mu^T = Z - \frac 1m \beta \beta^T Z
\]
协方差矩阵正交对角化
这一步有点绕.
因为协方差矩阵\(C = \bar Z^T \bar Z\)中有未知函数\(\Phi\), 所以没办法直接对角化. 在之前推导kernel svm和kernel linear regression算法的过程中, 我们都使用了kernel matrix:
\[
K =
\left [
\begin{matrix}
\Phi(x_1)^T \Phi(x_1), &\Phi(x_1)^T \Phi(x_2), &\dots &\Phi(x_1)^T \Phi(x_n) \\
\vdots &\dots &\dots &\vdots \\
\Phi(x_n)^T \Phi(x_1), &\Phi(x_n)^T \Phi(x_2), &\dots &\Phi(x_n)^T \Phi(x_n)
\end{matrix}
\right ]
\]
这次也不例外.
先看这个类似于\(K\)的均\(K\)矩阵:
\[
\bar K = \bar Z \bar Z^T
\]
假设\(\bar K\)有一个特征值\(\lambda\),对应的已规范化特征向量为\(u\):
\[
\bar Z \bar Z^T u = \lambda u
\]
两边同时左乘一个\(\bar Z^T\):
\[
\bar Z^T \bar Z \bar Z^T u = \bar Z^T\lambda u
\]
\[
\to C \bar Z^T u =\lambda \bar Z^Tu
\]
这代表\(\bar Z^T u\)是协方差矩阵\(C\)的特征向量, 对应的特征值也是\(\lambda\).
所以, 我们只需要规范正交对角化\(\bar K\), 就能对角化\(C\). 规范正交对角化操作的对象为:
\[
\bar K = \bar Z \bar Z^T = ( Z - \frac 1m \beta \beta^T Z)( Z^T - \frac 1m Z^T \beta \beta^T) = ZZ^T - \frac 1m \beta \beta^T ZZ^T - \frac 1m ZZ^T \beta \beta^T + \frac 1{m^2} \beta \beta^T ZZ^T \beta \beta^T = K - \frac 1m \beta \beta^T K - \frac 1m K\beta \beta^T + \frac 1{m^2} \beta \beta^T K \beta \beta^T
\]
特征向量规范化
由\(\bar K\)的规范化特征向量\(u\), 我们可以得到\(C\)的特征向量\(\bar Z^Tu\), 但它不一定是单位向量, 所以我们还要对它进行规范化处理.
\[
||u||^2 = u^T\bar Z \bar Z^Tu = u^T\lambda u = \lambda
\]
\[
p = \frac {\bar Z^Tu}{||\bar Z^Tu||} = \frac {\bar Z^Tu}{\sqrt \lambda}
\]
注意到了吧, 这里还是有\(\bar Z\)存在, 而\(\bar Z = Z - \frac 1m \beta \beta^T Z\), \(Z\)因为包含未知的\(\Phi\)所以也是未知的. 但是PCA的最终目的是降维, 会有一个输入向量\(x\), 到时又可与\(Z\)配合起来, 构成\(\kappa\).
对向量\(x\)进行降维操作
中间没写出来的步骤, 即特征值降序排列取前\(d\)个对应的特征向量, 与普通的PCA是一样的.
降维操作通过\(x\)在一个基上的投影操作即可说明.
\[
p^T\Phi(x) = \frac {u^T \bar Z \Phi(x)}{\sqrt \lambda} = \frac 1{\sqrt \lambda} u^T ( Z - \frac 1m \beta \beta^T Z) \Phi(x) = \frac 1{\sqrt \lambda} u^T (k - \frac 1m \beta \beta^T k) = \frac 1{\sqrt \lambda} u^T (I_{m \times m} - \frac 1m \beta \beta^T)k
\]
其中, \(\lambda\)与\(u\)分别是\(\bar K\)的特征值和对应的规范化特征向量,
\[
k =
\left [
\begin{matrix}
\kappa(x_1, x) \\
\kappa(x_2, x) \\
\vdots \\
\kappa(x_m, x) \\
\end{matrix}
\right]
\qquad
\beta = \left[\begin{matrix}1 \\ 1 \\ \vdots \\1\end{matrix}\right]_{m\times 1}
\]
Kernel Methods (5) Kernel PCA的更多相关文章
- Kernel Methods (4) Kernel SVM
(本文假设你已经知道了hard margin SVM的基本知识.) 如果要为Kernel methods找一个最好搭档, 那肯定是SVM. SVM从90年代开始流行, 直至2012年被deep lea ...
- Kernel Methods (2) Kernel function
几个重要的问题 现在已经知道了kernel function的定义, 以及使用kernel后可以将非线性问题转换成一个线性问题. 在使用kernel 方法时, 如果稍微思考一下的话, 就会遇到以下几个 ...
- Kernel Methods (3) Kernel Linear Regression
Linear Regression 线性回归应该算得上是最简单的一种机器学习算法了吧. 它的问题定义为: 给定训练数据集\(D\), 由\(m\)个二元组\(x_i, y_i\)组成, 其中: \(x ...
- Kernel Methods - An conclusion
Kernel Methods理论的几个要点: 隐藏的特征映射函数\(\Phi\) 核函数\(\kappa\): 条件: 对称, 正半定; 合法的每个kernel function都能找到对应的\(\P ...
- 核方法(Kernel Methods)
核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...
- PRML读书会第六章 Kernel Methods(核函数,线性回归的Dual Representations,高斯过程 ,Gaussian Processes)
主讲人 网络上的尼采 (新浪微博:@Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:16:05 今天的主要内容:Kernel的基本知识,高斯过程.边思考边打字,有点慢, ...
- Kernel methods on spike train space for neuroscience: a tutorial
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 时序点过程:http://www.tensorinfinity.com/paper_154.html Abstract 在过去的十年中,人 ...
- Kernel Methods for Deep Learning
目录 引 主要内容 与深度学习的联系 实验 Cho Y, Saul L K. Kernel Methods for Deep Learning[C]. neural information proce ...
- Kernel Methods (1) 从简单的例子开始
一个简单的分类问题, 如图左半部分所示. 很明显, 我们需要一个决策边界为椭圆形的非线性分类器. 我们可以利用原来的特征构造新的特征: \((x_1, x_2) \to (x_1^2, \sqrt 2 ...
随机推荐
- 关于TD-LTE网络MRO分析中的一些疑问
1.eNB天线到达角(LteScAOA)超出正常值范围 在OMC-R测量报告技术要求中此字段的定义为: "定义了一个用户相对参考方向的估计角度.测量参考方向应为正北,逆时针方向.可以辅助确定 ...
- [No00001B]到底如何培养语感?
- uva10167 Birthday Cake
Lucy and Lily are twins. Today is their birthday. Mother buys a birthday cake for them. Now we put t ...
- 逗号分隔的字符串转换为行数据(collection)
逗号分隔的字符串转换为行数据(collection) CREATE OR REPLACE FUNCTION "GET_STR_TAB" (v_str in varchar2) re ...
- AAL模版 中英文对照
来源:http://52brain.com/thread-17336-1-1.html Brodmann分区是一个根据细胞结构将大脑皮层划分为一系列解剖区域的系统.神经解剖学中所谓细胞结构(Cytoa ...
- css3 box-sizing属性
个人总结: 如果需要兼容IE6 IE7,使用content-box.现在流行bootstrap3,需注意它使用的是border-box. box-sizing属性可以为三个值之一:content-bo ...
- Openjudge 1.13-40 提取数字串按数值排序
40:提取数字串按数值排序 查看 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,请将其中的所有数字串提取,并将每个数字串作为整数看待(假设可以用int 表示),按从 ...
- Use Dapper ORM With ASP.NET Core
Dapper.NET is not just another ORM tool, it's considered as the king of ORM. Because it's fast, easy ...
- web 前端常用组件【01】Pagination 分页
分页组件几乎是一般网站都会涉及到的组件,网上有很多这样的插件,自己挑来跳去选择了这一款. 官方Demo网址:http://mricle.com/JqueryPagination 功能强大,可扩展性比较 ...
- 给Asp.Net MVC及WebApi添加路由优先级
一.为什么需要路由优先级 大家都知道我们在Asp.Net MVC项目或WebApi项目中注册路由是没有优先级的,当项目比较大.或有多个区域.或多个Web项目.或采用插件式框架开发时,我们的路由注册很可 ...