特徵向量/特徵值/協方差矩陣/相關/正交/獨立/主成分分析/PCA/

一隻勤奮愛思考的豬發表於2018-08-14

參考:
http://deeplearning.stanford.edu/wiki/index.php/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90

http://deeplearning.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96

對於一個二維資料(在x軸上有一個分佈;在y軸上對應也有一個分佈),要想提取他們的主成分,需要先將資料去除相關性(參考相關性(皮爾遜相關係數)的定義,例如:在x軸上的分佈於在y軸上的分佈一致時,相關係數為1,注意相關性的定義,
下面介紹相關性、獨立、正交三個基本概念:
(1)相關性、獨立、正交
不相關:E[X(t)Y(t)]=E[X(t)]E(Y(t)] ;相關即是:E[X(t)Y(t)] != E[X(t)]E(Y(t)]
獨立: F(x,Y)=F(x)F(Y)
正交:E[X(t)Y(t)]=0
可以看出,E[X(t)Y(t)]=0並不代表是不相關;
獨立一定不相關;
高斯過程中,不相關不一定獨立 ;
對於均值為零的高斯隨機變數,“獨立”和“不相關”等價的;
假設X為一個隨機過程,則在t1和t2時刻的隨機變數的相關定義如下(兩個隨機過程一樣),:
(1)定義Rx(t1,t2)=E{X(t1)X(t2)}為相關函式,若R=0,稱正交(注意,相關函式為0,不是不相關,而是正交)。正交不僅僅描述確定函式之間的關係,也用以描述隨機過程。兩個隨機過程X(t) Y(t)正交,即E[X(t)Y(t)]=0, 若E[X(t)Y(t)]=E[X(t)]E(Y(t)]說明兩者不相關。不相關和相互獨立一般不等價,只有當過程為高斯過程時才成立。
(2)定義Kx(t1,t2)=E{[X(t1)-Mx(t1)][X(t2)-Mx(t2)]}為協方差函式,若K=0,即相關係數為0,則稱之為不相關;不相關只是說二者沒有線形關係,但並不代表沒有任何關係。
(3)獨立性。就用他們的概率分佈函式或密度來表達。聯合分佈等於他們各自分佈的乘積,獨立的定義是 F(x,Y)=F(x)F(Y),就稱獨立。

對於普通分佈,不相關不一定正交,但很可能介於正交與相關為之間,即E[X(t)Y(t)] != E[X(t)]E(Y(t)]滿足,只要兩者有可能存在相關,就表明資料有冗餘,因此需要去除相關性;)
(2)降低資料的相關性
我們知道一個二維資料(在x軸上有一個分佈–對應維度x;在y軸上對應也有一個分佈-對應維度y),分別研究它在這兩個維度上的分佈:比如在維度x上的資料就是一組一維資料,可以研究它的均值和方差;同理,對維度y也是,可以研究它的均值和方差;而要看他們是否有相關性,則需要借鑑皮爾遜相關係數求相關係數公式,可以看出,皮爾遜相關係數分子對應的是維度x和維度y的協方差,因此,要看兩個維度的相關性,並且要減少相關性;
皮爾遜相關係數

要降低相關性,其本質就是減少冗餘,即降低了資料的維度,即原來資料需要用幾百維來表示,現在只需要幾十位表示;最經典的就是:主成分分析,它降低了資料各維度的相關性,實現降維;降維的思路:
首先,需要引入特徵值和特徵向量的概念。
A為n階矩陣,若數λ和n維非0列向量x滿足Ax=λx,那麼數λ稱為A的特徵值,x稱為A的對應於特徵值λ的特徵向量。式Ax=λx也可寫成( A-λE)x=0,並且|λE-A|叫做A 的特徵多項式。當特徵多項式等於0的時候,稱為A的特徵方程,特徵方程是一個齊次線性方程組,求解特徵值的過程其實就是求解特徵方程的解。
上述n維非0列向量即表示x有n列,n列對應n維(明確x的形式);

因此,我們知道對於一個矩陣A,矩陣A中有n列對應n維資料,我們可以將它轉化為特徵值*特徵向量的形式;其幾何意義就是:特徵向量對應資料在座標軸中的方向,特徵值對應資料在座標軸中的長度;明白了這一點,我們針對一個二維資料(在x軸上有一個分佈–對應維度x;在y軸上對應也有一個分佈-對應維度y),我們只需要計算協方差矩陣(為什麼不是原始二維資料作為矩陣???因為原始資料不能反映出維度x與維度y之間的相關值等情況,需要做運算轉化成協方差矩陣,此處也可以想象一下協方差矩陣的定義,主對角線是自己與自己的內積,除主對角線之外是自己與非自己的內積–即維度之間的相關性),通過對協方差矩陣進行計算特徵值與特徵向量,得到特徵向量為U:
這裡寫圖片描述
這裡寫圖片描述

上述特徵向量U是通過資料的協方差矩陣計算得到的,可理解為協方差矩陣是一種反映資料維度與維度之間關係的矩陣,那麼特徵向量即是表明維度與維度之間關係的向量,通過U對原來資料進行變換–即進行投影,則可以實現對原始資料進行去相關處理,可以取變換的前K個最大特徵值對應特徵向量的變換作為對原始資料處理的結果,因為後面幾乎很小,接近於0,因此,可以忽略;;;
當然,由於U是特徵向量,一般來說,U也是正交向量,因此滿足UU^T=U^TU=I;
因此,要還原原始資料也很容易,直接在變換後資料前面再乘以一個U,就可以實現還原;
(3)白化處理
需求:
我們已經瞭解瞭如何使用PCA降低資料維度。在一些演算法中還需要一個與之相關的預處理步驟,這個預處理過程稱為白化(一些文獻中也叫sphering)。舉例來說,假設訓練資料是影像,由於影像中相鄰畫素之間具有很強的相關性,所以用於訓練時輸入是冗餘的。白化的目的就是降低輸入的冗餘性;更正式的說,我們希望通過白化過程使得學習演算法的輸入具有如下性質:(i)特徵之間相關性較低;(ii)所有特徵具有相同的方差。
(i)特徵之間相關性較低;
我們知道,通過前面的降低相關性變換,變換後的x對應求得的協方差矩陣形如:
這裡寫圖片描述
例如,上式是原始資料變換後求得的協方差矩陣,可以看到副對角線為0,因此,已經滿足特徵之間相關性較低了;下面看主對角線,與下面的要求有關:

(ii)所有特徵具有相同的方差
要使所有特徵具有相同方差,即是保證協方差矩陣中的主對角線的元素為1,又因為主對角線元素大小正式特徵值,因此,可以通過對主對角線元素除以特徵值相關因子使其變為1;從而實現所有特徵值具有相同的方差;
這裡寫圖片描述
這一過程得到的X稱為主成分白化;
後面還有ZCA 白化;;

錯誤的思路
要降低相關性:需要從兩個方面著手:
(1)減小維度x與維度y的協方差值(使副對角線為0);最好使的其協方差成為單位矩陣,這是理想情況,我們知道對於單位矩陣的特徵值與特徵向量(特徵值為1,特徵向量為每個維度上的單位正交向量,比如二維單位矩陣的特徵向量為:[1,0]或者[0,1]),現在利用將單位矩陣分解成兩個正交矩陣,利用正交矩陣對資料進行變換,實現我們的目的,使得變換後的矩陣滿足協方差矩陣副對角線為0;

推導過程:

(2)j

相關文章