若資料的維度太多,人類往往難以理解資料的本質,對此,主成分分析常作為降維的手段;然而,真正的目的並不在於降維,而是透過主成分分析來理解資料於不同維度上的樣貌。

影子遊戲與主要成分

對於高維度(多個變數)的資料,會為了想要可視化、抽取特徵、清理資料(去除雜訊、不相關資訊)等理由,想要減少資料的維度,以便觀察、分析、處理資料。一個簡單的例子就是彩色圖片轉灰階,對於一個8x8像素的彩色圖片,若只考慮RGB,輸入的維度會有8x8x3=192個,如果目的只是想觀察、找出影像邊緣,可以套用公式轉為灰階,這麼一來,輸入維度就縮減至8x8=64個。

彩色圖片RGB值轉灰階值,其實就是一種降維,灰階轉換據稱是依人眼對光譜的感知程度,結合心理學等所得出的公式,那麼,對於其他的需求,高維度資料要如何減少維度呢?胡亂地去除某些維度當然是行不通的!

例如,若有一組手寫數字圖片,每張圖片是灰階,大小為8x8像素,若以像素的灰階值作為輸入,輸入的資料維度就是64,單純隨便選擇其中一列或一行像素來運算,就會損失了百分之九十的資訊,損失了這百分之九十,輸入的資料還能有哪些重要資訊,來代表手寫的數字嗎?

也就是說,降低維度的同時,必須能保留重要資訊,重要資訊的比例越高越好,而在資料分析或機器學習的領域,談到資料降維時,通常會提到主成分分析(Principal Component Analysis),這是英國數學家Karl Pearson百年前提出的方法,若試著去理解其原理,就會接觸到向量、投影等,當然,認識數學是必要的,程式實作也是必須基於這些數學。

不過,就理解降維目的、尋找投影量、轉動投影軸等觀念而言,最淺顯易懂的例子就是影子遊戲:你手上拿著一個東西,用光照後影子投影在布幕上,朋友隔著布幕看著影子,猜測你手上是什麼東西。如果你手上的東西是多維、具有形狀、顏色等資訊,影子是二維的,此時,要怎麼做,朋友才能從影子的資訊猜測你拿了什麼?

你必須轉動手上的東西,因為處於不同角度時,可以投影出不同的輪廓,這時可以說影子帶有你手中物體不同的成分;接著,你必須讓物體投影在布幕上的影子,能夠呈現出足以辨識物體的輪廓,這時可以說影子呈現出你手中物體的主要成分,之後,朋友可能必須組合不同角度時的影子,拼湊出實際物體的資訊。

向量與投影

物體在布幕上的投影容易理解,那麼,資料該怎麼投影呢?先從二維資料開始吧!其實,在我們談到手邊有一筆資料(x,y),畫在平面直角座標時,就已經在做投影的動作了,此時,可以將(x,y)看成是向量,x是向量投影在X軸的長度,y是向量投影在Y軸的長度,也就是說,x、y是向量各自投影在兩軸上的成分。

現在若將向量畫出來且固定不動,只旋轉座標軸,向量投影在兩個軸上的值就會不同,某些旋轉會使得X軸上的成分變大、Y軸上的成分變小,有些旋轉則相反;現在單獨來看X軸成分,若有一堆資料,可否找出一個軸,讓這堆資料投影在該軸作為X成分,而這些成分的相異程度最大,例如它們的變異數(Variance)最大呢?

這是做得到的,相對地,Y軸成分也可以這麼做。若資料在兩個軸的成分,變異數各為vx與vy,且vx大於vy,這就像是物體轉動至某個面向時,影子在布幕時具有較大的範圍,若vx比vy大上許多,那麼,選擇該軸的投影成分,應該具有較高的代表性。

就方才的例子來說,這兩個軸不見得要是垂直的,如果你學過線性代數,應該會想到這兩個軸其實就是基底(basis),基於兩軸來取向量,就是(vx,vy),如果只看其中之一,就是只從資料投影在其中一個軸的值來觀察資料。

只從資料投影在其中一個軸的值來觀察,顯然會損失一些資訊,因此降維時往往是取相異程度大的成分。若基底為i、j(都是向量),某資料基於基底的向量為(vx,vy),用向量表示該資料會是vx*i+vy*j,若vx遠大於vy,大到j向量的部份,也就是vy的部份可忽略,這樣降維時,才不會損失過多資訊。

主成分分析 vs. 降維

談到主成分分析,往往就會談到降維,確實地,試著將資料投影在不同維度上,來找出資料中重要的成分,若需要降維,將不重要的成分忽略,這種降維方式,會比單純地捨棄某些維度要好得多了;從另一個角度來看,若觀察原資料後,我們會發現資料的變化似乎有循著某個或某些維度的趨勢,而透過主成分分析進行降維的目的,就是想取得這個或這些維度。

只不過,怎麼知道要降至幾維呢?主成分分析既然這麼命名,就表示你必須分析資料的各個成分是怎麼組成的,像是各成分軸的向量、投影量在各軸的變異數、變異數佔用的比例、平均等,例如,將變異數佔的比例相加,比例達到指定的閥值時需要幾個成分,可以是降至幾維的參考。

有時光是從主成分分析認識成分軸的向量、投影量在各軸的變異數等,就可以獲得許多資訊了,不見得要降維;有時候降維是為了用某種方式進一步理解資料的關係,例如為了可視化而降維,將8x8像素大小的手寫數字圖片降至三維,這樣就可以畫成立體的散布圖,如果此時將各個點根據原始資料的數字標記來畫上不同的顏色,或許會發現相同顏色的點有群聚的傾向。

這代表著,透過一些方式,或許可以基於圖片原始資料來進行分類,也就是說,將資料降維不見得是資料處理的最終目的,或許只是協助分析、理解資料的過程,在這個過程中,維度選擇也很重要,例如,若我們將圖片資料降為二維,雖然大致上可看到群聚現象,不過各群間重疊部份會變大,這表示維度降過頭,不利於資料的分析理解了。

在不降維的情況下進行主成分分析,得到的結果可逆轉換回原始資料,這是必然的結果,畢竟這只是使用不同基底來表示同一筆資料;如果把降維後的資料逆轉換?若是二維降為一維,之後逆轉換,因為沒有另一個維度的資訊,該維度在逆轉換前被當成0,逆轉換後的結果,就是原本一堆散落的點,會變成某直線上的點,這感覺像是做了線性迴歸?

這是因為主成分分析間的轉換,本來就是一種線性轉換,就二維投影在一維來說,就是投影在直線軸上,看來確實就像是在找出線性關係,若是三維降維,就是投影在平面,四維降維就是投影在立體空間。

會想將降維後的資訊逆轉換,通常是把被捨棄的維度,視為不重要的雜訊,降維後逆轉換,就是一種去除雜訊的過程了,在〈In Depth: Principal Component Analysis〉這篇文件中,就有個去除圖片雜訊的例子。

理解資料在各維度的樣貌

簡單來說,主成分分析藉由投影,來理解資料在不同維度上的樣貌,是分析、理解或清理資料的一種方法,因此重點在於分析,而不是降維,降維有時只是分析、理解資料時的一個過程,而不是最終之目的。

主成分分析最終目的,就是希望從各個維度,對資料的本質有更深入的認識,若能夠理解資料於各維度的樣貌,最後是要使用原始資料、降維後的資料、逆轉換後的資料,或甚至是利用到非主要成分的資料,也就只是各自的應用了。

專欄作者

熱門新聞

Advertisement