2014年7月25日 星期五

Eigenvector 的 2D 幾何物理意義

eigenvalue / eigenvector  相較於線性轉換或座標轉換而言, 其物理意義是較為抽象且不同應用有不同的物理意義.

會回過來看這個東西是因為最近又看到它了,由於工作應用幾乎不會用到它的特性, 因此重新見到它時, 只能滿臉疑惑的看著這名字熟析, 但不知道能做什麼的東西...

這邊寫一下回顧的心得與對它的觀點, 在回顧的過程中, 為了深入理解物理意義, 線性代數基本定理上都忘光了, 因此看的很辛苦. 不過也透徹了一些小小道理.

[數學模組]



白話來說, 就是一個線性轉換, 可能會存在一向量, 該向量經過該線性轉換得到的結果只有縮放, 沒有旋轉. 該向量即為 eigenvector, 而縮放的大小, 就是 eigenvalue.

[向量的移動] 

在看特徵向量之前, 先了解2維向量經過一矩陣線性轉換後, 對圖形會有什麼變化
這個轉換我們可以想像成一股力量迫使原本的向量改變的他們的位置移動到新的位置上
2x2 矩陣的移動可以簡單的想像是由四種基本力量結合在一起所產生, 分別為

1. 水平軸的水平力量

 
當為正能量, 該力量在 x > 0 往右拉, 在 x < 0 往左拉, 力量成線性變化, 也就是該力量越往在 x = 0 (y 軸上) 會越小, 當再 x = 0 時會沒有這股力量, 可參考上圖


當為負能量, 該力量在 x > 0 往左推, 在 x < 0 往右推, 也就是正能量箭頭反向後的結果.

2. 水平軸的垂直力量



當為正能量, 該力量在 x > 0 往上, 在 x < 0 往下, 力量成線性變化, 也就是該力量越往在 x = 0 (y 軸上) 會越小, 當再 x = 0 時會沒有這股力量, 可參考上圖

當為負能量, 該力量在 x > 0 往下, 在 x < 0 往上, 也就是正能量箭頭反向後的結果.


3. 垂直軸的垂直力量



當為正能量, 該力量在 y > 0 往上拉, 在 y < 0 往下拉, 力量成線性變化, 也就是該力量越往在 y = 0 (x 軸上) 會越小, 當再 y = 0 時會沒有這股力量, 可參考上圖

當為負能量, 該力量在 y > 0 往下推, 在 y < 0 往上推, 也就是正能量箭頭反向後的結果.

4. 垂直軸的水平力量



當為正能量, 該力量在 y > 0 往右, 在 y < 0 往左, 力量成線性變化, 也就是該力量越往在 y = 0 (x 軸上) 會越小, 當再 y = 0 時會沒有這股力量, 可參考上圖

當為負能量, 該力量在 y > 0 往左, 在 y < 0 往右, 也就是正能量箭頭反向後的結果.

其實該力量用2維陣列表示就是長這個樣子

| 水平軸的水平力量    垂直軸的水平力量 |
| 水平軸的垂直力量    垂直軸的垂直力量 |

了解力量的特性後, 還有一個假設, 我們要假設原點有股力量會將分布在座標上的點往圓心方向拉, 該力量為



因此, 當要維持目前座標上所有點的位置, 需要有一股基本力量來維持, 也就是




因此移動向量會是施與的力量減去往原點的力量, 施予力量



其移動力量為



因此, 當矩陣為基本的力量時, 移動向量會是 0 (矩陣向量不變).

[變換基本行為]

所有的2維線性轉換向量移動方式, 皆由上面四大基本力量所組成

舉例來說, 另線性轉換矩陣為

, 其移動向量為 

四個基本移動向量對應到九個位置

 (-1, 1), (0, 1), (1, 1), (-1, 0), (0, 0), (1, 0), (-1, -1), (0, -1), (1, -1)

用圖形表示該矩陣

左上灰色為水平軸的水平移動量
右上藍色為垂直軸的水平移動量
左下綠色為水平軸的垂直移動量
右下紅色為垂直軸的垂直移動量




相加後得到



所有 2x2 線性變換, 其整體行為可以分成兩大類

  1. 無整體旋轉行為
  2. 有整體旋轉行為
所謂的旋轉是該點會有一股位移力量, 該力量可分解為該點至圓心的線, 與垂直於該線之方向, 垂直於該線之方向若移動的力量非零,則對該點產生旋轉, 如果每個點相對的旋轉方向(順時針或逆時針) 皆相同, 那麼就有整體旋轉的行為存在, 否則只有個體旋轉的情形無整體旋轉之行為.



因為變化為線性, 無整體旋轉行為在旋轉方向是區段不同的, 在兩個不同的旋轉方向之間,  必定存在至少一個向量旋轉能量為 0, 而不會旋轉的向量, 就是所謂的特徵向量

旋轉的例子為



 

最後的移動量為


可以看出, 所有點都具有逆時針旋轉的移動方向, 故不會存在任一位置向量不具旋轉特性, 這種矩陣, 因不存在不具旋轉特性的向量, 即無實數的特徵向量

[其他特徵值物理意義]

影像處理 :

以圖形來理解物理意義是最好的方法, 因此都用 2 維矩陣來做說明.

以影像的角度來看, 當影像經過一線性轉換 (旋轉/縮放), 若有方向不受到改變的就是 eigenvector

單位圓 :

與其用影像變化的角度來看, 用單位圓的變化來看會更直接, 因為單位圓有個特色就是從圓心到圓上的所有向量大小都為 1,單位圓的線性變化, 會實實在在的反應出該線性轉換帶給各角度向量旋轉與縮放的力道.

單位圓經過線性轉換是什麼變化, 其實就是從圓, 變成(斜)橢圓

可參考
由椭圆矩阵表达式获取到单位圆的线性变换
圆与椭圆之间“隔着”一个矩阵

因此, 我們可以從單位圓, 跟橢圓之間向量方向的變化, 來找出當相同(或相反)方向時的向量, 即為特徵向量.

假設單位元經過一向量 進行線性轉換



藍色的圓為半徑 =1 的單位圓, 綠色為經過轉換的斜橢圓, 可以得知當 (x,y)T = [1, 0]T(藍色) 經轉換變成 [1, 0.3]T(綠色)



當 (x,y)T = [0, 1]T(藍色) 經轉換變成 [0.5, 1]T(綠色)

可以知道, 當藍色的指針, 從上圖的位置, 逆時鍾掃到下圖的位置,  綠色指針也進行一樣的動作, 可以理解到, 在這中間過程中, 必定有藍色與綠色指針(向量) 重疊的時刻



當藍綠重疊的位置之單位圓上的座標向量,為特徵向量, 而橢圓上位置距離圓心的距離則為特徵值.

 以這個例子來說,藍綠指針在逆時針往下走下去又會再重疊一次, 重疊位置在淡藍色的細線上,同理可以得知其特徵向量與值, 這表示該線性轉換 A 有兩個特徵向量.

[延伸特性]

得知特徵向量在單位圓上的物理意義後, 我們換個角度來看特徵向量與特徵值對於線性轉換的貢獻在哪邊.

在此之前先回顧一下縮放的物理意義, 令轉換矩陣



這表示對 x 軸方向進行 倍的縮放, 對 y 軸進行倍的縮放. 可以想像一下有個無形的手, 對著單位圓牢牢抓住 x 軸與 y 軸, 然後用力拉(擠)到長度上, 由於 x, y 軸為失力點, 失力方向平於於兩軸, 此時 x, y 軸上的向量方向不會有任何改變.因為 x , y 軸的向量角度不變, 可以得知特徵向量位於於 x, y 軸上.

換句話說, 如果有一股力量延某個方向通過圓心拉扯或擠壓單位圓, 這股力量的方向就是特徵向量, 力量的強度就是特徵值.



然而任意矩陣 A 可以被拆解為多個矩陣相乘的多個組合, 也就是 A 的轉換動作可以被切割成好幾個動作完成, 我們讓其中一個動作包含上述特定方向通過圓心的方式拉扯擠壓的動作, 可以將 A 轉換矩陣拆解出與特徵向量有關的動作.

 

當 v 可 inverse, 同乘 inv(v)得



其物理意義可以如此解釋, 一線性轉換 A , 可拆解為下列動作來完成
  1.  : 座標轉換成特徵向量座標為基底的座標
  2.    : 對座標轉換後, 基底為特徵向量的 x y 軸進行縮放的動作
  3.    :  = , 從原本特徵向量的基底再轉回正常的基底

第3項要說直接做 的線性轉換也可以. 不過解釋為座標轉換會比較好想像上面說說特徵向量方向不變的道理. 因為座標轉換的物理意義是,實際的點的位置從來沒移動過, 而線性轉換是點的實際位置變掉了.

舉例 ,



   = 0.4059     = 2.0941

第一步, 如下圖將單位圓座標轉換到 座標上, 也就是進行 線性轉換
如下圖, 因為做過座標轉換, 所以實際上看到的 [1, 0] 是原本的 [0.998, -0.0626]
而 [0, 1] 則是 [0.6853, 0.7283]
要注意的是, 因為在這僅進行座標轉換, 所以原本的單位圓還是在同一個位置
因此, 就算在這看起起來整個圓都已經變形或被旋轉到, 都無所謂, 因為最後一步轉回原座標系統會抵消這裡發生的動作.




第二步, 如下圖在這對座標轉換過去的 x, y 軸方向進行拉伸或推擠的動作
力道為特徵值
需注意因座標系統不同, 相對於原本的座標系統, 其實是在對特徵向量方向進行
以我們定義的物理意義邏輯來看, 只有這裡這個動作會改變單位圓點的位置.




最後,如下圖再進行一次座標轉換, 回到原本的座標系統



我們可以說當 A 有特徵向量 ,將有一股力量在特徵向量方向施力, 且不會有包含整體的旋轉力量就可以完成 A 的動作.

[橢圓]

之前提到, 單位圓 C 經線性轉換 A 可變成斜橢圓 E
實際上如果要達到相同於 E 形狀的橢圓, 不只矩陣 A 辦的到. 可能存在很多矩陣都能做到
不過雖然形狀相同, 但每個點對應到單位圓的方式可是不同的~

其中也包含兩特徵向量為正交 (單位矩陣) 的案例, 當特徵向量為正交, 由前面的拆解說明來看,
因特徵向量正交, 第一步的座標轉換動作只會做到旋轉, 並不會使單位圓有原本範例變形的情況, 然後對 x, y 軸拉擠, 最後旋轉回原本座標, 因正交, 最後的動作也是單純的旋轉.

可以發現上述的動作, 其拉擠的方向會是橢圓最長與最短之處, 也就是在特徵向量正交的前提下, 其特徵向量與特徵值, 將會等於橢圓長短軸方向與大小.

[SVD]

前面提到, 當實數 v 為實數 A 特徵向量, 可將 A 拆解為
 

這種拆解方式, v 不一定正交
如果兩特徵向量正交, 知道特徵向量與值後, 可以很簡單的知道單位圓經過 A 的形狀, 因為特徵向量即為橢圓的長短軸.

另外 SVD可將的實數矩陣拆解式改為正交型態



其中 u v 為正交矩陣, u 不一定等於 v, 雖然符合跟前面相同, 但需注意的是這裡的 v 當 u 不等於 v 就不是 A 的特徵向量了. 至於 u, v 怎麼解請參考 wiki SVD

若能將 u 分解為 rv, 因為 u , r , v 都是正交單位為 1 的矩陣, 所以可以看成 u 的旋轉角度 = r 的旋轉角度 + v 的旋轉角度


可以看到, A 矩陣的表示可以解讀為,對某正交的特徵向量 v 的方向縮放成橢圓, 再轉 r 的角度.

可以得知, 任何橢圓都可以透過對任意正交的兩方向作縮放動作, 在旋轉獲得. 然而當正交的 v 向量, 轉變為橢圓後, 還要在經過一個角度的旋轉, 該 v 並非 A 的特徵向量.

任何實數 A 對單位圓的線性變化為橢圓, 我們可以說

  • 該橢圓可直接用任意兩向量方向的力量拉擠出來, 並且旋轉得到 (沒什麼特殊意義)
  • 若橢圓可直接用兩向量方向的力量拉擠出來 , 而旋轉角度為 0, 該向量為特徵向量, 但這兩股力量不一定正交 (特徵向量的物理意義)
  • 該橢圓可直接用兩正交向量方向的力量拉擠出來, 並且旋轉得到, 這種做法可以很簡單直覺的畫出經過 A 的橢圓樣貌 (SVD物理意義)
SVD 的最大用途是化簡多維矩陣的運算, 對於幾何表現來說也是簡化其幾何行為, 也就是, 若對橢圓的施力並非正交, 實際上是很難直覺的精確的畫出該橢圓的形狀的 (長短軸在哪不清楚), 若以 SVD 的形式存在, 可以根據特徵值, 特徵向量, 最後的旋轉角度, 直接畫出該橢圓的樣子.



Recap 一些重點
  • 特徵向量為正交的線性矩陣 A 其特徵向量與值等於橢圓長短軸半徑.
  • 當 A 為對稱矩陣, 其特徵向量為正交, 固當 A 為對稱矩陣, 可以直接從其特徵向量得知橢圓的長短軸狀態.
  • 當 A非對秤矩陣, 其橢圓長短軸可用其他方式得到, [v, d] = eig(inv(A)'*inv(A)), 橢圓長短軸為 v*(1/sqrt(d))




沒有留言:

張貼留言