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

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)

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

K(x,z)=ϕ(x),ϕ(z)

设两组向量的样本矩阵为:
Xp×N=(X1,...,XN),Yq×N=(Y1,...,YN)

ϕX,ϕY 分别表示作用于 X,Y 上的变换,即:
ϕX(X)=(ϕX(X1),...,ϕX(XN)),ϕY(Y)=(ϕY(Y1),...,ϕY(YN))

变换后的 ϕX(X)ϕY(Y) 均为n x N维矩阵。之后和线性CCA类似,我们希望找到两个n维向量 wX,wY ,使得 u=wTXϕX(X) v=wTYϕY(Y) 相关系数 ρ 最大。

XY 上定义核矩阵 KXKY(N×N) 如下:
KX(i,j)=KX(Xi,Xj)=ϕX(Xi)TϕX(Xj),KY(i,j)=KY(Yi,Yj)=ϕY(Yi)TϕY(Yj)

该问题可以转化为一个优化问题:
L(wX,wY,λX,λY)=αTMαλX2αTLαλY2βTNβ

其中:
M=1NKTXJKY

L=1NKTXJKX+ηKX

N=1NKTYJKY+ηKY

J=I11T

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)

则有:
u=wTXϕX(X)=Ni=1αiϕX(Xi)TϕX(X) (2.1)

v=wTYϕY(Y)=Ni=1βiϕY(Yi)TϕY(Y) (2.2)

具体的KCCA实现步骤如下:
(1)由样本X、Y以及核函数 K(x,z) 的定义计算核矩阵 KXKY
高斯核函数为:
K(x,z)=exz22σ2

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

L1MN1MTα=λ2α

N1MTL1Mβ=λ2β

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

u=Ni=1αiKX(Xi,X)

v=Ni=1βiKY(Yi,Y)

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

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值