method_CCA(canonical correlation analysis)

Canonical Correlation Analysis(CCA)典型相關分析也是一種常用的降維算法。我們知道,PCA(Principal Component Analysis) 主分量分析將數據從高維映射到低維空間同時,保證了數據的分散性儘可能地大, 也就是數據的方差或者協方差儘可能大。而LDA(Linear Discriminant Analysis) 線性判別分析則利用了類標籤,利用一種監督學習的方法,將數據從高維空間映射到低維空間時,讓不同類的數據儘可能地分開而同一類的數據儘可能地聚合。

但是,有的時候,我們想探討多個線性空間之間的相關性。比如有的時候我們會從圖像中提取各種特徵,每一種特徵都可以構成一個線性空間,爲了分析這些空間之間的相關性,我們可以利用CCA 來做分析。

假設我們有兩個特徵空間,(x1x2), 我們可以將兩個特徵向量合併。

x=(x1x2)E(x)=(μ1μ2)Σ=(Σ11Σ21Σ12Σ22)(Σ11Σ21Σ12Σ22)
\mathbf{x} =
\quad E(\mathbf{x}) =
(μ1μ2)
[Math Processing Error] \quad \Sigma =
[Math Processing Error]

可以看到,Σ12=ΣT21(Σ11100Σ122), 假設投影之後的變量滿足:

u=aTx1v=bTx2(Σ1100Σ22)

可以進一步算出 u,v(0Σ21Σ120) 的方差和協方差:

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), 可以固定分母而讓分子最大化,所以上面的函數可以變成:

maxa,baTΣ12b

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

構造拉格朗日等式:

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

L 求導,可以得到:

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

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

根據約束條件,可以得到:

λ1=λ2=aTΣ12b

所以只要求出 λ1.

通過上面的偏導數,我們可以得到:

Σ111Σ12b=λa

Σ122Σ21a=λb

寫成矩陣形式:

(Σ11100Σ122)(0Σ21Σ120)(ab)=λ(ab)
[Math Processing Error]
(0Σ21Σ120)
[Math Processing Error]
(ab)
[Math Processing Error] =\lambda
(ab)
[Math Processing Error]

令:

B=(Σ1100Σ22),A=(0Σ21Σ120)w=(ab)
B=
[Math Processing Error] , \quad A=
[Math Processing Error] \quad \mathbf{w}=\begin{pmatrix} \mathbf{a} \\ \mathbf{b} ,
那麼,上式可以表示成:

B1Aw=λw

所以,λ 的特徵值和特徵向量,然後利用特徵向量將原來的特徵
x1,x2 的求解,可以有更簡單的方法,從上面的偏導數,我們可以得到如下等式:

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

我們可以利用上面的表達式求出 λ.

λ 的特徵值從大到小排列,可以求出一系列的典型變量。特徵值越大,說明典型變量的相關性越強。

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

            <link rel="stylesheet" href="http://s.csdnimg.cn/static/markdown/markdown_views.css?v=2.0">
                </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章