作者 doom8199 (~口卡口卡 修~) 看板 Math
標題 Re: [線代] eigenvalue和eigenvector的問題
時間 Mon Apr 5 22:52:14 2010
小妹才疏學淺,學過線代但還是有很多不懂
請問對一個矩陣求eigenvalue和eigenvector是代表甚麼意思呢??
沒甚麼意思,就是單純的滿足 ,則
稱作 eigenvector 而相對應的
就稱作 eigenvalue。
用途其實蠻廣的,會有這東西,根據教授修課所述,大致上是因為在以前各個領域在發展的時候,都有用到類似 這玩意兒,只是沒有定義那麼清楚。後來可能有跨領域的學者 or 工程師發現不同的領域,其中間都有用到相似的概念,所以就開始嘗試慢慢去統合一個比較有系統的工具 or 概念,被大家所認可後就使用這套方法。像是 DFT、Wavelet Transform 的誕生都是差不多的。
至於詳細發展成因我不是很清楚 = =ll 反正等你接觸到比較專精的領域後你自然就會對 “它" 有一套看法了,目前就當作是一個工具學下來。
那Principal component analysis (PCA)
對一個covariance matrix求eigenvalue和eigenvector的物理意義是甚麼??
為什麼要這麼做呢??
所謂的物理就是嘗試用數學語言描述大自然的現象,PCA 是一套工具,你要我用自然現象來闡述一套工具,我想像力沒那麼豐富 OTZ,但我可以大概說一下 PCA 在做啥。
假設我有一堆 Data 要儲存,若嫌記憶容量太大,一般的作法就是找一些函數來 perfect match 這些 data,然後吾人只要記憶函數的係數 & index 即可。以後要叫出這些 Data,就只需要拿記憶好的函數,做些線性 or 非線性的組合兜出來。
用線性代數的說法,我們嘗試找出這一群 Data 的最小 Dimension,再設法找出相對應的 Basis,那我們所需要儲存的東西,就是基底向量 & 每個 Data 所相對應的 座標。
以上的作法是 lossless 的儲存法,但有時候可能會有一群 Data,假設有 10000 筆資料型態非常接近,偏偏有 5~6 筆資料很 “不合群",造成為了要完整記錄這些資料,所需要記錄的基底向量數變很多。若將這些不合群的資料給剔除,發現所需要記錄的基底向量數就會降低。不過 PCA 的做法更聰明,它並非是剔除資料,而是 “降低 Dimension " 來儲存資料。
至於 PCA 中間為何要求 Covariance Matrix 的 eigenvalue & eigenvector?主要是因為 Covariance Matrix 它是描述這些資料的機率分布情況。求出來的 eigenvector,其實就代表上述所說的基底向量,若相對應的 eigenvalue 大,代表這一群 Data 相對於該 eigenvector 這個比重來說 “很重要"。反之 eigenvalue 小,那相對應的 eigenvector 對這些資料來說就沒那麼重要了,所以可 “省去不記憶"。
這樣做雖然是 lossy 的作法,但記憶量卻可大幅降低。例如有一張圖片,你把圖片上的 pixel 給 “span" 開來,發現這些資料的 Dimension 是 30 (我隨便假設 = =),表示每個 pixel 你都需要記錄其座標: 相對應的座標基底向量為:
。 若你發現最主要的成分是
,而將其他的座標成分都剔除,那每個 pixel 變成只需要記錄:
,整個記憶量將會大幅降低大約 10 倍 (以這例子來說),且 SNR 值還不錯高!
–
※ 發信站: 批踢踢實業坊(ptt.cc)◆ From: 140.113.141.151



