1 - 線性降維
樣本在高維情形下會出現數據樣本稀疏(因為樣本不是均勻分布在每個維度表示的空間中),距離計算困難(歐式距離也不如人想象的那么有效),可視化困難,容易過擬合等問題。所以不論是機器學習,還是人類理解角度,高維都是個不喜歡的話題(當然對於低維樣本線性不可分而上升到高維線性可分的情形並不是這里指的情況)。
因為基於大多人類觀測和收集到的樣本,與學習任務密切相關的也許只是某些低維分布。所以如果適當的降維,可以讓樣本在所需維度上達到更密集的分布,且距離計算問題也能緩解不少。
一般來說,想要獲得低維子空間,最簡單的是對原始高維空間進行線性變換。給定
d
維空間中的樣本
X=(x1,x2,...,xN)∈Rd×N
,變換后得到
d′≤d
維空間中的樣本:
X′=WTX
其中
W∈Rd×d′
是變換矩陣,
X′∈Rd′×N
是樣本在新坐標空間中的表達。變換矩陣
W
可以看成是
d′
個
d
維基向量,
x′i=WTxi
是第
i
個樣本(即
X
中的第
i
個列向量)與這
d′
個基向量分別做內積而得到的
d′
維特征列向量。
x′i
同時也可以看成是第
i
個
d
維的樣本
xi
在新坐標系
{w1,w2,...,wd′}
中的坐標向量,若
wi
與
wj
,
(i≠j)
,則新的坐標系是一個正交坐標系(我們通常的
x,y,z
就是一個正交坐標系),此時
W
為正交變換。顯然,新空間中的特征是原空間中特征的線性組合。
基於線性變換來降維的方法稱為線性降維方法,不同的線性降維方法基本上就是對低維子空間的性質有不同要求,對降維效果的評估,就是比較降維前后學習器的性能。其中主成分分析是一種無監督的線性降維方法,線性判別分析(LDA)是一種有監督線性降維方法。
2 - PCA
PCA是一種降維方法,其可以用來1)可視化;2)預處理;3)建模;4)壓縮。
假設有
N
個樣本
{xi}
,其中每個樣本都是
d
維:
xi∈Rd
。我們的目標就是用更低維的樣本表示
{x′i}
來代替這些高維樣本,其中低維樣本維度為
d′
且
d′<d
。
這可以看成是一個線性變換的形式:
x=Wx′+b=∑i=1d′wix′i+b(2.1)
其中
W
是一個
d×d′
的變換矩陣;
xi
為一個低維樣本表示的列向量,
wi
為矩陣
W
的第
i
個列向量。矩陣
W
同樣可以看成是
d′
個基向量即
W=[w1,...,wd′]
。如果假定樣本獲取過程中會混入高斯噪音,那么該模型就是一個線性回歸模型了,只是這里
x′
是一個未知的線性參數。
為了學習這個模型,對該模型建立目標函數,這里采用最小二乘方法:
argminW,b,x′i∑i||xi−(Wx′i+b)||2subjecttoWTW=I(2.2)
這里的限制使得求得的變換矩陣式一個正交矩陣,即等同於:
wTiwj={10i=ji≠j
其中
x′
所在空間的坐標系為潛在坐標系。具體過程如下:
1)先計算原有樣本矩陣基於樣本的均值向量:
b=1N∑ixi
2):計算原有樣本矩陣中心化后的協方差均值矩陣:
K=1N∑i(xi−b)(xi−b)T
3):對上述矩陣進行矩陣分解,並計算其特征值和特征向量:
K=VΛVT
其中
Λ
是由特征值組成的對角矩陣
Λ=diag(λ1,...λd)
;
V
是對應特征值的特征向量,且該矩陣是正交矩陣即,
V=[V1,...Vd]
,
VTV=I
對特征值矩陣進行從大到小排序,選取足夠多精度的特征值(即丟棄特征值較小的)
4):用保留的特征值對應的特征向量組成正交矩陣
W=[V1,...Vd′]
5):從而新的樣本為
x′i=WT(xi−b)
,
i∈1,2,...,N
2.1 為什么選取特征值較大的,而不是較小的
假設投影后空間的坐標系為
W={w1,w2,w3,...wd′}
,且其兩兩正交,且原始樣本已經進行了中心化,即均值為0。原始樣本
{xi}
在新空間中投影為
{x′i}
,且
x′ij=wTjxi
,是
{x′i}
在低維坐標系下第
j
維的坐標值。以此重構得到
x^i=Wx′i=∑d′j=1x′ijwj
基於整個訓練集,原樣本點
xi
與基於新空間樣本點重構的樣本點
x^i
之間距離為:
∑i=1N∣∣∣∣∣∣∣∣∑j=1d′x′ijwj−xi∣∣∣∣∣∣∣∣22=====∑i=1Nx′Tix′i−2∑i=1Nx′TiWTxi+const−∑i=1Nx′Tix′i+const−∑i=1Ntr(x′ix′Ti)+const−tr(WT(∑i=1NxTixi)W)+const−tr(WT(XXT)W)+const(2.1.1)
因為訓練集給定,所以基於當前訓練集樣本自我相乘可以看成是一個固定常數const。上式即PCA的目標函數。
假設當前得到了低維空間樣本
X′
,為了使在低維上盡可能分開,則應該使低維樣本集的方差盡可能大。
投影到新空間的樣本方差為:
∑Ni=1x′ix′Ti
即
∑Ni=1WTxixTiW
等同於求樣本矩陣相乘后的矩陣的跡,即:
maxwtr(WTXXTW)s.t.WTW=I
通過使用拉格朗日乘子法:
f(x)=tr(WTXXTW)+λ(WTW−I)
因為有公式
dtr(XTBX)dX=BX+BTX
,
將上式關於
W
求導得:
2XXTW+2λW=0
即
XXTW=λW
剛好是求
XXT
的特征值問題
3 - LDA
ps:這里所說的LDA用來降維指的是1936年fisher的論文。
決策分析是分類問題的一個生成模型方法,需要對特征擬合一個多元高斯變量模型,正如之前說的,這在高維情況下問題比較棘手,所以如果能將特征從
d
維降低到
d′
維,那么困難就能緩解一些。最簡單的線性投影方法,也就是
X′=WTX
。PCA是一種尋找
W
的無監督方法,可是卻沒利用上當樣本有標簽時候的標簽信息;一種代替方法就是使用高斯條件類別密度模型(gaussian class-conditional density model).該方法的合理之處在於我們只是計算潛在特征(非高斯)的線性組合而已。該方法也叫做fisher的線性決策分析(FLDA).
FLDA是一種決策和生成方法的混合模型,它的缺點在於其映射后的維度
d′<|c|−1
這里
|c|
是類別個數。例對於2類問題,那么只能尋找一個向量
w
來作為變化矩陣。
3.1 兩類問題
對於2類問題,先分別求出不同類別的均值向量:
μ1=1N∑i:c1xi;μ2=1N∑i:c2xi(3.1.1)
假設均值向量映射在某個1維坐標(一條直線)后,得
mk=wTμk
且每個樣本映射后
x′i=wTxi
,那么投影后新樣本點的方差正比於:
s2k=∑i:ck(x′i−mk)2(3.1.2)
當前目標是找到能夠讓在新樣本空間中類間距離最大,類內距離最小,即:
maxJ(w)=(m2−m1)2s21+s22(3.1.3)
將上式寫成關於
w
的式子:
maxJ(w)=====(wTμ2−wTμ1)(wTμ2−wTμ1)∑i:c1(wTxi−wTμ1)2+∑i:c2(wTxi−wTμ2)2wTμ2wTμ2−wTμ2wTμ1−wTμ1wTμ2+wTμ1wTμ1∑i:c1(wTxi−wTμ1)2+∑i:c2(wTxi−wTμ2)2wTμ2μT2w−wTμ2μT1w−wTμ1μT2w+wTμ1μT1w...wT(μ2μT2−μ1μT2−μ2μT1+μ1μT1)w...wTSBwwTSWw(3.1.4)
上式只做了分子的運算,分母運算省略了,且因為新空間是1維樣本,所以
wTμ2=(wTμ2)T=μT2w
其中
SB
是類別之間的距離矩陣:
SB=(μ2−μ1)(μ2−μ1)T(3.1.5)
;
而
SW
是類間距離矩陣:
SW=∑i:c1(xi−μ1)(xi−μ1)T+∑i:c2(xi−μ2)(xi−μ2)T(3.1.6)
因為式子3.1.3分子分母都是標量,故而,3.1.4可以表示成:
SBw=λSWw
即轉換成了一個求特征值的問題,如果
SW
可逆的話,則:
S−1WSBw=λw
且
SBw=(μ2−μ1)(μ2−μ1)Tw=(μ2−μ1)(m2−m1)
所以:
λw=S−1W(μ2−μ1)(m2−m1)
左右消去標量值,因為只關心坐標系,即方向,而不關心縮放因子,即縮放多少,所以:
w=S−1W(μ2−μ1)m2−m1λ
故而最后可以直接取:
w=S−1W(μ2−μ1)
3.2 多類問題
因為主旨還是為了新空間中類間最大,類內最小的fisher准則。因為LDA的限制,
d′≤|c|−1
。
假定類別
k
的樣本均值以及所有類的樣本均值為:
μck=∑i:ck1Nckxi;μ=∑i:c1Ncxi=∑k=1|c|Pkμk(3.2.1)
假設
xki,xlj
分別為類
ck,cl
類的原始
d
維特征向量,
δ(xki,xlj)
為這兩個向量的距離,則各類特征向量之間的平均距離為:
Dd(x)=12∑k=1|c|Pk∑l=1|c|Pl1NkNl∑i=1Nk∑j=1Nlδ(xki,xlj)(3.2.2)
其中
|c|
為類別個數,
Nk,Nl
為對應類別中樣本個數,
Pk,Pl
為對應類別的先驗概率。
對於簡單的歐式距離來說:
δ(xki,xlj)=(xki−xlj)T(xki−xlj)(3.2.3)
將3.2.3,3.2.1帶入3.2.2,得
Dd(x)=========12∑k=1|c|Pk∑l=1|c|Pl1NkNl∑i=1Nk∑j=1Nlδ(xki,xlj)12∑k=1|c|Pk∑l=1|c|Pl1NkNl∑i=1Nk∑j=1Nl((xki)Txki−(xki)Txlj−(xlj)Txki+(xlj)Txlj)12∑k=1|c|Pk∑l=1|c|Pl1Nk∑i=1Nk⎛⎝(xki)Txki−(xki)Tμl−μTlxki+1Nl∑j=1Nl(xlj)Txlj⎞⎠12∑k=1|c|Pk∑l=1|c|Pl⎛⎝1Nk∑i=1Nk(xki)Txki−2μTkμl+1Nl∑j=1Nl(xlj)Txlj⎞⎠12∑k=1|c|Pk∑l=1|c|Pl⎛⎝1Nk∑i=1Nk(xki)Txki+1Nl∑j=1Nl(xlj)Txlj−μTkμk−μTlμl+μTkμk+μTlμl−2μTkμl⎞⎠12∑k=1|c|Pk∑l=1|c|Pl⎛⎝1Nk∑i=1Nk(xki)Txki+1Nl∑j=1Nl(xlj)Txlj−μTkμk−μTlμl⎞⎠+∑i=1|c|Pk(μk−μ)T(μk−μ)12∑k=1|c|Pk∑l=1|c|Pl⎛⎝1Nk∑i=1Nk(xki)Txki−μTk(1Nk∑i=1Nkxi)−(1Nk∑i=1Nkxi)Tμk+μTkμk⎞⎠+與k對稱的l+上面第2項12∑k=1|c|Pk⎛⎝∑l=1|c|Pl⎞⎠⎛⎝1Nk∑i=1Nk(xki−μk)T(xki−μk)⎞⎠+與k對稱的l+上面第3項∑k=1|c|Pk⎡⎣1Nk∑i=1Nk(xki−μk)T(xki−μk)+(μk−μ)T(μk−μ)⎤⎦
上式中括號第二項為第
k
類的均值向量與總體均值向量之間的歐式距離,用先驗概率加權平均后可以代表各類均值向量的平均平方距離,即類間距離:
∑i=1|c|Pk(μk−μ)T(μk−μ)=12∑k=1|c|Pk∑l=1|c|Pl(μk−μl)T(μk−μl)
令:
SB=∑|c|i=1Pk(μk−μ)(μk−μ)T
SW=∑|c|k=1Pk[1Nk∑Nki=1(xki−μk)(xki−μk)T]
那么
Dd(x)=tr(SB+SW)
因為對於原始空間,
maxJd(x)=tr(SB)tr(SW)
~
|SB||SW|
則
maxJ′d(x)===|∑|c|i=1Pk(WTμk−WTμ)(WTμk−WTμ)T||∑|c|k=1Pk[1Nk∑Nki=1(WTxki−WTμk)(WTxki−WTμk)T]||WT∑|c|i=1Pk(μk−μ)(μk−μ)TW||WT∑|c|k=1Pk[1Nk∑Nki=1(xki−μk)(xki−μk)T]W||WTSBW||WTSWW|
上式可以如2類情況一樣得到結果:
SBW=λSWW
當
SW
非奇異時,可得:
S−1WSBW=λW
即。得到最后的解(個人認為mlapp這部分有問題,prml這部分是對的):
W
就是矩陣
S−1WSB
的前
d′
個特征向量構成的矩陣(從大到小的特征值排序)
ps:矩陣的秩小於等於各個相加矩陣的秩的和,所以一共
|c|
類,那么
SB
的秩最多為
|c|−1
(第
|c|
個矩陣可以通過前面矩陣線性表示出來)。
參考資料:
[] 周志華 機器學習
[] Computer Science Department University of Toronto. Machine Learning and Data Mining Lecture Notes
[] Machine learning A Probabilistic Perspective
[] 邊肇祺,模式識別第二版
[] http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html
[] Introduction to Statistical Pattern Recognition 2nd ed. - K. Fukunaga p454
[] prml p192