![]() ![]() |
機器學習導論 ![]()
這本書通過給出易操作的實踐指導、采用簡單的例子、激勵學生討論有趣的應用問題,用一種易于理解的方式介紹了機器學習的基本思想。本書主題包括貝葉斯分類器、近鄰分類器、線性和多項式分類器、決策樹、神經(jīng)網(wǎng)絡以及支持向量機。后面的章節(jié)展示了如何把這些簡單工具通過“提升”(boosting)的方式結(jié)合起來,怎樣將它們應用于更加復雜的領(lǐng)域,以及如何處理各種高級的實踐問題。其中有一章介紹了廣為人知的遺傳算法。
適讀人群 :職場人士 管理者
人工智能專家米羅斯拉夫?庫巴特教授25年傾心打造
系統(tǒng)解讀了有關(guān)機器學習的14個方面,快速讀懂機器學習
全面揭開機器學習的奧秘
本書系統(tǒng)全面,既可以自學又可以作為研究參考。既道出了機器學習的前世今生,又展望了發(fā)展的未來,讓道聽途說的信息止于智者。全面討論機器學習方法和技術(shù),層次合理、敘述清晰、難度適中。涵蓋了經(jīng)典的機器學習算法和理論,同時補充了近年來新出現(xiàn)的機器學習方法。
目前,機器學習慢慢走向成熟。你可能覺得這只是老生常談,請讓我做一個詳細說明。
人們希望機器某一天能夠自己學習,這個夢想幾乎在計算機出現(xiàn)時就有了,也許更早。不過,長久以來,這僅僅是一個想象而已。羅森布拉特(Rosenblatt)感知器的提出曾經(jīng)掀起過一股熱潮,但是現(xiàn)在回想起來,這股熱潮沒能持續(xù)很長的時間。至于接下來的嘗試,使情況發(fā)展得更糟糕,這個領(lǐng)域甚至沒有再引起人們的注意,長期被忽視,因而無法取得重大突破,也沒有這一類的軟件公司,后續(xù)研究寥寥無幾且得到的資金支持也不多。這個階段,機器學習一直不被看好,像進入休眠期一樣,在其他成功學科的陰影里生存。
然而,接下來發(fā)生的一切使這些頹勢徹底改變了。
一群有識之士指出,在20世紀70年代的人工智能領(lǐng)域,基于知識的系統(tǒng)曾經(jīng)風靡一時,但它們有一個弱點:“知識”從哪里來?當時主流的觀點認為,應該讓工程師和領(lǐng)域?qū)<液献,用if-then的形式表示出來。但是實際情況差強人意,專家們發(fā)現(xiàn)很難把掌握的知識表達給工程師。反過來,工程師也不知道該問什么問題以及如何表示答案。盡管有幾個廣為人知的成功案例,但是其他大多數(shù)研究都試圖建立知識庫,并且成千上萬的規(guī)則令人沮喪。
這些有識之士主張簡單和直接的操作。如果難以準確地告訴機器如何處理某個問題,那么為什么不間接地給出指令,通過例子展示所需要的技能,計算機將通過這些例子來學習!
當然,這必須要有能夠進行學習的算法才有意義,這也是困難所在。無論是羅森布拉特的感知器還是后來出現(xiàn)的技術(shù)都不太管用。然而,機器學習在技術(shù)方面的缺乏算不上是障礙,相反是一個挑戰(zhàn),并激發(fā)出了很多絕妙的點子。其中,使計算機有學習能力這個想法開創(chuàng)了一個激動人心的新領(lǐng)域,并引起了世人的關(guān)注。
這一想法在1983年爆發(fā)了。一卷很厚的論文集——《機器學習:人工智能的方法》 米切爾斯基(R. Michalski), 卡波內(nèi)爾(J. Carbonell), 米切爾(T. Mitchell)編輯。
T.Mitchell.Machine Learning[M].New York:McGraw-Hill,1997.中提出了很多各式各樣的方法來求解這個謎題。在它的影響下,幾乎一夜之間一個新的學科誕生了。3年后,后續(xù)著作一本接一本地出現(xiàn)。相關(guān)學術(shù)刊物也很快被創(chuàng)立,有著巨大影響力的年度學術(shù)會議相繼召開。幾十、或許是幾百篇博士論文完成并通過答辯。
早期階段,問題不僅是如何學習,而是學什么和為什么學。這段充滿創(chuàng)造力的歲月讓人難以忘懷,唯一有些遺憾的是很多非常好的想法后來被放棄了。實用主義占了上風,資源都被投向那些最有希望的方向。經(jīng)過一段時間的發(fā)展,具體研究基本成形:知識系統(tǒng)if-then規(guī)則的歸納,分類歸納,程序基于經(jīng)驗來提高技能,Prolog程序自動調(diào)優(yōu),以及其他方面。相關(guān)的研究方向非常多,一些知名學者希望通過寫書來引領(lǐng)未來的發(fā)展,這其中有些人做得很成功。
機器學習發(fā)展的一個重要的轉(zhuǎn)折點是湯姆·米切爾(Tom Mitchell)的傳奇教科書。該書向博士生和科學家們總結(jié)了該領(lǐng)域的發(fā)展現(xiàn)狀,慢慢地大學也用這本書作為研究生的教材。同時,研究方法也變得更加系統(tǒng)化。大量機器學習測試庫被建立起來,用于比較性能或者學習算法的優(yōu)劣。統(tǒng)計評估方法也被廣泛地使用在評估過程中。相關(guān)流行程序的公開版本很容易獲得,從事這個學科的人數(shù)增至數(shù)千,甚至更多。
現(xiàn)在,到了很多大學都為本科生開設機器學習課程的階段。通常這些課程需要不同類型的教材。除了掌握基本技術(shù)以外,學生還需要了解不同方法的優(yōu)點和缺點,以及不同情況下每種方法的獨特之處。最重要的是,他們需要理解在特定情況下,哪些技術(shù)是可行的,哪些是不可行的。只有這樣才能在解決具體問題時做出正確的選擇。一本教材除了滿足以上的各項要求外,還應該介紹一些數(shù)學概念,多包括一些實用的建議。
關(guān)于教材,還要考慮材料的多少、結(jié)構(gòu)以及風格,以便能夠支持一個學期的導論課程。
第一個問題是材料的選擇。當高科技公司準備成立機器學習研究團隊時,大學就要向?qū)W生傳授相應的知識和技能,以及對有關(guān)行業(yè)需求的理解。出于這個原因,本書重點介紹了貝葉斯分類器,最近鄰分類器,線性和多項式分類器,決策樹,神經(jīng)網(wǎng)絡的基礎(chǔ),以及提升(Boosting)算法的原理。本書用很大篇幅來描述具體應用的典型特征。在現(xiàn)實中,當面對有一定難度的任務時,一些基本方法和老師在實驗環(huán)境下演示的結(jié)果可能不完全一樣。因此在學習過程中,學生必須知道每種方法會發(fā)生什么。
本書共包括14章,每章覆蓋一個專題。各章分成很多個小節(jié),每節(jié)介紹一個關(guān)鍵問題。建議學生在做完每一節(jié)后面的2~4個“控制問題”后再學習下一節(jié)。這些問題用來幫助檢查學生對學習材料的掌握情況。如果不會做這些題,則有必要重新閱讀相關(guān)內(nèi)容。
俗話說,實踐出真知。每章結(jié)尾安排了必要的練習用于實際操作。如果接下來的思考實驗能夠全部完成,將有助于更深入地理解所學內(nèi)容的各個方面。不過這些實驗難度較大,只有付出很大努力才能獲得正確的答案。所學的知識在上機實驗中可被進一步鞏固。編程對于學習同樣也很重要,F(xiàn)在,人們都習慣從網(wǎng)上下載所需的程序,這是捷徑,但本書不建議這樣做,因為只有具體實現(xiàn)了程序的全部細節(jié),才能領(lǐng)會機器學習技術(shù)的精妙之處。
機器學習是人工智能領(lǐng)域的一個重要分支,其研究涉及代數(shù)、幾何、概率統(tǒng)計、優(yōu)化、泛函分析、圖論、信息論、算法、認知計算等多個學科的知識,其應用不僅僅限于模式識別、計算機視覺、數(shù)據(jù)挖掘、生物信息學、智能控制等科學和工程領(lǐng)域,甚至在社會科學領(lǐng)域的研究中也有應用,如管理學、經(jīng)濟學和歷史學等。目前,隨著計算機科學和智能科學技術(shù)的進步,機器學習得到了快速發(fā)展,其方法被廣泛應用到了各個領(lǐng)域。尤其是近些年,深度學習方法快速發(fā)展并在多個領(lǐng)域展示出優(yōu)異性能,使機器學習和整個人工智能領(lǐng)域受到極大的關(guān)注。
機器學習是基于已有數(shù)據(jù)、知識或經(jīng)驗來設計模型或發(fā)現(xiàn)新知識的一個研究領(lǐng)域。20世紀50~70年代是機器學習研究的初期,人們基于邏輯知識表示試圖給機器賦予邏輯推理能力,取得了很多振奮人心的成果;20世紀80年代,專家系統(tǒng)受到高度重視,為專家系統(tǒng)獲取知識成為一個重要方向。20世紀80年代中后期,人工神經(jīng)網(wǎng)絡由于誤差反向傳播(BP)算法的重新提出和廣泛應用而形成一股熱潮,但其地位在90年代后期被以支持向量機為核心的統(tǒng)計學習理論所取代。20世紀90年代以后,受重視的機器學習方法還有集成學習、概率圖模型、半監(jiān)督學習、遷移學習等。2006年,以加拿大多倫多大學的G. Hinton教授為代表的幾位研究人員在深度學習方面取得巨大突破,在Google、Microsoft、Facebook等科技公司的推動下,深度學習借助于大數(shù)據(jù)和高性能計算的有利條件得到了廣泛應用和高度關(guān)注。目前,搜索引擎、機器人、無人駕駛汽車等高科技產(chǎn)品都依賴于機器學習技術(shù)。機器學習,特別是深度學習,在語音識別、人臉識別、圍棋、游戲等方面已經(jīng)超過了人類水平,可以想象機器學習與人類的生產(chǎn)、生活之間的關(guān)系將會越來越緊密。
過去幾十年,機器學習領(lǐng)域也出現(xiàn)了一些經(jīng)典的著作或教材。1983年,R.Michalski、J.Carbonell和T. Mitchell主編的《機器學習:一種人工智能方法》一書出版,標志著機器學習成為人工智能的一個獨立研究領(lǐng)域!禡achine Learning》期刊創(chuàng)刊于1986年,目前依然是機器學習領(lǐng)域的頂級期刊。1990年,J.Carbonell主編的《機器學習:范式與方法》對歸納學習、基于解釋的學習、遺傳算法和連接主義學習等機器學習范式及方法進行了深入探討。T. Mitchell于1997年出版的《機器學習》是一本經(jīng)典的機器學習教材,其中文版已于2003年由機械工業(yè)出版社出版,但因為出版年限較早,許多內(nèi)容已沒有時效性。1998年,V. Vapnik出版的《統(tǒng)計學習理論》是一本完整闡述統(tǒng)計機器學習思想的名著。2001年出版、2009年再版的《統(tǒng)計學習基礎(chǔ):數(shù)據(jù)挖掘,推理和預測》是美國斯坦福大學教授T. Hastie,R. Tibshirani和J. Friedman的一部力作,其中對最為流行的機器學習方法進行了全面而深入的介紹,因其嚴謹?shù)臄?shù)學推導,該書不失為機器學習研究進階的很好的讀物。E. Alpaydin所著的《機器學習導論》出版于2004年并于2010年再版,書中對基礎(chǔ)的機器學習方法進行了介紹,是一本機器學習入門的很好的教材。C. Bishop所著的《模式識別與機器學習》和K. Murphy所著的《機器學習:一個概率的視角》分別于2006年和2012年出版,兩本書都從概率的角度全面而細致地介紹了許多經(jīng)典的機器學習模型。C. Bishop的《模式識別與機器學習》可幫助讀者打下堅實的機器學習基礎(chǔ),而K. Murphy的書則相對介紹了更多較新的機器學習算法,甚至有一章專門介紹了深度學習方法。2012年,李航老師出版了《統(tǒng)計學習方法》,2016年,周志華老師出版了《機器學習》。這兩本書中,《統(tǒng)計學習方法》主要集中于幾種重要機器學習模型的介紹,而《機器學習》內(nèi)容相對更加全面,深入淺出,堪稱機器學習的中文經(jīng)典著作。相對于以上這些機器學習書籍,M. Kubat所寫的這本《機器學習導論》更像是一本科普性質(zhì)的讀物,作者盡量避開復雜的數(shù)學公式,用生動形象的方式介紹機器學習算法,而且本書篇幅適當,又涵蓋了幾乎所有基本的機器學習方法,使得本書不僅適合作為本科學生機器學習課程的教材,也適合于想了解機器學習入門知識的普通讀者。
本書的譯者都是工作在機器學習教學與研究第一線的年輕老師,其中仲國強副教授過去是我的博士研究生,在模式識別和機器學習領(lǐng)域都有很扎實的研究基礎(chǔ)。相信本書的中譯本對于國內(nèi)機器學習的教學和研究都會有所裨益,也為更多的人,尤其是初學者了解機器學習打開一扇門。
中國科學院自動化研究所副所長、模式識別國家重點實驗室主任
劉成林
米羅斯拉夫·庫巴特,美國邁阿密大學教授,從事機器學習教學和研究超過25年。他已發(fā)表100余篇經(jīng)過同行評審的論文,與人合編了兩本著作,是近60個會議和研討會的程序委員會委員,并擔任3本學術(shù)刊物的編委。他在兩個方面的前沿研究上得到了廣泛贊譽:時變概念的歸納學習和在非平衡訓練集上的學習。此外,在多標簽樣例上的歸納學習、層次組織的類別上的歸納學習、遺傳算法、神經(jīng)網(wǎng)絡的初始化等問題上,他也做出了很多貢獻。
推薦序
前言
第1章 一個簡單的機器學習任務//
1.1訓練集和分類器//
1.2一點題外話:爬山搜索//
1.3機器學習中的爬山法//
1.4分類器的性能//
1.5可用數(shù)據(jù)的困難//
1.6總結(jié)和歷史簡評//
1.7鞏固你的知識//
第2章 概率:貝葉斯分類器//
2.1單屬性的情況//
2.2離散屬性值的向量//
2.3稀少事件的概率:利用專家的直覺//
2.4如何處理連續(xù)屬性//
2.5高斯鐘形函數(shù):一個標準的概率密度函數(shù)//
2.6用高斯函數(shù)的集合近似概率密度函數(shù)//
2.7總結(jié)和歷史簡評//
2.8鞏固你的知識//
第3章 相似性:最近鄰分類器//
3.1k近鄰法則//
3.2度量相似性//
3.3不相關(guān)屬性與尺度縮放問題//
3.4性能方面的考慮//
3.5加權(quán)最近鄰//
3.6移除危險的樣例//
3.7移除多余的樣例//
3.8總結(jié)和歷史簡評//
3.9鞏固你的知識//
第4章 類間邊界:線性和多項式分類器//
4.1本質(zhì)//
4.2加法規(guī)則:感知機學習//
4.3乘法規(guī)則:WINNOW//
4.4多于兩個類的域//
4.5多項式分類器//
4.6多項式分類器的特殊方面//
4.7數(shù)值域和支持向量機//
4.8總結(jié)和歷史簡評//
4.9鞏固你的知識//
第5章 人工神經(jīng)網(wǎng)絡//
5.1作為分類器的多層感知機//
5.2神經(jīng)網(wǎng)絡的誤差//
5.3誤差的反向傳播//
5.4多層感知機的特殊方面//
5.5結(jié)構(gòu)問題//
5.6徑向基函數(shù)網(wǎng)絡//
5.7總結(jié)和歷史簡評//
5.8鞏固你的知識//
第6章 決策樹//
6.1作為分類器的決策樹//
6.2決策樹的歸納學習//
6.3一個屬性承載了多少信息//
6.4數(shù)值屬性的二元劃分//
6.5剪枝//
6.6將決策樹轉(zhuǎn)換為規(guī)則//
6.7總結(jié)和歷史簡評//
6.8鞏固你的知識//
第7章 計算學習理論//
7.1PAC 學習//
7.2PAC可學習性的實例//
7.3一些實踐和理論結(jié)果//
7.4VC維與可學習性//
7.5總結(jié)和歷史簡評//
7.6鞏固你的知識//
第8章 幾個有幫助的案例//
8.1字符識別//
8.2溢油檢測//
8.3睡眠分類//
8.4腦機界面//
8.5醫(yī)療診斷//
8.6文本分類//
8.7總結(jié)和歷史簡評//
8.8鞏固你的知識//
第9章 投票組合簡介//
9.1“裝袋”方法(Bagging)//
9.2夏皮爾提升(Schapires Boosting)//
9.3Adaboost——Boosting的實用版本//
9.4Boosting方法的變種//
9.5Boosting方法的計算優(yōu)勢//
9.6總結(jié)和歷史簡評//
9.7鞏固你的知識//
第10章 了解一些實踐知識//
10.1學習器的偏好//
10.2不平衡訓練集//
10.3語境相關(guān)域//
10.4未知屬性值//
10.5屬性選擇//
10.6雜項//
10.7總結(jié)和歷史簡評//
10.8鞏固你的知識//
第11章 性能評估//
11.1基本性能標準//
11.2精度和查全率//
11.3測量性能的其他方法//
11.4多標簽域內(nèi)的性能//
11.5學習曲線和計算開銷//
11.6實驗評估的方法//
11.7總結(jié)和歷史簡評//
11.8鞏固你的知識//
第12章 統(tǒng)計顯著性//
12.1總體抽樣//
12.2從正態(tài)分布中獲益//
12.3置信區(qū)間//
12.4一個分類器的統(tǒng)計評價//
12.5另外一種統(tǒng)計評價//
12.6機器學習技術(shù)的比較//
12.7總結(jié)和歷史簡評//
12.8鞏固你的知識//
第13章 遺傳算法//
13.1基本遺傳算法//
13.2單個模塊的實現(xiàn)//
13.3為什么能起作用//
13.4過早退化的危險//
13.5其他遺傳算子//
13.6高級版本//
13.7k-NN 分類器的選擇//
13.8總結(jié)和歷史簡評//
13.9鞏固你的知識//
第14章 增強學習//
14.1如何選出最高獎勵的動作//
14.2游戲的狀態(tài)和動作//
14.3SARSA方法//
14.4總結(jié)和歷史簡評//
14.5鞏固你的知識//
參考文獻//
遺傳算法是一個通用的一般框架,有無數(shù)可能的變化。本節(jié)將介紹兩種有趣的技術(shù)。
拉馬克(Lamarckian)選擇的說明。計算機程序不像生物學那樣會受到限制。設計者常拋棄這些限制,就像早期飛行員拋棄了羽毛翅膀的想法那樣。在創(chuàng)造“永生”樣本時我們就違反過限制,把樣本直接復制進后代從而免受到重組和變異的破壞。接下來再看看另一種情況。
在基準遺傳算法中,新的子串只能在重組和變異的隨機過程中產(chǎn)生。在這之后,遺傳信息在樣本整個生命周期中都將保持不變。一個比達爾文更早的生物學家讓-巴蒂斯特·拉馬克(Jean-Baptiste Larmarck)的想法更加靈活:他認為生物體的進化是受需求驅(qū)動的。長頸鹿為了能吃到高處的樹葉而不停地伸脖子,于是脖子變長,長脖子這一進化又遺傳給后代。盡管拉馬克的假說在生物學里被認為是不成立的,但是在其他領(lǐng)域并不是完全沒有用。例如,研究人員可通過發(fā)表科學論文把知識傳遞給后來人。
相比經(jīng)典的達爾文進化過程,拉馬克的進化過程要快得多,這就是為什么我們要在遺傳算法中實現(xiàn)它的原因。把這個概念并入到圖13.1所示的循環(huán)中的最簡單的辦法是把“拉馬克”算子放在“幸運輪”和重組算子之間。拉馬克算子的任務是通過適應性來改善染色體。例如,我們可以設問,如果某一位產(chǎn)生了變異會發(fā)生什么?因為變異是不可逆的,所以我們可以在變異過程中更靈活一些,先測試當?shù)趇位翻轉(zhuǎn)后將發(fā)生什么,然后選擇較好的版本。
多種群搜索。多種群搜索要和遺傳算法依靠的多參數(shù)一起進行。大多數(shù)時候要靠個人的經(jīng)驗,另外也可以在相同的初始種群上并行地運行多個遺傳算法,每個都有各自的變異頻率、是否逆序變異、不同的重組算子的組合或修改過的適應度函數(shù)。在這些情況中,有一些搜索能更快地找到解。
回憶一下在討論過早退化那一節(jié)曾提到的多種群搜索。在那里建議讓兩個或多個種群在相對隔絕的情況下獨立進化,偶爾允許異種雜交。而如果種群使用了本文前面提到的不同的染色體定義,則這種雜交可能不容易實現(xiàn)。這時編程人員需要使用專門的程序?qū)崿F(xiàn)一種編碼向另一種編碼的轉(zhuǎn)換。
數(shù)據(jù)串,符號串。染色體編碼不需要必須是二進制位串,也可以是數(shù)字串或字符串。前面提到的重組算子都可以用于這兩種編碼形式,但變異算子需要做些改變。在數(shù)字串中最常見的變異是用“噪聲”疊加到部分(或全部)染色體的“基因”上。例如,如果所有的位置包含區(qū)間[0,100]的數(shù)字,于是噪聲就可以建模為區(qū)間[-a,+a]的隨機數(shù),其中a是用戶指定的參數(shù),類似于前面二進制串中的變異頻率。它的工作原理見下表:
……
你還可能感興趣
我要評論
|