Kernel Canonical Correlation Analysis

1、CCA的不足

普通的线性CCA只能探索两组随机变量之间的线性关系,而在实际情况中,变量间的关系往往是非线性的,于是非线性的CCA出现了,KCCA就是一种常用的非线性CCA算法。KCCA是把核函数的思想引入CCA中,思想是把低维的数据映射到高维的特征空间(核函数空间),并通过核函数方便地在核函数空间进行关联分析。

2、算法实现

首先引入一个把数据映射到高维特征空间的的映射(从m维到n维的映射):

ϕ:x=(x1,...,xm)↦ϕ(x)=(ϕ1(x),...,ϕn(x)),(m<n) \phi: \textbf{x} = (x_1,...,x_m) \mapsto \phi(\textbf{x}) = (\phi_1(\textbf{x}),...,\phi_n(\textbf{x})) , (m

核Kernel是指一个函数K,对所有的 x,z \textbf{x},\textbf{z}有:

K(x,z)=⟨ϕ(x),ϕ(z)⟩ K(\textbf{x},\textbf{z}) = \langle \phi(\textbf{x}), \phi(\textbf{z})\rangle

设两组向量的样本矩阵为:
Xp×N=(X1,...,XN),Yq×N=(Y1,...,YN) X_{p\times N} = (\textbf{X}_1,...,\textbf{X}_N),Y_{q\times N} = (\textbf{Y}_1,...,\textbf{Y}_N)

设 ϕX,ϕY \phi_X,\phi_Y分别表示作用于 X,Y X,Y上的变换,即:
ϕX(X)=(ϕX(X1),...,ϕX(XN)),ϕY(Y)=(ϕY(Y1),...,ϕY(YN)) \phi_X(\textbf{X}) = (\phi_X(\textbf{X}_1),...,\phi_X(\textbf{X}_N)),\phi_Y(\textbf{Y}) = (\phi_Y(\textbf{Y}_1),...,\phi_Y(\textbf{Y}_N))

变换后的 ϕX(X)、ϕY(Y) \phi_X(\textbf{X})、\phi_Y(\textbf{Y})均为n x N维矩阵。之后和线性CCA类似,我们希望找到两个n维向量 wX,wY w_\textbf{X},w_\textbf{Y},使得 u=wTXϕX(X) u=w_X^T\phi_X(\textbf{X})与 v=wTYϕY(Y) v=w_Y^T\phi_Y(\textbf{Y})相关系数 ρ \rho最大。

在 X、Y X、Y上定义核矩阵 KX、KY(均为N×N) K_X、K_Y(均为N\times N)如下:
KX(i,j)=KX(Xi,Xj)=ϕX(Xi)TϕX(Xj),KY(i,j)=KY(Yi,Yj)=ϕY(Yi)TϕY(Yj) K_X(i,j) = K_X(X_i,X_j) =\phi_X(\textbf{X}_i)^T\phi_X(\textbf{X}_j),K_Y(i,j) = K_Y(Y_i,Y_j) = \phi_Y(\textbf{Y}_i)^T\phi_Y(\textbf{Y}_j)

该问题可以转化为一个优化问题:
L(wX,wY,λX,λY)=αTMα−λX2αTLα−λY2βTNβ L(w_{X},w_{Y},\lambda_X,\lambda_Y) = \alpha^TM\alpha-\frac{\lambda_X}{2}\alpha^TL\alpha-\frac{\lambda_Y}{2}\beta^TN\beta

其中:
M=1NKTXJKY M = \frac{1}{N}K_X^TJK_Y

L=1NKTXJKX+ηKX L = \frac{1}{N}K_X^TJK_X+\eta K_X

N=1NKTYJKY+ηKY N = \frac{1}{N}K_Y^TJK_Y+\eta K_Y

J=I−11T J = I - \textbf{1}\textbf{1}^T

1=(1,...,1)T \textbf{1} = (1,...,1)^T

参考《CCA在数字图像处理中的应用研究》
《canonical correlation analysis: an overview with application to learning methods》
由理论推导可得:

wX=∑Ni=1αiϕX(Xi),wY=∑Ni=1βiϕY(Yi) w_X = \sum_{i=1}^{N}\alpha_i\phi_X(X_i),w_Y = \sum_{i=1}^{N}\beta_i\phi_Y(Y_i)

则有:
u=wTXϕX(X)=∑Ni=1αiϕX(Xi)TϕX(X) u = w_X^T\phi_X(X) = \sum_{i=1}^{N}\alpha_i\phi_X(X_i)^T\phi_X(X) (2.1)

v=wTYϕY(Y)=∑Ni=1βiϕY(Yi)TϕY(Y) v = w_Y^T\phi_Y(Y) = \sum_{i=1}^{N}\beta_i\phi_Y(Y_i)^T\phi_Y(Y) (2.2)

具体的KCCA实现步骤如下:
(1)由样本X、Y以及核函数 K(x,z) K(\textbf{x},\textbf{z})的定义计算核矩阵 KX、KY K_X、K_Y
高斯核函数为:
K(x,z)=e−∣x−z∣22σ2 K(\textbf{x},\textbf{z}) = e^{-\frac{\lvert \textbf{x}-\textbf{z}\rvert^2}{2\sigma^2}}

(2)计算M、N、L;
(3)由以下式子计算 α、β \alpha、\beta:

L−1MN−1MTα=λ2α L^{-1}MN^{-1}M^T\alpha = \lambda^2\alpha

N−1MTL−1Mβ=λ2β N^{-1}M^TL^{-1}M\beta = \lambda^2\beta

(4)由2.1、2.2式计算 u,v u,v:

u=∑Ni=1αiKX(Xi,X) u = \sum_{i=1}^{N}\alpha_iK_X(X_i,X)

v=∑Ni=1βiKY(Yi,Y) v= \sum_{i=1}^{N}\beta_iK_Y(Y_i,Y)

通过很多样本对 X,Y X,Y可以得到很多 u,v u,v对,通过这些 u,v u,v对可以画图观察 u,v u,v之间的线性相关性,并计算相关系数 ρ(u,v) \rho(u,v),其实最后计算 u,v u,v可以直接利用核矩阵和 α,β \alpha,\beta求解。

核典型关联分析(KCCA)算法原理相关推荐

  1. 典型关联分析(CCA)算法原理

    典型关联分析(CCA)算法原理 1.问题的提出 我们知道,两个随机变量x.y之间的线性关系可以通过对这两个变量的N组样本对进行线性回归求得.但是,如果要求两组随机变量x.y之间的线性关系,则可以用典型 ...

  2. 典型相关分析(cca)原理_CCA典型关联分析原理与Python案例

    文章来源于"脑机接口社区" CCA典型关联分析原理与Python案例​mp.weixin.qq.com Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑 ...

  3. 典型相关分析python实现_CCA典型关联分析原理与Python案例

    文章来源于"脑机接口社区"CCA典型关联分析原理与Python案例​mp.weixin.qq.com Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑电 ...

  4. 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS

    交叉分解(Cross decomposition).典型关联分析(Canonical Correlation Analysis,CCA).偏最小二乘回归PLS 目录 交叉分解.典型关联分析(Canon ...

  5. 典型关联分析CCA(canonical correlation analysis)

    先看两个数学概念: 相关系数(参看百度百科) 相关系数是用以反映变量之间相关关系密切程度的统计指标.相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关 ...

  6. 独立成分分析FastICA算法原理

    独立成分分析FastICA算法原理 首先对于d维的随机变量x∈Rd×1\displaystyle \mathbf{x} \in R^{d\times 1}x∈Rd×1,我们假设他的产生过程是由相互独立 ...

  7. 机器学习-关联之Apriori算法原理及实战

    Apriori算法 前言 关联分析是一种无监督的机器学习方法,主要用于发现大规模数据集中事物之间的依存性和关联性.挖掘数据中隐藏的有价值的关系(如频繁项集.关联规则),有利于对相关事物进行预测,也能帮 ...

  8. 深度学习分析--TextCNN算法原理及分类实现

    深度学习算法背景 人工智能发展历史 随着算力提高以及深度学习的应用,近几年算法发展很快 应用场景 计算机视觉 用于车牌识别和面部识别等的应用. 信息检索 用于诸如搜索引擎的应用 - 包括文本搜索和图像 ...

  9. 关联分析(Apriori算法) 面包 牛奶 尿布 啤酒 ...

    关联分析时,需要处理两个关键问题 1 大量数据集中发现模式,计算代价高 2 某些模式可能是虚假的,因为他们是偶然发生的 关联分析例题:从这个商品记录得出顾客喜欢同时购买那几样东西 TID 面包 牛奶 ...

最新文章

  1. IOS - UITableViewCell的选中时的颜色及tableViewCell的selecte与deselecte
  2. Matplotlib常见问题总结
  3. PX4飞控之导航及任务架构
  4. 如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?
  5. ModuleNotFoundError: No module named ‘apt_pkg‘
  6. [html] 跨域通信有哪些方式?
  7. while嵌套注意事项(九九星号代码
  8. 【UI/UX】桌面GUI设计
  9. 还没毕业就被阿里30万年薪预定,他凭什么?
  10. 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具
  11. linux下安装配置svn独立服务器
  12. (已上传源码)最近开发的一款应用,我选择了哪些框架 第三方库
  13. jQuery TreeGrid
  14. Why WPF's Text is Blurry?
  15. ffmpeg 保存图片 将rgb数据_FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)...
  16. java连接池详解与自定义es连接池
  17. Android初识-Intent用法进阶篇
  18. JSON-spirit用法
  19. linux下c/c++读取txt文件,多行文件,且每行都用逗号隔开
  20. 如何从后台传数据到前台显示

热门文章

  1. 三维激光扫描后处理软件_边走边扫的三维激光扫描仪-
  2. 剑指Offer系列(java版,详细解析)38.字符串的排列
  3. java网络编程---使用URL爬取歌曲
  4. python tutorial json_Python Tutorial - Parse JSON Objects with Python
  5. {“errcode“:44001,“errmsg“:“empty media data, hint: [1655962096234893527769663], from ip: 222.72.xxx.
  6. 将站点数据插值到格点上
  7. 【有利可图网】PS实战教程37:制作一颗晶莹剔透的水珠
  8. 数据结构与算法---均摊时间复杂度
  9. 1005--HBase操作实战(HBase Shell命令行模式)
  10. [免费专栏] Android安全之数据存储与数据安全「详解」