• 机器学习: Canonical Correlation Analysis 典型相关分析


    Canonical Correlation Analysis(CCA)典型相关分析也是一种常用的降维算法。我们知道,PCA(Principal Component Analysis) 主分量分析将数据从高维映射到低维空间同时,保证了数据的分散性尽可能地大, 也就是数据的方差或者协方差尽可能大。而LDA(Linear Discriminant Analysis) 线性判别分析则利用了类标签,利用一种监督学习的方法,将数据从高维空间映射到低维空间时,让不同类的数据尽可能地分开而同一类的数据尽可能地聚合。

    但是,有的时候,我们想探讨多个线性空间之间的相关性。比如有的时候我们会从图像中提取各种特征,每一种特征都可以构成一个线性空间,为了分析这些空间之间的相关性,我们可以利用CCA 来做分析。

    假设我们有两个特征空间,S1=x1Rd1, S2=x2Rd2, 我们可以将两个特征向量合并。

    x=(x1x2)E(x)=(μ1μ2)Σ=(Σ11Σ21Σ12Σ22)

    可以看到,Σ12=ΣT21Σ 称为协方差矩阵。我们引入投影向量 a, b, 假设投影之后的变量满足:

    u=aTx1v=bTx2

    可以进一步算出 u,v 的方差和协方差:

    var(u)=aTΣ11a,var(v)=bTΣ2b,cov(u,v)=aTΣ12b

    可以计算出 u,v 的相关系数:

    Corr(u,v)=cov(u,v)var(u)var(v)

    u,v的表达式代入,可以得到:

    Corr(u,v)=aTΣ12baTΣ11abTΣ22b

    我们的目标是让相关系数Corr(u,v) 尽可能地大。为了求解a,b, 可以固定分母而让分子最大化,所以上面的函数可以变成:

    maxa,baTΣ12b

    s.t.aTΣ11a=1,bTΣ22b=1

    构造拉格朗日等式:

    L=aTΣ12bλ12(aTΣ11a1)λ22(bTΣ22b1)

    L 分别对a,b 求导,可以得到:

    La=Σ12bλ1Σ11a=0

    Lb=Σ21aλ2Σ22b=0

    根据约束条件,可以得到:

    λ1=λ2=aTΣ12b

    所以只要求出 λ1 或者 λ2 就可以得到最大的相关系数。令 λ=λ1=λ2.

    通过上面的偏导数,我们可以得到:

    Σ111Σ12b=λa

    Σ122Σ21a=λb

    写成矩阵形式:

    (Σ11100Σ122)(0Σ21Σ120)(ab)=λ(ab)

    令:

    B=(Σ1100Σ22),A=(0Σ21Σ120)w=(ab)
    ,
    那么,上式可以表示成:

    B1Aw=λw

    所以,λw 就是B1A 的特征值和特征向量。我们可以求出 B1A 的特征值和特征向量,然后利用特征向量将原来的特征
    x1,x2做映射。对应特征值 λ 的求解,可以有更简单的方法,从上面的偏导数,我们可以得到如下等式:

    Σ111Σ12Σ122Σ21a=λ2a

    我们可以利用上面的表达式求出 λa,然后再待会上面的偏导数等式求出 b.

    λ 就是 u,v的相关系数,u,v 就是一对典型变量(canonical variables)。按照 B1A 的特征值从大到小排列,可以求出一系列的典型变量。特征值越大,说明典型变量的相关性越强。

    参考来源:
    http://www.cnblogs.com/jerrylead/archive/2011/06/20/2085491.html
    https://en.wikipedia.org/wiki/Canonical_correlation

  • 相关阅读:
    撒谎
    可怜的猪
    GIS学习笔记(五)
    国产木马冰河2.2
    矛盾
    GIS学习笔记(六)
    男人如衣服
    VS2005快捷键大全
    慧悟
    DOS命令
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412497.html
Copyright © 2020-2023  润新知