寫在最前面
如今機器學習和深度學習如此火熱无虚,相信很多像我一樣的普通程序猿或者還在大學校園中的同學,一定也想?yún)⑴c其中晤碘。不管是出于好奇褂微,還是自身充電,跟上潮流园爷,我覺得都值得試一試宠蚂。對于自己,經(jīng)歷了一段時間的系統(tǒng)學習(參考《機器學習/深度學習入門資料匯總》)童社,現(xiàn)在計劃重新閱讀《機器學習》[周志華]和《深度學習》[Goodfellow et al]這兩本書求厕,并在閱讀的過程中進行記錄和總結。這兩本是機器學習和深度學習的入門經(jīng)典。筆記中除了會對書中核心及重點內(nèi)容進行記錄呀癣,同時美浦,也會增加自己的理解,包括過程中的疑問项栏,并盡量的和實際的工程應用和現(xiàn)實場景進行結合浦辨,使得知識不只是停留在理論層面,而是能夠更好的指導實踐沼沈。記錄筆記荤牍,一方面,是對自己先前學習過程的總結和補充庆冕。 另一方面康吵,相信這個系列學習過程的記錄,也能為像我一樣入門機器學習和深度學習同學作為學習參考访递。
章節(jié)目錄
- k近鄰學習
- 低緯嵌入
- 主成分分析
- 核化線性降維
- 流形學習
- 度量學習
(一)k近鄰學習
k近鄰(k-Nearest晦嵌,簡稱kNN)學習是一種常用的監(jiān)督學習方法,其工作機制非常簡單:給定測試樣本拷姿,基于某種距離度量找出訓練集中與其最靠近的k個訓練樣本惭载。然后基于這k個“鄰居”的信息進行預測。通常响巢,在分類任務中可使用“投票法”描滔,即選擇這k個樣本中出現(xiàn)最多的類別標記作為預測結果;在回歸任務中可使用“平均法”踪古,即將這k個樣本的實際值輸出標記的平均值作為預測結果含长。還可基于距離遠近的加權平均或加權投票,距離越近的樣本權重越大伏穆。
與先前介紹的學習方法相比拘泞,k近鄰學習有一個明顯的不同之處,它似乎沒有顯示的訓練過程枕扫。事實上陪腌,它是“懶惰學習”(lazy learning)的著名代表,此類學習技術在訓練階段僅僅是將樣本存儲起來烟瞧,訓練開銷為零诗鸭,待收到測試樣本后再進行處理;相應的参滴,那些在訓練階段就對樣本進行學習處理的方法强岸,稱為“急切學習”(eager learning)。
下圖給出了k近鄰分類器的一個示意圖卵洗,
近鄰分類器雖簡單请唱,但它的泛化錯誤率不超過貝葉斯最優(yōu)分類器的錯誤率的兩倍弥咪。
(二)低維嵌入
上一節(jié)的討論是基于一個重要假設:任意測試樣本x附近任意小的δ距離范圍內(nèi)總能找到一個訓練樣本,即訓練樣本的采樣密度足夠大十绑,或稱為“密采樣”(dense sample)聚至。然而,這個假設在現(xiàn)實任務中通常很難滿足本橙。此外扳躬,許多學習方法都涉及距離計算,而高維空間會給距離計算帶來很大麻煩甚亭,例如當維數(shù)很高時贷币,甚至連計算內(nèi)積都不再容易。
事實上,在高維情形下出現(xiàn)的數(shù)據(jù)樣本稀疏,計算距離困難等問題孤澎,是所有機器學習方法共同面臨的嚴重障礙,被稱為“維數(shù)災難”(curse of dimensionality)促脉。
緩解維數(shù)災難的一個重要途徑是降維(dimension reduction),亦稱“維數(shù)簡約”策州,即通過某種數(shù)學變換將原始高緯度屬性空間轉變?yōu)橐粋€低維“子空間”(subspace)瘸味,在這個子空間中樣本密度大幅提高,計算距離也變得更為容易够挂。為什么能進行降維旁仿?這是因為在很多時候,人們?nèi)藗冇^測或收集到的數(shù)據(jù)樣本雖是高維的孽糖,但與學習任務密切相關的也許僅是某個低維分布枯冈,即高維空間的一個底維“嵌入”(embedding)。下圖給出了一個直觀的例子梭姓,原始高維空間中的樣本點霜幼,在這個低緯嵌入子空間中更容易進行學習。
若要求原始空間中的樣本之間距離在低維空間中得以保持,如上圖所示铸题,即得到“多維縮放”(Multiple Dimensional Scaling,簡稱MDS)這樣一種經(jīng)典的降維方法丢间。
對降維效果的評估,通常是比較降維前后學習器的性能烘挫,若性能有所提高則認為降維起到了作用柬甥。若維數(shù)降低到二維或三維,則可通過可視化技術來直觀的判斷降維效果苛蒲。
(三)主成分分析
主成分分析(Principal Component Analysis绿满,簡稱PCA)是最常用的一種降維方法喇颁。
PCA僅需保留W與與樣本的均值向量即可通過簡單的向量減法和矩陣向量乘法將樣本投影到低維空間中。顯然橘霎,低維空間與原始高維空間必有不同,因為對應于最小的d-d'個特征值的特征向量被舍棄了克懊,這是降維導致的結果谭溉。但舍棄這樣的信息往往是必要的:
- 一方面橡卤,舍棄這部分信息之后能使樣本的采樣密度增大,這正是降維的重要動機碧库;
- 另一方面嵌灰,當數(shù)據(jù)受到噪聲影響時,最小的特征值所對應的特征向量往往與噪聲有關迁匠,將它們舍棄能在一定程度上起到去噪的效果。
(四)核化線性降維
線性降維方法假設從高維空間到低維空間的函數(shù)映射是線性的城丧,然而亡哄,在不少實際任務中布疙,可能需要非線性映射才能找到恰當?shù)牡途S嵌入愿卸。
非線性降維的一種常用方法截型,是基于核技巧對線性降維方法進行”核化“(kernelized)菠劝。
(五)流形學習
流形學習(manifold learning)是一類借鑒了拓撲流形概念的降維方法×剑”流形“是在局部與歐氏空間同胚的空間舔痪,換言之,它在局部具有歐氏空間的性質(zhì)夺英,能用歐氏距離來進行距離計算痛悯。這給降維方法帶來了很大的啟發(fā)重窟。若低維流形嵌入到高維空間中,則數(shù)據(jù)樣本在高維空間的分布雖然看上去非常復雜扭仁,但在局部上仍具有歐氏空間的性質(zhì)乖坠,因此刀闷,可以容易的在局部建立降維映射關系,然后戈次,再設法將局部映射關系推廣到全局筒扒。當維數(shù)被降至二維或三維時花墩,能對數(shù)據(jù)進行可視化展示,因此流形學習也可被用于可視化冰蘑。
其中,等量度映射和局部線性嵌入式兩種著名的流形學習方法武氓。
(六)度量學習
在機器學習中仇箱,對高維數(shù)據(jù)進行降維的主要目的是希望找到一個合適的低維空間,在此空間中進行學習能比原始空間性能更好忠烛。事實上权逗,每個空間對應了在樣本屬性上定義的一個距離度量斟薇,而尋找合適的空間,實質(zhì)上就是在尋找一個合適的距離度量胯陋。直接嘗試”學習“出一個合適的距離度量惶岭,就是度量學習(metric learning)的基本動機按灶。