總的來說,除了前兩章是基礎唧垦,其余章節(jié)都是介紹模型方法捅儒,應用場景、理論推導、優(yōu)化過程巧还、算法等鞭莽,每章都可獨立閱讀而不受其他章節(jié)影響。
如果只是每一章都看完麸祷,頂多就是了解了一種方法澎怒,相互之間是割裂的,這樣當碰到一個實際問題阶牍,仍然無法思路完整的求解喷面,因而有必要在閱讀時就要有意識甚至刻意的建立起知識架構。實際上走孽,所謂的機器學習惧辈,是面對一個具體的問題,從給定的數(shù)據(jù)中產(chǎn)生模型的算法磕瓷,也就是說脫離了實際問題談機器學習算法是毫無意義的盒齿。
前面提到,脫離實際問題談機器學習是毫無意義的困食,那么在給定數(shù)據(jù)集(所謂大數(shù)據(jù))和具體問題的前提下县昂,一般解決問題的步驟可以概括如下:
1、數(shù)據(jù)抽象
將數(shù)據(jù)集和具體問題抽象成數(shù)學語言陷舅,以恰當?shù)臄?shù)學符號表示倒彰。這樣做自然是為了方便表述和求解問題,而且也更加直觀莱睁。
2待讳、設定性能度量指標
機器學習是產(chǎn)生模型的算法,一般來說模型都有誤差仰剿。如果模型學的太好创淡,把訓練樣本自身的一些特點當成所有潛在樣本具有的一般性質(zhì),這種情況稱為過擬合南吮,這樣的模型在面對新樣本時就會出現(xiàn)較大誤差琳彩,專業(yè)表述就是導致模型的泛化性能下降。
與之相對的是欠擬合部凑,模型對樣本的一般性質(zhì)都沒學好露乏,這種情況一般比較好解決,擴充數(shù)據(jù)集或者調(diào)整模型皆可涂邀。
而一般來說無論是機器學習還是現(xiàn)在很火的深度學習瘟仿,面對的主要問題都是過擬合。那么為了保證模型的泛化能力足夠強比勉,必須要有衡量模型泛化能力的評價標準劳较,也就是性能度量的設定驹止。
很顯然不同的性能度量會導致不同的評判結果,好的性能度量能夠直觀的顯示模型的好壞观蜗,同時也能看到不同模型臊恋,或者模型的不同參數(shù)下對解決問題的程度好壞。
進一步墓捻,有的問題可以直接基于設定的性能度量直接做最優(yōu)化捞镰,得出該問題的一般求解模型。
比如回歸任務最常用的性能度量就是均方誤差毙替,目標就是讓均方誤差最小岸售,這就直接轉(zhuǎn)化成了一個最優(yōu)化問題。
其他一些常用的有錯誤率與精度厂画、查準查全率凸丸、ROC與AOC等。
當然更為重要的是袱院,僅僅設定好性能度量是不夠的屎慢,不同模型或者不同參數(shù)下得到的性能度量結果一般是不同的,一般來說不能簡單的比較結果忽洛,而應該基于統(tǒng)計假設檢驗來做效果判定腻惠。也就是說通過比較檢驗的方法,我們就可以判斷欲虚,如果觀察到A比B好集灌,在統(tǒng)計意義上A的泛化性能是否優(yōu)于B,以及這個判斷的把握有多大复哆。
3欣喧、數(shù)據(jù)預處理
之所以要做數(shù)據(jù)預處理,是因為提供的數(shù)據(jù)集往往很少是可以直接拿來用的梯找。
可能的情況有:
樣本某些屬性值缺失
有未標記樣本
樣本的屬性太多
樣本量不足
沒有分出測試集和驗證集
不同類的樣本數(shù)相差比較大
不同類的樣本數(shù)相差比較大
這就是所謂類別不平衡問題唆阿。舉個例子,樣本里有998個反例锈锤,2個正例驯鳖,如果一個模型對任何的新樣本都預測為反例,那么它的精度為99.8%久免,雖然很高浅辙,但沒有任何價值。
這種情況使用的基本策略是再縮放妄壶,具體方法則是采樣摔握。通過不同的采樣方法來使類別達到平衡寄狼。
沒有分出測試集和驗證集
再說第五種情況丁寄,為了方便訓練和驗證模型好壞氨淌,數(shù)據(jù)集一般會以9:1或者其他合適比例(比例選擇主要基于實際問題)分為測試集和驗證集。如果給定的數(shù)據(jù)集只是已經(jīng)標記好的樣本伊磺,那么劃分時必須保證數(shù)據(jù)集和測試集的分布大致均勻盛正,這就涉及到具體的劃分算法了。
樣本量不足
第四種情況一般圖像問題比較常遇到屑埋,如果樣本量不足豪筝,不夠模型來學習,效果自然很差摘能。常見的方法一般有兩種:
基于原數(shù)據(jù)集做擴充续崖。比如對于圖片,可以做各種處理团搞,比如旋轉(zhuǎn)严望、crop、對比度逻恐、亮度等基于像素值的調(diào)整像吻,使得一個樣本能夠生成多個樣本,從而達到擴充數(shù)據(jù)集的目的复隆。
通過人工標注生成樣本拨匆。比如大名鼎鼎的ImageNet數(shù)據(jù)集就是通過全球眾包完成的,當然這個不僅耗時長挽拂,人工成本也很高惭每,需謹慎考慮。
樣本的屬性太多
對于第三種情況亏栈,如果樣本屬性太多洪鸭,為了保證模型的泛化性能足夠強,則理論上必須保證數(shù)據(jù)集包括有所有屬性的所有值仑扑,而這隨著屬性數(shù)目以及屬性值是呈指數(shù)上升览爵,很有可能達到天文數(shù)字,不僅難以計算镇饮,在現(xiàn)實情況也不可能收集到這么多的樣本蜓竹。
從數(shù)學角度看,每個樣本的屬性可以看成向量储藐,屬性數(shù)目是向量的維數(shù)俱济,解決第三種情況一般有兩種方法:
降維
特征選擇
特征選擇比較好理解,就是選擇有用相關的屬性钙勃,或者用另外一種表達方式:選擇樣本中有用蛛碌、跟問題相關的特征。事實上這也很正常辖源,并不一定樣本的所有屬性對具體問題都是有用的蔚携,通過一定的方法選擇合適的特征可以保證模型更優(yōu)希太。常用的方法大致分三類:過濾式、包裹式和嵌入式酝蜒。
所謂的降維誊辉,即是多屬性意味著是高維空間,在很多時候可以等價的映射到低維而不丟失主要信息亡脑。從空間映射的角度看堕澄,我們可以通過主成分分析PCA(線性映射)和核化主成分分析(非線性映射)來達到降維的目的。(補充:PCA是無監(jiān)督降維方法霉咨,線性判別分析LDA則是監(jiān)督降維防范)
有未標記樣本
現(xiàn)實情況下往往很多數(shù)據(jù)集都有大量的未標記樣本蛙紫,有標記的樣本反而比較少。如果直接棄用途戒,很大程度上會導致模型精度低惊来。這種情況解決的思路往往是結合有標記的樣本,通過估計的方法把未標記樣本變?yōu)閭蔚挠袠擞洏颖竟字汀裁蚁;镜姆椒ㄓ兄鲃訉W習和半監(jiān)督學習兩種方法。
樣本某些屬性值缺失
樣本的屬性值缺失是很常見的一種情況继准。比如做書籍枉证、視頻、音樂等的個性化推薦時移必,需要用戶對不同種類的偏好或評價室谚。而用戶不一定聽過所有種類的歌,也不一定做出了評價崔泵。這就需要通過他已產(chǎn)生的樣本數(shù)據(jù)和與之相類似的用戶的數(shù)據(jù)來恢復和補全秒赤。
從原理上講,這和壓縮感知根據(jù)部分信息恢復全部信息是有類似的憎瘸。
常用的方法涉及到協(xié)同過濾入篮、矩陣補全等技術和方法。
總的來說幌甘,數(shù)據(jù)預處理是一個非常重要的過程潮售,實際上數(shù)據(jù)預處理往往會和模型選擇結合在一起。
4锅风、選定模型
在數(shù)據(jù)集完美的情況下酥诽,接下來就是根據(jù)具體問題選定恰當?shù)哪P土恕?/p>
一種方式是根據(jù)有沒有標記樣本考慮。
如果是有標記樣本皱埠,可以考慮有監(jiān)督學習肮帐,反之則是無監(jiān)督學習,兼而有之就看半監(jiān)督學習是否派的上用場边器。
無監(jiān)督學習方法主要提到的是聚類训枢。隨機選定幾個樣本托修,通過一定的算法不停迭代直至收斂或者達到停止條件,然后便將所有樣本分成了幾類肮砾。
對有監(jiān)督學習而言诀黍,根據(jù)最終所需要的輸出結果
如果涉及到分類袋坑,可以參考的模型有線性回歸及其非線性擴展仗处、決策樹、神經(jīng)網(wǎng)絡枣宫、支持向量機SVM婆誓、規(guī)則學習等
如果是回歸問題,可以認為是分類的連續(xù)形式也颤,方法便是以上模型的變種或擴展
如果涉及到概率洋幻,可以參考的有神經(jīng)網(wǎng)絡、貝葉斯翅娶、最大似然文留、EM、概率圖竭沫、隱馬爾科夫模型燥翅、強化學習等
5、訓練及優(yōu)化
選定了模型蜕提,如何訓練和優(yōu)化也是一個重要問題森书。
如果要評估訓練集和驗證集的劃分效果,常用的有留出法谎势、交叉驗證法凛膏、自助法、模型調(diào)參等
如果模型計算時間太長脏榆,可以考慮剪枝
如果是過擬合猖毫,則可通過引入正則化項來抑制(補償原理)
如果單個模型效果不佳,可以集成多個學習器通過一定策略結合须喂,取長補短(集成學習)
6鄙麦、應用
模型訓練好之后,自然就是應用镊折,針對未知樣本做預測胯府、推薦等。
最后再簡單談一下神經(jīng)網(wǎng)絡恨胚。本書中神經(jīng)網(wǎng)絡僅僅是作為一個章節(jié)敘述骂因,包括經(jīng)典的BP算法。
但技術書籍的推出總是落后于當前技術發(fā)展的赃泡『ǎ《機器學習》上市的時間乘盼,已經(jīng)是深度學習大行其道了。
多層的神經(jīng)網(wǎng)絡伴隨的往往是大量參數(shù)的計算和對大數(shù)據(jù)的渴求俄烁。隨著互聯(lián)網(wǎng)的發(fā)展绸栅,人們產(chǎn)生的數(shù)據(jù)呈爆炸式增長,這使得大數(shù)據(jù)集越來越多页屠,同時以NVIDIA為代表推出的基于GPU的機器的計算能力大幅提高粹胯,這使得應用多層神經(jīng)網(wǎng)絡解決實際問題成為可能。尤其是在ImageNet競賽中基于卷積神經(jīng)網(wǎng)絡的模型以大幅優(yōu)勢奪冠后辰企,無論是學術界還是工業(yè)界风纠,都投入大量人力財力研究和應用。以前認為人工智能不可能擊敗圍棋的論點也在今年AlphaGO戰(zhàn)勝李世石不攻自破牢贸,AlphaGO賴以成功的基礎就是幾千萬名家的對戰(zhàn)棋譜(數(shù)據(jù)集)和多層神經(jīng)網(wǎng)絡(模型)竹观,當然還包括了強化學習和評估網(wǎng)絡等輔助下棋策略。
一個非常有趣的事實是潜索,神經(jīng)網(wǎng)絡在經(jīng)歷了幾次寒冬后臭增,科學家們?yōu)榱吮WC科研成果能夠更大概率的發(fā)表,啟用了新名詞深度學習竹习。(以neural network為關鍵詞的paper拒稿率很高)所以從本質(zhì)上講誊抛,深度學習可以簡單的認為是很深層的神經(jīng)網(wǎng)絡。