什麼是特徵向量,特徵值,矩陣分解
我們先考察一種線性變化,例如x,y坐標系的橢圓方程可以寫為x^2/a^2+y^2/b^2=1,那麼坐標系關於原點做旋轉以後,橢圓方程就要發生變換。我們可以把原坐標系的(x,y)乘以一個矩陣,得到一個新的(x',y')的表示形式,寫為算子的形式就是(x,y)*M=(x',y')。這裡的矩陣M代表一種線性變換:拉伸,平移,旋轉。那麼,有沒有什麼樣的線性變換b(b是一個向量),使得變換後的結果,看起來和讓(x,y)*b像是一個數b乘以了一個數字m*b?換句話說,有沒有這樣的矢量b,使得矩陣A*b這樣的線性變換相當於A在矢量b上面的投影m*b?如果有,那麼b就是A的一個特徵向量,m就是對應的一個特徵值。一個矩陣的特徵向量可以有很多個。特徵值可以用特徵方程求出,特徵向量可以有特徵值對應的方程組通解求出,反過來也一樣。例如,設A為3階實對稱矩陣,a1=(a,-a,1)T是Ax=0的解,a2=(a,1,-a)T是(A+E)x=0的解,a≠2,則常數a=?因為a1=(a,-a,1)T是Ax=0的解,說明a1=(a,-a,1)T是A的屬於0的特徵向量,a2=(a,1,-a)T是(A+E)x=0的解,說明a2=(a,1,-a)T是A的屬於-1的特徵向量。實對稱矩陣屬於不同特徵值的特徵向量式正交的,所以a^2-a-a=0,a≠2,所以a=0。
還是太抽象了,具體的說,求特徵向量的關係,就是把矩陣A所代表的空間,進行正交分解,使得A的向量集合可以表示為每個向量a在各個特徵向量上面的投影長度。例如A是m*n的矩陣,n<m,那麼特徵向量就是m個(因為秩最大是m),n個行向量在每個特徵向量E上面有投影,其特徵值v就是權重。那麼每個行向量現在就可以寫為Vn=(E1*v1n,E2*v2n...Em*vmn),矩陣變成了方陣。如果矩陣的秩更小,矩陣的存儲還可以壓縮。再:由於這些投影的大小代表了A在特徵空間各個分量的投影,那麼我們可以使用最小2乘法,求出投影能量最大的那些分量,而把剩下的分量去掉,這樣最大限度地保存了矩陣代表的信息,同時可以大大降低矩陣需要存儲的維度,簡稱PCA方法。
舉個例子,對於x,y平面上的一個點(x,y),我對它作線性變換,(x,y)*[1,0;0,-1],分號代表矩陣的換行,那麼得到的結果就是(x,-y),這個線性變換相當於關於橫軸x做鏡像。我們可以求出矩陣[1,0;0,-1]的特徵向量有兩個,[1,0]和[0,1],也就是x軸和y軸。什麼意思呢?在x軸上的投影,經過這個線性變換,沒有改變。在y軸上的投影,乘以了幅度係數-1,並沒有發生旋轉。兩個特徵向量說明了這個線性變換矩陣對於x軸和y軸這兩個正交基是線性不變的。對於其他的線性變換矩陣,我們也可以找到類似的,N個對稱軸,變換後的結果,關於這N個對稱軸線性不變。這N個對稱軸就是線性變換A的N個特徵向量。這就是特徵向量的物理含義所在。所以,矩陣A等價於線性變換A。
對於實際應用的矩陣算法中,經常需要求矩陣的逆:當矩陣不是方陣的時候,無解,這是需要用到奇異值分解的辦法,也就是A=PSQ,P和Q是互逆的矩陣,而S是一個方陣,然後就可以求出偽逆的值。同時,A=PSQ可以用來降低A的存儲維度,只要P是一個是瘦長形矩陣,Q是寬扁型矩陣。對於A非常大的情況可以降低存儲量好幾個數量級。
特徵向量有什麼具體的物理意義?例如一個駐波通過一條繩子,繩子上面的每個點組成一個無窮維的向量,這個向量的特徵向量就是特徵函數sin(t),因為是時變的,就成了特徵函數。每個點特徵值就是每個點在特定時刻的sin(x+t)取值。再如,從太空中某個角度看地球自轉,雖然每個景物的坐標在不斷的變換,但是這種變換關於地球的自傳軸有對稱性,也就是關於此軸的平移和拉伸的坐標變換不敏感。所以地球自轉軸,是地球自轉這種空間變換的一個特徵向量。Google的PageRank,就是對www連結關係的修正鄰接矩陣的,主要特徵向量的投影分量,給出了頁面平分。有什麼特性呢?AB和BA有相同的特徵向量----設AB的特徵向量為x,對應的特徵值為b,則有(AB)x =bx,將上式兩邊左乘矩陣B,得B(AB)x = (BA)(Bx) =b(Bx),故b為BA的特徵值,對應的特徵向量為Bx。反之亦然。
什麼是特徵矩陣和特徵值?我們用整體論來考慮,假設P(A)=(1,2,3)是A的3個特徵向量。那麼P(A^2)就是(1^2,2^2,3^2),P可以看作是一種算子。當然,算子的特性是需要用部分/細節詳細證明的。一旦證明,就可以作為整體的特徵。特徵值有什麼特性?說明矩陣可以分解成N維特徵向量的投影上面,這N個特徵值就是各個投影方向上的長度。由於n*n矩陣A可以投影在一個正交向量空間裡面,那麼任何N維特徵向量組成的矩陣都可以是線性投影變換矩陣,那麼I就是一個同用的線性變換投影矩陣。所以對於特徵值m,一定有是夠成了一個沒有線性無關向量的矩陣Aa=ma兩邊同乘以I得到Aa=maI,所以(A-mI)a=0有非0解,那麼|A-mI|=0(可以用反正法,如果這個行列式不是0,那麼N個向量線性無關,在N維空間中只能相交於原點,不可能有非0解)。所以可以推出一些很有用的性質,例如A=[1/2,1,1;0,1/3,1;0,0,1/5],那麼只要滿足|A-mI|=0的值就是特徵值,顯然特徵值數組立即可以得到(1/2,1/3,1/5)。一個n*n的矩陣A,秩=1,那麼最大線性無關組=1組,特徵向量=1個,任意n維非零向量都是A的特徵向量。特徵向量本身不是定死的,這就好比坐標系可以旋轉一樣。一旦特徵向量的各個方向確定了,那麼特徵值向量也就確定了。求特徵值的過程就是用特徵方程:|A-mE|=0,P(1/A)=1/P(A),可以證明。有什麼物理含義呢?一個N維線性無關的向量,去掉其中的一維,那麼就有至少兩個向量是線性相關的了,所以行列式=0。特徵矩陣有什麼作用?把矩陣變化為正定矩陣,也就是A=P^-1BP,這樣的變換,A是對角陣。
線性代數的研究,是把向量和矩陣作為一個整體,從部分的性質出發,推到出整體的性質,再由整體的性質得到各種應用和物理上的概念。當矩陣A是一個符號的時候,它的性質會和實數a有很多相似的地方。科學的定理看起來總是遞歸著的。再舉一個例子,高數的基本概念有微分,積分,倒數,那麼我立刻可以想到中值定理就應該有3個,形式上分別是微分,積分和倒數。
線性變換的缺點:線性變換PCA可以用來處理圖像。如2維的人像識別:
1.我們把圖像A看成矩陣,進一步看成線性變換矩陣,把這個訓練圖像的特徵矩陣求出來(假設取了n個能量最大的特徵向量)。用A乘以這個n個特徵向量,得到一個n維矢量a,也就是A在特徵空間的投影。
2.今後在識別的時候同一類的圖像(例如,來自同一個人的面部照片),認為是A的線性相關圖像,它乘以這個特徵向量,得到n個數字組成的一個矢量b,也就是B在特徵空間的投影。那麼a和b之間的距離就是我們判斷B是不是A的準則。
不過,PCA有天生的缺點,就是線性矢量的相關性考察有"平移無關性"優點的同時,也完全忽略了,2維圖形中,矢量分量之間的順序是有意義的,順序不同可以代表完全不同的信息。還有,就是圖像B必須是A的某種伸縮(由特徵向量空間決定的),才能被很好的投影到A的特徵向量空間裡面,如果B包含了A中的某種旋轉因素,那麼PCA可以徹底失效。所以實際應用中PCA的方法做圖像識別,識別率並不高,它要求圖像有某種嚴格的方向對齊和歸一化。所以PCA一般不用來做直接的特徵提取而是用來做特徵矩陣的降維。當然,降維的結果用於分類並不理想,我們可以進一步做最小二承法拉開類間距離的Fisher變換。但是Fisher變換會引入新的弱點,那就是對於訓練類別的數據變得更敏感了,分類效果上升的代價是通用性下降,當類型數量急劇膨脹的時候,分類效果的函數仍然是直線下降的----但是還是比直接PCA的分類效果好得多。
K-L變換是PCA的一個應用形式。假設圖像類型C有N個圖像,那麼把每個圖像拉直成一個向量,N個圖像的向量組成一個矩陣,求矩陣的特徵向量(列向量)。那麼用原來的N個圖像乘以這些列向量求出平均值,就是我們的特徵圖像。可以看到特徵圖像和原圖像有相似的地方,但是去掉了和拉伸,平移相關的一些形變信息。在得到了魯棒性的同時,犧牲了很多精確性。所以它比較適合特定範圍圖像的Verification工作,也就是判斷圖像P是不是屬於類型C。對比一下神經網絡:說白了把函數y=f(x)的映射,變成了[y]=[f(x)]的向量映射。輸入輸出的點(entry)是固定的。而真實的神經系統,並沒有明顯的內部處理和外部接口的區分。所以所有的神經網絡理論,名字上是神經網絡,實質上,差得很遠。
最後:什麼是"譜"(Spectrum)?我們知道音樂是一個動態的過程,但是樂譜卻是在紙上的,靜態的存在。對於數學分析工具,研究時變函數的工具,可以研究傅立葉變換對應的頻率譜;對於概率問題,雖然每次投色子的結果不一樣,但是可以求出概率分布的功率譜密度。數學作為一種形上學工具,研究的重點,就是這個變化世界當中那些不變的規律。