第十章 降維與度量學習

k近鄰學習

kNN學習是一種常用的監督學習方法

  • 工作機制
    給定測試樣本,基于某種距離度量找出訓練集中與其最靠近的k個訓練樣本,然后根據這k個“鄰居”的信息來進行預測。

    對于kNN學習中,最重要的是對k的選取和對距離的定義
    對于最近鄰分類器(1NN,即k=1),其出錯的概率為:

P(err) = 1- \sum_{c \in y} P(c|x) P(c|z).

其中x為測試樣本,其最近鄰樣本為z,假設樣本獨立同分布,且對任意x和任意小正數\delta距離范圍內總能找到一個訓練樣本. 令c^*=arg \max_{c\in Y}P(c|x)表示貝葉斯最有分類器的結果, 則可以推導出:

最近鄰分類器雖簡單,但它的泛化錯誤率不超過貝葉斯最優分類器的錯誤率的兩倍。

低維嵌入

前面的討論的都是基于假設:對任意x和任意小正數\delta, 在x附近\delta距離范圍內總能找到一個訓練樣本。但是這在現實任務中是很難實現的而且隨著特征維數增加,所需要的樣本數飛速增長,高維特征也會使距離運算量更大,耗費時間更長。

  • 維度災難
    在高維情形下出現的數據樣本稀疏,距離計算困難等問題,是所有機器學習方法共同面臨的嚴重障礙。

緩解維數災難的一個重要途徑是降維,也稱作“維數約簡”。即通過某種數字變換將原始高維屬性空間轉變為一個子空間,在這個子空間中樣本密度大幅度提高,距離計算也變得容易。(將原始高維屬性空間轉變為一個低維子空間)雖然數據樣本是高維的,但是與學習任務密切相關的也許僅僅是某個低維分布.
MDS算法(多維縮放)

多為縮放是一種經典的降維算法。假設m個樣本在原始空間的距離矩陣為D\in \mathbb{R}^{m\times m}, 其中第i行第j列的元素dist_{ij}為兩個樣本x_ix_j之間的距離,而我們的目標就是獲得樣本在d'維空間的表示 Z\in \mathbb{R}^{d'\times m}, d'\le d, 且任意兩個樣本在d'維空間中的歐氏距離等于原始空間中的距離,即||z_i-z_j||=dist_{ij}.令 B=Z^TZ\in \mathbb{R}^{m\times m}, 其中B為降維后樣本的內積矩陣, b_{ij}=z_i^T, 有:

為了便于討論, 令降維后的樣本Z被中心化了, 則推導后可以得到:

?????????????????????????????????????????????????
?????????????????????????????????????????????????

由此可以利用降維前的距離矩陣D來求降維后的內積矩陣B, 并對其做特征值分解B=V\Lambda V^T, 其中\Lambda 為特征值組成的對角矩陣, V為特征向量矩陣. 假設其中有d個非零特征值, 它們組成的對角矩陣\Lambda和特征向量矩陣V*則有以下關系:

實際中, 為了有效降維(降到d’), 則不一定要求降維后的距離嚴格相等, 此時取前d’個非零特征值對應的\tilde{\Lambda}\tilde{V}:

MDS算法流程:


除了MDS算法,基于線性變換來進行降維的線性降維是最簡單的降維方法, 這類方法被稱作線性降維方法,下一節將以PCA主成分分析為例進行介紹。

主成分分析

主成分分析(PCA)是最常用的一種降維方法。對于一個能夠將所有樣本進行恰當表達的超平面,基于其最近重構性(樣本點到這個超平面的距離都足夠近)主成分分析的優化目標為:


而基于其最大可分性(樣本點在這個超平面上的投影盡可能分開)主成分分析的優化目標:

對以上兩個式子使用拉格朗日乘子法得到:

于是,對協方差矩陣做特征值分解,對所求得的特征值排序,取前個特征值構成的特征向量構成,就得到PCA的解。
算法流程:

維數由d降到了d’。 這里的d’值可以人工指定,也可以通過其他開銷小的學習器來交叉驗證,也可通過重構閾值來設定,例如設t=95 \%,選擇合適的d’使得:


PCA僅需保留與樣本的均值向量即可通過簡單的向量減法和矩陣-向量乘法將新樣本投影至低維空間中。

核化線性降維

線性降維方法假設從高維空間到低維空間的函數映射是線性的,但現實任務中,可能需要非線性映射才能找到恰當的低維嵌入。進行非線性降維的常用方法便是基于核技巧來對線性降維方法進行核化
核主成分分析(KPCA)算法:
假定將在高維特征空間中把數據投影到由W確定的超平面上,即PCA欲求解:


其中是樣本點在高維特征空間中的像,于是有:

然后引入映射,即有.再引入核函數:

最后代入化簡得:,其中K為核函數對應的核矩陣。

流形學習

流形學習是一類借鑒了拓撲流形概念的將為方法,而流形是指在局部與歐式空間同胚的空間(即在局部與歐式空間具有相同的性質),能用歐氏距離計算樣本之間的距離。

等度量映射(Isomap)

其基本出發點是認為低維流形嵌入到高維空間后,然后直接在高維空間中計算直線距離具有誤導性,因為高維空間中的直線距離在低維嵌入流形上是不可達的。因此利用流形在局部上與歐式空間同胚的性質,可以使用近鄰距離來逼近測地線距離。例如在一維空間中有一直線,將其嵌入二維空間時變成了非線形,兩端點的距離就會發生改變,此時就產生了距離計算的偏差。


在近鄰連接圖上計算兩點間的最短距離,可以采用Dijkstra算法或者Floyd算法,在得到任意兩點的距離之后。可通過MDS方法來獲得樣本點在低維空間中的坐標。
Isomap算法的流程


最近鄰圖的構建有兩種方法:
1、指定近鄰點數目,與kNN一樣選取k個最近的鄰居;
2、指定鄰域半徑,距離小于該閾值的選定為其近鄰點。
對于兩種方法,會有以下問題:
1、鄰域范圍指定過大,則會造成“短路問題”,即距離很遠的點也可能會被誤認為近鄰;
2、鄰域范圍指定過小,則會造成“斷路問題”,即有些區域和其他區域不可互達。

LLE算法(局部線性嵌入)

局部線性嵌入試圖保持鄰域內樣本間的線性關系。


假設樣本點通過它的領域樣本的坐標通過線性組合重構得到:
線性關系保持不變,即鄰域重構系數不變

LLE算法分為兩步:
1、根據近鄰關系計算出所有樣本的鄰域重構系數w
2、根據鄰域重構系數不變,求解低維坐標

其中式(10.27):

式(10.30):

度量學習

對高維進行降維的主要目的是找到一個合使的低維空間,實際上就是在尋找一個合使的距離度量。度量學習便是嘗試學習出一個合使的距離度量。
對于兩個d維樣本x_ix_j,它們之間的平方歐式距離:

dist_{ed}^2 (x_i,x_j) = ||x_i - x_j||_2^2 = dist_{ij,1}^2 + dist_{ij,2}^2 + ... + dist_{ij,d}^2

其中dist_{ij,k}表示x_ix_j在第k維上的距離.
假定各個屬性有其不同的重要性,即引入w,于是有:

其中W的非對角元素均為零,故可以將W替換為一個普通的半正定對稱矩陣M(協方差矩陣的逆,即M=\sum{^{-1}}),于是得到馬氏距離:


而度量學習即是對M的學習,為了保持距離非負且對稱,于是M必須是正定對稱矩陣,即滿足必有正交基P使得.
對M的學習的前提是要設定一個目標,比如希望提高近鄰分類器的性能,則可以將M嵌入到近鄰分類器的評價指標中去,通過優化該性能指標從而求得M.
我們不僅能夠將錯誤率等這種監督學習目標作為度量學習的優化目標,還可以在度量學習種引入領域知識,比如已知一些樣本類似,一些樣本不相似。于是相似樣本的樣本距離盡可能小,不相似的樣本之間的距離盡可能大。

和分別表示相似集合和不相似集合。
度量學習習得的半正定對稱距離度量矩陣M,若其是低秩矩陣,則可以對其進行特征值分解,總能找到一組正交基小于元素。于是度量學習學得的結果可以衍生出一個降維矩陣以用于降維之目的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容