k近鄰學習
kNN學習是一種常用的監督學習方法。
- 工作機制
給定測試樣本,基于某種距離度量找出訓練集中與其最靠近的k個訓練樣本,然后根據這k個“鄰居”的信息來進行預測。
對于kNN學習中,最重要的是對k的選取和對距離的定義。
對于最近鄰分類器(1NN,即k=1),其出錯的概率為:
其中x為測試樣本,其最近鄰樣本為z,假設樣本獨立同分布,且對任意x和任意小正數距離范圍內總能找到一個訓練樣本. 令
表示貝葉斯最有分類器的結果, 則可以推導出:
最近鄰分類器雖簡單,但它的泛化錯誤率不超過貝葉斯最優分類器的錯誤率的兩倍。
低維嵌入
前面的討論的都是基于假設:對任意和任意小正數
, 在
附近
距離范圍內總能找到一個訓練樣本。但是這在現實任務中是很難實現的而且隨著特征維數增加,所需要的樣本數飛速增長,高維特征也會使距離運算量更大,耗費時間更長。
-
維度災難
在高維情形下出現的數據樣本稀疏,距離計算困難等問題,是所有機器學習方法共同面臨的嚴重障礙。
MDS算法(多維縮放)
多為縮放是一種經典的降維算法。假設個樣本在原始空間的距離矩陣為
, 其中第
行第
列的元素
為兩個樣本
和
之間的距離,而我們的目標就是獲得樣本在
維空間的表示
, 且任意兩個樣本在
維空間中的歐氏距離等于原始空間中的距離,即
.令
, 其中
為降維后樣本的內積矩陣,
, 有:
為了便于討論, 令降維后的樣本被中心化了, 則推導后可以得到:
由此可以利用降維前的距離矩陣來求降維后的內積矩陣
, 并對其做特征值分解
, 其中
為特征值組成的對角矩陣,
為特征向量矩陣. 假設其中有
個非零特征值, 它們組成的對角矩陣
和特征向量矩陣
則有以下關系:
實際中, 為了有效降維(降到), 則不一定要求降維后的距離嚴格相等, 此時取前
個非零特征值對應的
和
:
MDS算法流程:
除了MDS算法,基于線性變換來進行降維的線性降維是最簡單的降維方法, 這類方法被稱作線性降維方法,下一節將以PCA主成分分析為例進行介紹。
主成分分析
主成分分析(PCA)是最常用的一種降維方法。對于一個能夠將所有樣本進行恰當表達的超平面,基于其最近重構性(樣本點到這個超平面的距離都足夠近)主成分分析的優化目標為:
而基于其最大可分性(樣本點在這個超平面上的投影盡可能分開)主成分分析的優化目標:
對以上兩個式子使用拉格朗日乘子法得到:
于是,對協方差矩陣做特征值分解,對所求得的特征值排序,取前個特征值構成的特征向量構成,就得到PCA的解。
算法流程:
維數由降到了
。 這里的
值可以人工指定,也可以通過其他開銷小的學習器來交叉驗證,也可通過重構閾值來設定,例如設
,選擇合適的
使得:
PCA僅需保留與樣本的均值向量即可通過簡單的向量減法和矩陣-向量乘法將新樣本投影至低維空間中。
核化線性降維
線性降維方法假設從高維空間到低維空間的函數映射是線性的,但現實任務中,可能需要非線性映射才能找到恰當的低維嵌入。進行非線性降維的常用方法便是基于核技巧來對線性降維方法進行核化。
核主成分分析(KPCA)算法:
假定將在高維特征空間中把數據投影到由W確定的超平面上,即PCA欲求解:
其中是樣本點在高維特征空間中的像,于是有:
然后引入映射,即有.再引入核函數:
最后代入化簡得:,其中K為核函數對應的核矩陣。
流形學習
流形學習是一類借鑒了拓撲流形概念的將為方法,而流形是指在局部與歐式空間同胚的空間(即在局部與歐式空間具有相同的性質),能用歐氏距離計算樣本之間的距離。
等度量映射(Isomap)
其基本出發點是認為低維流形嵌入到高維空間后,然后直接在高維空間中計算直線距離具有誤導性,因為高維空間中的直線距離在低維嵌入流形上是不可達的。因此利用流形在局部上與歐式空間同胚的性質,可以使用近鄰距離來逼近測地線距離。例如在一維空間中有一直線,將其嵌入二維空間時變成了非線形,兩端點的距離就會發生改變,此時就產生了距離計算的偏差。
在近鄰連接圖上計算兩點間的最短距離,可以采用Dijkstra算法或者Floyd算法,在得到任意兩點的距離之后。可通過MDS方法來獲得樣本點在低維空間中的坐標。
Isomap算法的流程:
最近鄰圖的構建有兩種方法:
1、指定近鄰點數目,與kNN一樣選取k個最近的鄰居;
2、指定鄰域半徑,距離小于該閾值的選定為其近鄰點。
對于兩種方法,會有以下問題:
1、鄰域范圍指定過大,則會造成“短路問題”,即距離很遠的點也可能會被誤認為近鄰;
2、鄰域范圍指定過小,則會造成“斷路問題”,即有些區域和其他區域不可互達。
LLE算法(局部線性嵌入)
局部線性嵌入試圖保持鄰域內樣本間的線性關系。
假設樣本點通過它的領域樣本的坐標通過線性組合重構得到:
LLE算法分為兩步:
1、根據近鄰關系計算出所有樣本的鄰域重構系數w
2、根據鄰域重構系數不變,求解低維坐標
其中式(10.27):
度量學習
對高維進行降維的主要目的是找到一個合使的低維空間,實際上就是在尋找一個合使的距離度量。度量學習便是嘗試學習出一個合使的距離度量。
對于兩個d維樣本和
,它們之間的平方歐式距離:
其中表示
和
在第k維上的距離.
假定各個屬性有其不同的重要性,即引入w,于是有:
其中W的非對角元素均為零,故可以將W替換為一個普通的半正定對稱矩陣M(協方差矩陣的逆,即),于是得到馬氏距離:
而度量學習即是對M的學習,為了保持距離非負且對稱,于是M必須是正定對稱矩陣,即滿足必有正交基P使得.
對M的學習的前提是要設定一個目標,比如希望提高近鄰分類器的性能,則可以將M嵌入到近鄰分類器的評價指標中去,通過優化該性能指標從而求得M.
我們不僅能夠將錯誤率等這種監督學習目標作為度量學習的優化目標,還可以在度量學習種引入領域知識,比如已知一些樣本類似,一些樣本不相似。于是相似樣本的樣本距離盡可能小,不相似的樣本之間的距離盡可能大。
和分別表示相似集合和不相似集合。
度量學習習得的半正定對稱距離度量矩陣M,若其是低秩矩陣,則可以對其進行特征值分解,總能找到一組正交基小于元素。于是度量學習學得的結果可以衍生出一個降維矩陣以用于降維之目的。