图像处理之基础---特征向量的 几何意义
特征向量的幾何意義
?
長時間以來一直不了解矩陣的特征值和特征向量到底有何意義(估計很多兄弟有同樣感受)。知道它的數學公式,但卻找不出它的幾何含義,教科書里沒有真正地把這一概念從各種角度實例化地進行講解,只是一天到晚地列公式玩理論——有個屁用啊。
根據特征向量數學公式定義,矩陣乘以一個向量的結果仍是同維數的一個向量,因此,矩陣乘法對應了一個變換,把一個向量變成同維數的另一個向量,那么變換的效果是什么呢?這當然與方陣的構造有密切關系,比如可以取適當的二維方陣,使得這個變換的效果就是將平面上的二維向量逆時針旋轉30度,這時我們可以問一個問題,有沒有向量在這個變換下不改變方向呢?可以想一下,除了零向量,沒有其他向量可以在平面上旋轉30度而不改變方向的,所以這個變換對應的矩陣(或者說這個變換自身)沒有特征向量(注意:特征向量不能是零向量),所以一個特定的變換特征向量是這樣一種向量,它經過這種特定的變換后保持方向不變,只是進行長度上的伸縮而已(再想想特征向量的原始定義Ax=cx, cx是方陣A對向量x進行變換后的結果,但顯然cx和x的方向相同)。
這里給出一個特征向量的簡單例子,比如平面上的一個變換,把一個向量關于橫軸做鏡像對稱變換,即保持一個向量的橫坐標不變,但縱坐標取相反數,把這個變換表示為矩陣就是[1 0;0 -1](分號表示換行),顯然[1 0;0 -1]*[a b]'=[a -b]'(上標'表示取轉置),這正是我們想要的效果,那么現在可以猜一下了,這個矩陣的特征向量是什么?想想什么向量在這個變換下保持方向不變,顯然,橫軸上的向量在這個變換下保持方向不變(記住這個變換是鏡像對稱變換,那鏡子表面上(橫軸上)的向量當然不會變化),所以可以直接猜測其特征向量是[a 0]'(a不為0),還有其他的嗎?有,那就是縱軸上的向量,這時經過變換后,其方向反向,但仍在同一條軸上,所以也被認為是方向沒有變化,所以[0 b]'(b不為0)也是其特征向量。
綜上,特征值只不過反映了特征向量在變換時的伸縮倍數而已,對一個變換而言,特征向量指明的方向才是很重要的,特征值似乎不是那么重要;但是,當我們引用了Spectral theorem(譜定律)的時候,情況就不一樣了。
Spectral theorem的核心內容如下:一個線性變換(用矩陣乘法表示)可表示為它的所有的特征向量的一個線性組合,其中的線性系數就是每一個向量對應的特征值,寫成公式就是:
?
從這里我們可以看出,一個變換(矩陣)可由它的所有特征向量完全表示,而每一個向量所對應的特征值,就代表了矩陣在這一向量上的貢獻率——說的通俗一點就是能量(power),至此,特征值翻身做主人,徹底掌握了對特征向量的主動:你所能夠代表這個矩陣的能量高低掌握在我手中,你還吊什么吊?
我們知道,一個變換可由一個矩陣乘法表示,那么一個空間坐標系也可視作一個矩陣,而這個坐標系就可由這個矩陣的所有特征向量表示,用圖來表示的話,可以想象就是一個空間張開的各個坐標角度,這一組向量可以完全表示一個矩陣表示的空間的“特征”,而他們的特征值就表示了各個角度上的能量(可以想象成從各個角度上伸出的長短,越長的軸就越可以代表這個空間,它的“特征”就越強,或者說顯性,而短軸自然就成了隱性特征),因此,通過特征向量/值可以完全描述某一幾何空間這一特點,使得特征向量與特征值在幾何(特別是空間幾何)及其應用中得以發揮。
關于特征向量(特別是特征值)的應用實在是太多太多,近的比如俺曾經提到過的PCA方法,選取特征值最高的k個特征向量來表示一個矩陣,從而達到降維分析+特征顯示的方法;近的比如Google公司的成名作PageRank,也是通過計算一個用矩陣表示的圖(這個圖代表了整個Web各個網頁“節點”之間的關聯)的特征向量來對每一個節點打“特征值”分;再比如很多人臉識別,數據流模式挖掘分析等方面,都有應用,有興趣的兄弟可以參考IBM的Spiros在VLDB‘ 05,SIGMOD ’06上的幾篇文章。
特征向量不僅在數學上,在物理,材料,力學等方面(應力、應變張量)都能一展拳腳,有老美曾在一本線代書里這樣說過“有振動的地方就有特征值和特征向量”,確實令人肅然起敬+毛骨悚然......
?
?
轉特征值物理含義:
1. 特征的數學意義]
???????我們先考察一種線性變化,例如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非常大的情況可以降低存儲量好幾個數量級。
[2. 物理意義]
???????特征向量有什么具體的物理意義? 例如一個駐波通過一條繩子,繩子上面的每個點組成一個無窮維的向量,這個向量的特征向量就是特征函數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有很多相似的地方??茖W的定理看起來總是遞歸著的。再舉一個例子,高數的基本概念有微分,積分,倒數,那么我立刻可以想到中值定理就應該有3個,形式上分別是微分,積分和倒數。
????
[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的分類效果好得多。PCA"主觀"的認為,一個類型的第N+1個矩陣可以由之前已知的[1,N]個矩陣通過拉成向量來線性表出。顯然這只是一個美好的主觀愿望,因為即使新的輸入矩陣是原有矩陣作了一些行列的初等變換如交換等,這種拉直以后的線性表出也可能根本就不存在(2維的PCA同樣無法克服這個客觀不存在的設定),于是,當應用到實際的時候,只能試圖做優化沒,用最小二乘距離來判定,"認為"那個矩陣就是屬于某個分類。由于PCA訓練的特征矩陣是一個類別一個矩陣,這些矩陣構成的子空間之間又無法保證正交,于是投影的結果也不具有根本意義上的分類特性。這個算法是個實用的算法,但是理論上根本就是無解。
???????K-L變換是PCA的一個應用形式。假設圖像類型C有N個圖像,那么把每個圖像拉直成一個向量,N個圖像的向量組成一個矩陣,求矩陣的特征向量(列向量)。那么用原來的N個圖像乘以這些列向量求出平均值,就是我們的特征圖像??梢钥吹教卣鲌D像和原圖像有相似的地方,但是去掉了和拉伸,平移相關的一些形變信息。在得到了魯棒性的同時,犧牲了很多精確性。所以它比較適合特定范圍圖像的Verification工作,也就是判斷圖像P是不是屬于類型C。對比一下神經網絡:說白了把函數y=f(x)的映射,變成了[y]=[f(x)]的向量映射。輸入輸出的點(entry)是固定的。而真實的神經系統,并沒有明顯的內部處理和外部接口的區分。所以所有的神經網絡理論,名字上是神經網絡,實質上,差得很遠。
[4. 關于譜]
???????什么是"譜"(Spectrum)? 我們知道音樂是一個動態的過程,但是樂譜卻是在紙上的,靜態的存在。對于數學分析工具,研究時變函數的工具,可以研究傅立葉變換對應的頻率譜;對于概率問題,雖然每次投色子的結果不一樣,但是可以求出概率分布的功率譜密度。數學作為一種形而上學工具,研究的重點,就是這個變化世界當中那些不變的規律。
[5. 能用于分類嗎]
???????所謂的特征矩陣,就是原矩陣如何與一個x維的數量矩陣相似。Lamda(i)說明了相似投影與一個x維線性空間的第i維坐標軸,Lamda(i)是放縮比例。Lamda(i)之間的順序是不重要的,因為坐標軸之間的交換是初等線性變換,不影響代數拓撲的性質。特征向量xi表明A如何把線性組合投影到一個坐標軸上。所謂的特征向量,就是一組正交基集合。
???????在圖像處理的問題域中,把圖像看成矩陣本身,那么圖像的分類問題就是同類矩陣被認為有相同或者代數近似的"不變量"。顯然,"同類"是一個主觀假設劃定的類,而不是通過計算來"確定"的類。這導致了一個問題,所謂的不同類型,其意義是對于人的主觀理解能力而言,是先驗的,不是通過計算得到的后驗,它本身不代表任何數理邏輯上的可判定信息。如果以矩陣的特征向量或者特征值矩陣作為分類的信息,沒有任何證據能夠避免不同的"類"的矩陣能夠有更加近似的特征值。所謂的矩陣分解方法,類內最小距離方法(Fisher),都有一個令人不愉快地前提,那就是本身就要保證類內的矩陣,其歐式距離足夠小----這個歐式距離的大小往往又和人的幾何拓撲直觀不符)。由于矩陣本身不具有預定義的拓撲學信息,那么同類圖像間歐式距離增加的時候,無法做到良好的分類。同時,圖像的類要分的越多,那么這種子空間之間的交疊現象就越嚴重,及時再去從每個類別的子空間中去尋找線性不變的子空間或者因子,也無法消除這種交疊性----Fisher算法試圖繞過去,但是卻付出了嚴重依賴初始數據的代價和失去通用性的代價。PCA算法試圖在統計的意義上得到最好的分類,但是當類型數目增加的時候,以前的參數就作廢了,根本無法得到有用的計算流程。由于子空間之間的重疊無法解決,于是分類性便持續下降。原因是什么? 就是因為分類本身不是根據線性變換本身的代數特性去得到的,而是先驗的非線性"智慧"的人的判斷。于是,由于二元運算為離散集合作分類,必須在線性空間的正交劃分中進行,導致了邏輯上的不可調和的悖論。非線性的判定是連續的,幾何拓撲的,無窮維德,不可分離變量的,根本就不可建模,于是也就是一個不可判定的問題。
???????那么不用高等代數的思想,實用信號處理的辦法提取局部的特征做比較可以達到分類么? 這個仍然沒有回答"先驗"分類的問題,仍然是在一個糟糕的前提下試圖尋找勉強能用的途徑。如何知道一個矩陣的局部其實對應于另一個矩陣上不同位置的局部呢? 這仍然只是一個主觀的,直覺主義的判定! 計算機不過是紙和筆的變形,它不能理解意義---即使1+1=2這樣的運算結果,它本身也不能判定對錯。如果它咨詢別的計算機來判斷對錯呢----別的計算機又如何能自我證明對錯? 根本不能,必須等到一個主體的"人"來觀察這個結果,這個結果才會變得有意義。于是就像薛定諤的那只貓一樣,她正懶洋洋的曬著太陽沖我微笑呢。形而上學的理論在精妙,也沒有超出經驗主義的牢籠。
???????于是,我便不再需要算法,不再需要哲學。
?
http://blog.csdn.net/xiaojiang0805/article/details/7606222
轉載于:https://www.cnblogs.com/pengkunfan/p/3947126.html
總結
以上是生活随笔為你收集整理的图像处理之基础---特征向量的 几何意义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度CDN与360CDN简单评测,果断选
- 下一篇: Ansible 之 用户管理