第 1章引言
好好學(xué)習(xí),天天向上。 ——毛澤東, 1951年題詞
大數(shù)據(jù)時(shí)代,人類收集、存儲(chǔ)、傳輸、管理數(shù)據(jù)的能力日益提高,各行各業(yè)已經(jīng)積累了大量的數(shù)據(jù)資源,如著名的 Nature雜志于 2008年 9月出版了一期大數(shù)據(jù)? [1],列舉了生物信息、交通運(yùn)輸、金融、互聯(lián)網(wǎng)等領(lǐng)域的大數(shù)據(jù)應(yīng)用。如何有效分析數(shù)據(jù)并得到有用信息甚至知識(shí)成為人們關(guān)注的焦點(diǎn)。人們寄希望于智能數(shù)據(jù)分析來(lái)完成該項(xiàng)任務(wù)。機(jī)器學(xué)習(xí)是智能數(shù)據(jù)分析技術(shù)的核心理論。 Science雜志于 2015年 7月組織了一個(gè)人工智能專題 [2],其中有關(guān)機(jī)器學(xué)習(xí)的內(nèi)容依然占據(jù)了重要的部分。本章將討論機(jī)器學(xué)習(xí)的基本目的、基本框架、思想發(fā)展以及未來(lái)走向。
1.1機(jī)器學(xué)習(xí)的目的:從數(shù)據(jù)到知識(shí)
人類最重要的一項(xiàng)能力是能夠從過(guò)去的經(jīng)驗(yàn)中學(xué)習(xí),并形成知識(shí)。千百年來(lái),人類不斷從學(xué)習(xí)中積累知識(shí),為人類文明打下了堅(jiān)實(shí)的基礎(chǔ)。“學(xué)習(xí)”是人與生俱來(lái)的基本能力,是人類智能( human intelligence)形成的必要條件。自 2000年以來(lái),隨著互聯(lián)網(wǎng)技術(shù)的普及,積累的數(shù)據(jù)已經(jīng)超過(guò)了人類個(gè)體處理的極限,以往人類自己親自處理數(shù)據(jù)形成知識(shí)的模式已經(jīng)到了必須改變的地步,人類必須借助于計(jì)算機(jī)才能處理大數(shù)據(jù),更直白地說(shuō),我們希望計(jì)算機(jī)可以像人一樣從數(shù)據(jù)中學(xué)到知識(shí)。
由此,如何利用計(jì)算機(jī)從大數(shù)據(jù)中學(xué)到知識(shí)成為人工智能研究的熱點(diǎn)!皺C(jī)器學(xué)習(xí)”(machine learning)是從數(shù)據(jù)中提取知識(shí)的關(guān)鍵技術(shù)。其初衷是讓計(jì)算機(jī)具備與人類相似的學(xué)習(xí)能力。迄今為止,人們尚不知道如何使計(jì)算機(jī)具有與人類相媲美的學(xué)習(xí)能力。然而,每年都有大量新的針對(duì)特定任務(wù)的機(jī)器學(xué)習(xí)算法涌現(xiàn),幫助人們發(fā)現(xiàn)完成這些特定任務(wù)的新知識(shí)(有時(shí)也許僅僅是隱性新知識(shí))。對(duì)機(jī)器學(xué)習(xí)的研究不僅已經(jīng)為人們提供了許多前所未有的應(yīng)用服務(wù)(如信息搜索、機(jī)器翻譯、語(yǔ)音識(shí)別、無(wú)人駕駛等),改善了人們的生活,而且也幫助人們開辟了許多新的學(xué)科領(lǐng)域,如計(jì)算金融學(xué)、計(jì)算廣告學(xué)、計(jì)算生物學(xué)、計(jì)算社會(huì)學(xué)、計(jì)算歷史學(xué)等,為人類理解這個(gè)世界提供了新的工具和視角?梢韵胍 ,作為從數(shù)據(jù)中提取知識(shí)的工具,機(jī)器學(xué)習(xí)在未來(lái)還會(huì)幫助人們進(jìn)一步開拓新的應(yīng)用和新的學(xué)科。
機(jī)器學(xué)習(xí)存在很多不同的定義,常用的有三個(gè)。第一個(gè)常用的機(jī)器學(xué)習(xí)定義是“計(jì)算機(jī)系統(tǒng)能夠利用經(jīng)驗(yàn)提高自身的性能”,更加形式化的論述可見文獻(xiàn) [3]。機(jī)器學(xué)習(xí)名著《統(tǒng)計(jì)學(xué)習(xí)理論的本質(zhì)》給出了機(jī)器學(xué)習(xí)的第二個(gè)常見定義,“學(xué)習(xí)就是一個(gè)基于經(jīng)驗(yàn)數(shù)據(jù)的函數(shù)估計(jì)問(wèn)題” [4]。在《統(tǒng)計(jì)學(xué)習(xí)基礎(chǔ)》這本書的序言里給出了第三個(gè)常見的機(jī)器學(xué)習(xí)定義,“提取重要模式、趨勢(shì),并理解數(shù)據(jù),即從數(shù)據(jù)中學(xué)習(xí)” [11]。這三個(gè)常見定義各有側(cè)重:第一個(gè)聚焦學(xué)習(xí)效果,第二個(gè)的亮點(diǎn)是給出了可操作的學(xué)習(xí)定義,第三個(gè)突出了學(xué)習(xí)任務(wù)的分類。但其共同點(diǎn)是強(qiáng)調(diào)了經(jīng)驗(yàn)或者數(shù)據(jù)的重要性,即學(xué)習(xí)需要經(jīng)驗(yàn)或者數(shù)據(jù)。注意到提高自身性能需要知識(shí),函數(shù)、模式、趨勢(shì)顯然自身是知識(shí),因此,這三個(gè)常見的定義也都強(qiáng)調(diào)了從經(jīng)驗(yàn)中提取知識(shí),這意味著這三種定義都認(rèn)可機(jī)器學(xué)習(xí)提供了從數(shù)據(jù)中提取知識(shí)的方法。眾所周知,大數(shù)據(jù)時(shí)代的特點(diǎn)是“信息泛濫成災(zāi)但知識(shí)依然匱乏”?梢灶A(yù)料,能自動(dòng)從數(shù)據(jù)中學(xué)到知識(shí)的機(jī)器學(xué)習(xí)必將在大數(shù)據(jù)時(shí)代扮演重要的角色。
那么如何構(gòu)建一個(gè)機(jī)器學(xué)習(xí)任務(wù)的基本框架呢?
1.2機(jī)器學(xué)習(xí)的基本框架
考慮到我們希望用機(jī)器學(xué)習(xí)來(lái)代替人學(xué)習(xí)知識(shí),因此,在研究機(jī)器學(xué)習(xí)以前,先回顧一下人類如何學(xué)習(xí)知識(shí)是有益的。對(duì)于人來(lái)說(shuō),要完成一個(gè)具體的學(xué)習(xí)任務(wù),需要學(xué)習(xí)材料、學(xué)習(xí)方法以及學(xué)習(xí)效果評(píng)估方法。如學(xué)習(xí)英語(yǔ),需要英語(yǔ)課本、英語(yǔ)磁帶或者錄音等學(xué)習(xí)材料,明確學(xué)習(xí)方法是背誦和練習(xí),告知學(xué)習(xí)效果評(píng)估方法是英語(yǔ)評(píng)測(cè)考試。檢測(cè)一個(gè)人英語(yǔ)學(xué)得好不好,就看其利用學(xué)習(xí)方法從學(xué)習(xí)材料得到的英語(yǔ)知識(shí)是否能通過(guò)評(píng)測(cè)考試。機(jī)器學(xué)習(xí)要完成一個(gè)學(xué)習(xí)任務(wù),也需要解決這三方面的問(wèn)題,并通過(guò)預(yù)定的測(cè)試。
對(duì)應(yīng)于人類使用的學(xué)習(xí)材料,機(jī)器學(xué)習(xí)完成一個(gè)學(xué)習(xí)任務(wù)需要的學(xué)習(xí)材料,一般用描述對(duì)象的數(shù)據(jù)集合來(lái)表示,有時(shí)也用經(jīng)驗(yàn)來(lái)表示。對(duì)應(yīng)于人類完成學(xué)習(xí)任務(wù)的學(xué)習(xí)方法,機(jī)器學(xué)習(xí)完成一個(gè)學(xué)習(xí)任務(wù)需要的學(xué)習(xí)方法,一般用學(xué)習(xí)算法來(lái)表示。對(duì)應(yīng)于人類完成一個(gè)學(xué)習(xí)任務(wù)的學(xué)習(xí)效果現(xiàn)場(chǎng)評(píng)估方法(如老師需要時(shí)時(shí)觀察課堂氣氛和學(xué)生的注意力情況),機(jī)器學(xué)習(xí)完成一個(gè)學(xué)習(xí)任務(wù)也需要對(duì)學(xué)習(xí)效果進(jìn)行即時(shí)評(píng)估,一般用學(xué)習(xí)判據(jù)來(lái)表示。對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),用來(lái)描述數(shù)據(jù)對(duì)象的數(shù)據(jù)集合對(duì)最終學(xué)習(xí)任務(wù)的完成狀況有重要影響,用來(lái)指導(dǎo)學(xué)習(xí)算法設(shè)計(jì)的學(xué)習(xí)判據(jù)有時(shí)也用來(lái)評(píng)估學(xué)習(xí)算法的效果,但一般機(jī)器學(xué)習(xí)算法性能的標(biāo)準(zhǔn)評(píng)估會(huì)不同于學(xué)習(xí)判據(jù),正如人學(xué)習(xí)的學(xué)習(xí)效果即時(shí)評(píng)估方式與最終的評(píng)估方式一般也不同。對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),通常也會(huì)有特定的測(cè)試指標(biāo),如正確率,學(xué)習(xí)速度等。
可以用一個(gè)具體的機(jī)器學(xué)習(xí)任務(wù)來(lái)說(shuō)明。給定一個(gè)手寫體數(shù)字字符數(shù)據(jù)集合,希望機(jī)器能夠通過(guò)這些給定的手寫體數(shù)字字符,學(xué)到正確識(shí)別手寫數(shù)字字符的知識(shí)。顯然,學(xué)習(xí)材料是手寫體數(shù)字字符數(shù)據(jù)集,學(xué)習(xí)算法是字符識(shí)別算法,學(xué)習(xí)判據(jù)可以是識(shí)別正確率,也可以是其他有助于提高識(shí)別正確率的指標(biāo)。
數(shù)據(jù)集合、學(xué)習(xí)判據(jù)、學(xué)習(xí)算法對(duì)于任何學(xué)習(xí)任務(wù)都是需要討論的對(duì)象。數(shù)據(jù)集合的不同表示,影響學(xué)習(xí)判據(jù)與學(xué)習(xí)算法的設(shè)計(jì)。學(xué)習(xí)判據(jù)與學(xué)習(xí)算法的設(shè)計(jì)密切相關(guān),下面分別討論。
1.2.1數(shù)據(jù)集合與對(duì)象特性表示
對(duì)于一個(gè)學(xué)習(xí)任務(wù)來(lái)說(shuō),我們希望學(xué)到特定對(duì)象集合的特定知識(shí)。無(wú)論何種學(xué)習(xí)任務(wù),學(xué)到的知識(shí)通常是與這個(gè)世界上的對(duì)象相關(guān)。通過(guò)學(xué)到的知識(shí),可以對(duì)這個(gè)世界上的對(duì)象有更好的描述,甚至可以預(yù)測(cè)其具有某種性質(zhì)、關(guān)系或者行為。為此,學(xué)習(xí)算法需要這些對(duì)象的特性信息,這些信息可以客觀觀測(cè),即關(guān)于特定對(duì)象的特性信息集合,該集合一般稱為對(duì)象特性表示,是學(xué)習(xí)任務(wù)作為學(xué)習(xí)材料的數(shù)據(jù)集合的組成部分。理論上,用來(lái)描述對(duì)象的數(shù)據(jù)集合的表示包括對(duì)象特性輸入表示、對(duì)象特性輸出表示。
顯然,對(duì)象特性輸入表示是我們能夠得到的對(duì)象的觀測(cè)描述,對(duì)象特性輸出表示是我們學(xué)習(xí)得到的對(duì)象的特性描述。需要指出的是,對(duì)象的特性輸入表示或者說(shuō)對(duì)象的輸入特征一定要與學(xué)習(xí)任務(wù)相關(guān)。根據(jù)丑小鴨定理( Ugly Duckling Theorem)[5],不存在獨(dú)立于問(wèn)題而普遍適用的特征表示,特征的有效與否是問(wèn)題依賴的。丑小鴨定理是由 Satosi Watanabe于 1969年提出的,其內(nèi)容可表述為“如果選定的特征不合理,那么世界上所有事物之間的相似程度都一樣,丑小鴨與白天鵝之間的區(qū)別和兩只白天鵝之間的區(qū)別一樣大”。該定理表明在沒(méi)有給定任何假設(shè)的情況下,不存在普適的特征表示;相似性的度量是特征依賴的,是主觀的、有偏置的,不存在客觀的相似性度量標(biāo)準(zhǔn)。因此,對(duì)于任何機(jī)器學(xué)習(xí)任務(wù)來(lái)說(shuō),得到與學(xué)習(xí)任務(wù)匹配的特征表示是學(xué)習(xí)任務(wù)成功的首要條件。對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),一般假設(shè)對(duì)象特征已經(jīng)給定,特別是對(duì)象特性輸入表示。
對(duì)于對(duì)象特性輸入表示,通常有三種表示方式。一種是向量表示,對(duì)于每個(gè)對(duì)象,可以相對(duì)獨(dú)立地觀察其特有的一些特征。這些特征組成該對(duì)象的一個(gè)描述,并代表該對(duì)象。第二種表示是網(wǎng)絡(luò)表示,對(duì)于每個(gè)對(duì)象,由其與其他對(duì)象的關(guān)系來(lái)描述,簡(jiǎn)單說(shuō)來(lái),觀察得到的是對(duì)象之間的彼此關(guān)系。第三種是混合表示 ,對(duì)于每個(gè)對(duì)象,其向量表示和網(wǎng)絡(luò)表示同時(shí)存在。
不論對(duì)于人還是機(jī)器,能夠提供學(xué)習(xí)或者訓(xùn)練的對(duì)象總是有限的。不妨假設(shè)有 N個(gè)對(duì)象,對(duì)象集合為 O = {o1,o2, ··· ,oN },其中 ok表示第 k個(gè)對(duì)象。其對(duì)應(yīng)的對(duì)象特性輸入表示用 X = {x1,x2, ··· ,xN }來(lái)表示,其中 xk表示對(duì)象 ok的特性輸入表示。當(dāng)每個(gè)對(duì)象有向量表示時(shí), xk可以表示為 xk =[x1k,x2k, ··· ,xpk]T。因此,對(duì)象特性輸入表示 X可以用矩陣 [xτk]p×N來(lái)表示,其中 p表示對(duì)象輸入特征的維數(shù), xτk表示 ok的第 τ個(gè)輸入特征值,這些特征值可以是名詞性屬性值,也可以是連續(xù)性屬性值。
如果對(duì)象特性輸入表示 X存在網(wǎng)絡(luò)表示,即 X可以用矩陣 [Nkl]N×N來(lái)表示,其中 Nkl表示對(duì)象 ok與對(duì)象 ol的網(wǎng)絡(luò)關(guān)系。如果是相似性關(guān)系,則對(duì)象特性輸入表示 X為相似性矩陣 S(X)=[skl]N×N,其中 skl表示對(duì)象 ok與對(duì)象 ol的相似性。通常, skl越大表明對(duì)象 ok與對(duì)象 ol的相似性越大。因此,對(duì)象 ok可以由行向量 [sk1,sk2, ··· ,skN ]表示。如果是相異性關(guān)系,則對(duì)象特性輸入表示 X為相異性矩陣 D(X)=[Dkl]N×N,其中 Dkl表示對(duì)象 ok與對(duì)象 o1的相異性。類似的,Dkl越大表明對(duì)象 ok與對(duì)象 ol的相異性越大。因此,對(duì)象 ok可以由行向量 [Dk1,Dk2, ··· ,DkN ]表示。如果是相鄰關(guān)系,對(duì)象特性輸入表示 X為鄰接性矩陣 A(X)=[akl]N×N,其中 akl表示對(duì)象 ok與對(duì)象 ol是否相鄰,通常其取值為 0或者 1。
對(duì)應(yīng)的對(duì)象特性輸出表示用 Y = {y1,y2, ··· ,yN }來(lái)表示,其中 yk表示對(duì)象 ok的特性輸出表示。具體的表示形式由學(xué)習(xí)算法決定,通常是對(duì)象特性輸出表示 Y可以用矩陣 [yτk]d×N來(lái)表示,其中 d表示對(duì)象輸出特征的維數(shù), yτk表示 ok的第 τ個(gè)輸出特征值,這些特征值通常是連續(xù)性屬性值。
顯然,除去對(duì)象特性輸入、輸出表示,數(shù)據(jù)集合還有其他部分,這些部分的表示與知識(shí)表示有關(guān),通常依賴于知識(shí)表示。知識(shí)表示不同,學(xué)習(xí)算法的數(shù)據(jù)集合輸入輸出表示也會(huì)不同。一個(gè)容易想到的公開問(wèn)題是,適合于機(jī)器學(xué)習(xí)的統(tǒng)一知識(shí)表示是否存在?如果存在,是何形式?現(xiàn)今的機(jī)器學(xué)習(xí)方法一般是針對(duì)具體的學(xué)習(xí)任務(wù),設(shè)定具體的知識(shí)表示。因此,本章先不討論學(xué)習(xí)算法的輸入輸出統(tǒng)一表示,這個(gè)問(wèn)題留待第 2章討論。
1.2.2學(xué)習(xí)判據(jù)
完成一個(gè)學(xué)習(xí)任務(wù),需要一個(gè)判據(jù)作為選擇學(xué)習(xí)到的知識(shí)好壞的評(píng)價(jià)標(biāo)準(zhǔn)。理論上,符合一個(gè)學(xué)習(xí)任務(wù)的具體化知識(shí)可以有很多。通常,如何從中選出最好的具體化知識(shí)表示是一個(gè) NP難問(wèn)題。因此,需要限定符合一個(gè)特定學(xué)習(xí)任務(wù)的具體化知識(shí)范圍,適當(dāng)減小知識(shí)假設(shè)空間的大小,減少學(xué)習(xí)算法的搜索空間。為了從限定的假設(shè)空間選擇最優(yōu)的知識(shí)表示,需要根據(jù)不同的學(xué)習(xí)要求來(lái)設(shè)定學(xué)習(xí)判據(jù)對(duì)搜索空間各個(gè)元素的不同分值。判據(jù)設(shè)定的準(zhǔn)則有很多,理論上與學(xué)習(xí)任務(wù)相關(guān),本書將在以后的章節(jié)中進(jìn)行討論。需要指出的是,有時(shí)學(xué)習(xí)判據(jù)也被稱為目標(biāo)函數(shù)。在本書中,對(duì)于這兩個(gè)術(shù)語(yǔ)不再特意區(qū)別。
1.2.3學(xué)習(xí)算法
在學(xué)習(xí)判據(jù)給出了從知識(shí)表示空間搜索最優(yōu)知識(shí)表示的打分函數(shù)之后,還需要設(shè)計(jì)好的優(yōu)化方法,以便找出對(duì)應(yīng)于打分函數(shù)達(dá)到最優(yōu)的知識(shí)表示。此時(shí),機(jī)器學(xué)習(xí)問(wèn)題通常歸結(jié)為一個(gè)最優(yōu)化問(wèn)題。選擇最優(yōu)化方法對(duì)有效完成學(xué)習(xí)任務(wù)很關(guān)鍵。目前,最優(yōu)化理論在機(jī)器學(xué)習(xí)問(wèn)題中已經(jīng)變得越來(lái)越重要。典型的最優(yōu)化算法有梯度下降算法、共軛梯度算法、偽牛頓算法、線性規(guī)劃算法、演化算法、群體智能等。如何選擇合適的優(yōu)化技術(shù),得到快速、準(zhǔn)確的解是很多機(jī)器學(xué)習(xí)問(wèn)題的難點(diǎn)所在。這就要求工程技術(shù)和數(shù)學(xué)理論相結(jié)合,以便很好地解決優(yōu)化問(wèn)題。一般建議初學(xué)者先采用已有的最優(yōu)化算法,之后再設(shè)計(jì)專門的優(yōu)化算法。
是否有不依賴于具體問(wèn)題的最優(yōu)學(xué)習(xí)算法呢?如果有的話,只需學(xué)一種算法就可以包打天下了。可惜的是,結(jié)論是否。著名的沒(méi)有免費(fèi)午餐定理已經(jīng)明確指出:不存在對(duì)于所有學(xué)習(xí)問(wèn)題都適用的學(xué)習(xí)算法 [6–8]。
1.3機(jī)器學(xué)習(xí)思想簡(jiǎn)論
機(jī)器學(xué)習(xí)作為一個(gè)單獨(dú)的研究方向,應(yīng)該說(shuō)是在 20世紀(jì) 80年代第一屆 ICML召開之后才有的事情。但是,廣義上來(lái)說(shuō),機(jī)器學(xué)習(xí)任務(wù),或者學(xué)習(xí)任務(wù),一有人類就出現(xiàn)了。在日常生活中,人們每天都面臨如何從自己采集的數(shù)據(jù)中提取知識(shí)進(jìn)行使用的問(wèn)題。比如,大的方面,需要觀察環(huán)境的變化來(lái)學(xué)習(xí)如何制定政策使得我們這個(gè)地球可持續(xù)發(fā)展;小的方面,需要根據(jù)生活的經(jīng)驗(yàn)買到一個(gè)可口的柚子或者西瓜,選擇一個(gè)靠譜的理發(fā)師,等等。在計(jì)算機(jī)出現(xiàn)以前,數(shù)據(jù)采集都是人直接感知或者操作,采集到的數(shù)據(jù)量較小,人可以直接從數(shù)據(jù)中提取知識(shí),并不需要機(jī)器學(xué)習(xí)。如對(duì)于回歸問(wèn)題,高斯在 19世紀(jì)早期( 1809)就發(fā)表了最小二乘法;對(duì)于數(shù)據(jù)降維問(wèn)題,卡爾·皮爾遜在 1901年就發(fā)明了主成分分析( PCA);對(duì)于聚類問(wèn)題, K-means算法最早也可追溯到 1953年 [9]。但是,這些算法和問(wèn)題被歸入機(jī)器學(xué)習(xí),也只有在機(jī)器收集數(shù)據(jù)能力越來(lái)越成熟導(dǎo)致人類直接從數(shù)據(jù)中提取知識(shí)成為不可能之后才變得沒(méi)有異議。
在過(guò)去的 30年間,機(jī)器學(xué)習(xí)從處理僅包含上百個(gè)樣本數(shù)據(jù)的玩具問(wèn)題( toy-problem)起步,發(fā)展到今天,已經(jīng)成為從科學(xué)研究到商業(yè)應(yīng)用的標(biāo)準(zhǔn)數(shù)據(jù)分析工具。但是其研究熱點(diǎn)也幾經(jīng)變遷,本書將從思想史的角度略加總結(jié)。
機(jī)器學(xué)習(xí)最早的目標(biāo)是從數(shù)據(jù)中發(fā)現(xiàn)可以解釋的知識(shí),在追求算法性能的同時(shí),強(qiáng)調(diào)算法的解釋性。早期的線性感知機(jī)、決策樹和最近鄰等算法可以說(shuō)是這方面的典型代表作。但是, 1969年,Minsky指出線性感知機(jī)算法不能解決異或問(wèn)題 [10]。由于現(xiàn)實(shí)世界的問(wèn)題大多是非線性問(wèn)題,而異或問(wèn)題可以說(shuō)是最簡(jiǎn)單的非線性問(wèn)題,由此可以推斷線性感知機(jī)算法用處不多。這對(duì)于以線性感知機(jī)算法為代表的神經(jīng)網(wǎng)絡(luò)研究可以說(shuō)是致命一擊,直接導(dǎo)致了神經(jīng)網(wǎng)絡(luò)甚至人工智能的第一個(gè)冬天。感知機(jī)算法的發(fā)明人、神經(jīng)網(wǎng)絡(luò)先驅(qū) Rosenblatt于 1971年因故去世,更加增添了這個(gè)冬天的寒意。
需要指出的是,很多實(shí)際應(yīng)用并不要求算法具有可解釋性。比如機(jī)器翻譯、天氣預(yù)報(bào)、卜卦算命等。在這種需求下,如果一個(gè)算法的泛化性能能夠超過(guò)其他同類算法,即使該算法缺少解釋性,則該算法依然是優(yōu)秀的學(xué)習(xí)算法。 20世紀(jì) 80年代神經(jīng)網(wǎng)絡(luò)的復(fù)蘇,其基本思路即為放棄解釋性,一心提高算法的泛化性能。神經(jīng)網(wǎng)絡(luò)放棄解釋性的最重要標(biāo)志是其激活函數(shù)不再使用線性函數(shù),而是典型的非線性函數(shù)如 Sigmoid函數(shù)和雙曲函數(shù)等,其優(yōu)點(diǎn)是其表示能力大幅提高,相應(yīng)的復(fù)雜性也極度增長(zhǎng)。眾所周知,解釋性能好的學(xué)習(xí)算法,其泛化性能也要滿足實(shí)際需求。如果其泛化性能不佳,即使解釋性好,人們也不會(huì)選用。在 20世紀(jì) 80年代,三層神經(jīng)網(wǎng)絡(luò)的性能超過(guò)了當(dāng)時(shí)的分類算法如決策樹、最近鄰等,雖然其解釋性不佳,神經(jīng)網(wǎng)絡(luò)依然成為當(dāng)時(shí)最流行的機(jī)器學(xué)習(xí)模型。在神經(jīng)網(wǎng)絡(luò)放棄解釋性之后,其對(duì)于算法設(shè)計(jì)者的知識(shí)儲(chǔ)備要求也降到了最低,因此,神經(jīng)網(wǎng)絡(luò)在 20世紀(jì) 80年代吸引了大批的研究者。
當(dāng)然,也有很多實(shí)際應(yīng)用要求算法具有可解釋性,如因果關(guān)系發(fā)現(xiàn)、控制等。應(yīng)該說(shuō),同時(shí)追求解釋性和泛化性能一直是非神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)研究者設(shè)計(jì)學(xué)習(xí)算法的基本約束。一旦一個(gè)算法既具有很好的解釋性,其性能又超過(guò)神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)研究就將面臨極大的困境。這樣的事情在歷史上也曾真實(shí)地發(fā)生過(guò)。 1995年 Vapnik提出了支持向量機(jī)分類算法,該算法解釋性好,其分類性能也超過(guò)了當(dāng)時(shí)常見的三層神經(jīng)網(wǎng)絡(luò),尤其需要指出的是,其理論的分類錯(cuò)誤率可以通過(guò) Valiant的 PAC理論來(lái)估計(jì)。這導(dǎo)致了神經(jīng)網(wǎng)絡(luò)研究的十年沉寂,有人也將其稱為人工智能的第二個(gè)冬天。在這期間,大批原先的神經(jīng)網(wǎng)絡(luò)研究者紛紛選擇離開,只有少數(shù)人堅(jiān)持研究神經(jīng)網(wǎng)絡(luò)。這個(gè)時(shí)間段對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),顯然不是冬季。在這十年間,人們提出了概率圖理論、核方法、流形學(xué)習(xí)、稀疏學(xué)習(xí)、排序?qū)W習(xí)等多種機(jī)器學(xué)習(xí)新方向。特別是在 20世紀(jì)末和 21世紀(jì)初,由于在搜索引擎、字符識(shí)別等應(yīng)用領(lǐng)域取得的巨大進(jìn)展,機(jī)器學(xué)習(xí)的影響力日益興旺。其標(biāo)志事件有:1997年 Tom Mitchell機(jī)器學(xué)習(xí)經(jīng)典教科書的出現(xiàn) [3],2010年和 2011年連續(xù)兩年圖靈獎(jiǎng)?lì)C發(fā)給了機(jī)器學(xué)習(xí)的研究者 Valiant和 Pearl。
三十年河?xùn)|,三十年河西。 2006年以后,神經(jīng)網(wǎng)絡(luò)突破了三層網(wǎng)絡(luò)結(jié)構(gòu)限制,大幅提高了模型的表示能力,又逢大數(shù)據(jù)時(shí)代相伴而生的高計(jì)算能力,神經(jīng)網(wǎng)絡(luò)化身深度學(xué)習(xí),再次將分類能力提高到同時(shí)代其他模型無(wú)法匹敵的程度,有人將其稱為人工智能的第三個(gè)春天。在機(jī)器學(xué)習(xí)的許多應(yīng)用領(lǐng)域,深度學(xué)習(xí)甚至成為機(jī)器學(xué)習(xí)的代名詞。雖然如此,時(shí)至今日,深度學(xué)習(xí)只是機(jī)器學(xué)習(xí)的一個(gè)分支,無(wú)論其沉寂或者過(guò)熱,都不能逆轉(zhuǎn)而只能加速全部機(jī)器學(xué)習(xí)本身應(yīng)用越來(lái)越普及、理論越來(lái)越深入的發(fā)展趨勢(shì)。
如今,機(jī)器學(xué)習(xí)算法每天被用來(lái)幫助解決不同學(xué)科不同商業(yè)應(yīng)用的各種實(shí)際數(shù)據(jù)分析問(wèn)題,相關(guān)的研究者每年也會(huì)針對(duì)相同或者不同的學(xué)習(xí)問(wèn)題設(shè)計(jì)成百上千的新學(xué)習(xí)算法。面對(duì)一個(gè)學(xué)習(xí)任務(wù),使用者經(jīng)常面對(duì)十幾個(gè)甚至幾百個(gè)學(xué)習(xí)算法,如何從已有的算法中選擇一個(gè)適當(dāng)?shù)姆椒ɑ蛘咴O(shè)計(jì)一個(gè)適合自己?jiǎn)栴}的算法成為當(dāng)前機(jī)器學(xué)習(xí)研究者和使用者必須面對(duì)的問(wèn)題。早在 2004年,周志華在國(guó)家自然科學(xué)基金委員會(huì)秦皇島會(huì)議上做了一個(gè)名為“普適機(jī)器學(xué)習(xí)”的學(xué)術(shù)報(bào)告,其中曾明確指出:機(jī)器學(xué)習(xí)“以 Tom Mitchell的經(jīng)典教科書( McGraw Hill出版社,1997)為例,很難看到基礎(chǔ)學(xué)科(例如數(shù)學(xué)、物理學(xué))教科書中那種貫穿始終的體系,也許會(huì)讓人感到這不過(guò)是不同方法和技術(shù)的堆砌”。因此,已有的機(jī)器學(xué)習(xí)算法是否存在共性,是否存在統(tǒng)一的框架來(lái)描述機(jī)器學(xué)習(xí)算法的設(shè)計(jì)過(guò)程,就變成了一個(gè)亟待解決的問(wèn)題。本書將從知識(shí)表示的角度出發(fā),來(lái)闡述我們對(duì)這一問(wèn)題的研究結(jié)果,并據(jù)此討論現(xiàn)存的機(jī)器學(xué)習(xí)算法的適用范圍。
延伸閱讀
目前有多種不同的視角和觀點(diǎn)研究機(jī)器學(xué)習(xí)。例如,可以從概率圖角度來(lái)看待機(jī)器學(xué)習(xí) [12, 13],可以從統(tǒng)計(jì)角度來(lái)討論機(jī)器學(xué)習(xí) [11],還可以從神經(jīng)網(wǎng)絡(luò)的觀點(diǎn)來(lái)闡述機(jī)器學(xué)習(xí) [16],也可以調(diào)和以上各派觀點(diǎn)來(lái)闡述機(jī)器學(xué)習(xí) [17]?陀^地說(shuō),上述觀點(diǎn)都有一定道理,但是也有一個(gè)共同而重要的缺陷,那就是沒(méi)有給出一個(gè)統(tǒng)管一切學(xué)習(xí)(包括機(jī)器、人類和生物)的理論。這正是 Jordan和 Mitchell在 2015年在 Science上發(fā)文指出的,機(jī)器學(xué)習(xí)所關(guān)注的兩大問(wèn)題之一:是否存在統(tǒng)管一切機(jī)器、人類和生物的學(xué)習(xí)規(guī)律 [14]。本書將致力于解決這一個(gè)問(wèn)題。為此,本書采取了不同于以往的觀點(diǎn),從知識(shí)表示這一角度來(lái)闡述機(jī)器學(xué)習(xí),并以此為出發(fā)點(diǎn)對(duì)現(xiàn)在的機(jī)器學(xué)習(xí)方法進(jìn)行統(tǒng)一研究。
本書的基本出發(fā)點(diǎn)是,每個(gè)機(jī)器學(xué)習(xí)算法都有自己的知識(shí)表示。如果數(shù)據(jù)中
含有的知識(shí)不適合特定機(jī)器學(xué)習(xí)算法的知識(shí)表示,期望這種機(jī)器學(xué)習(xí)算法能夠?qū)W到數(shù)據(jù)中含有的知識(shí)并不現(xiàn)實(shí)。因此,知識(shí)表示對(duì)于機(jī)器學(xué)習(xí)至關(guān)重要。但是,眾所周知,經(jīng)典的知識(shí)定義是柏拉圖提出的,在 2000多年的時(shí)間里未受到嚴(yán)重的挑戰(zhàn)。直到 1963年,蓋梯爾寫了一生唯一的一篇三頁(yè)紙論文。這短短的三頁(yè)紙使蓋梯爾成為哲學(xué)史上繞不過(guò)去的人物,改變了蓋梯爾的命運(yùn),也改變了知識(shí)論的發(fā)展進(jìn)程。這三頁(yè)紙中提出的蓋梯爾難題直接否定了經(jīng)典的知識(shí)定義 [18]。其直接后果是到目前并沒(méi)有一個(gè)統(tǒng)一的知識(shí)定義,更不用說(shuō)知識(shí)的統(tǒng)一表示。因此,暫時(shí)放棄知識(shí)的整體研究,而致力于知識(shí)的基本組成單位研究也許是一條更為可行的路徑。本書即是這樣的一個(gè)嘗試和努力。
注意到知識(shí)的最小組成單位是概念 [15],而目前的機(jī)器學(xué)習(xí)主要關(guān)注于從數(shù)據(jù)中提取概念。因此,研究概念的表示也將有助于機(jī)器學(xué)習(xí)的研究。正是從這一點(diǎn)出發(fā),本書以一種統(tǒng)一的方式研究了常見的機(jī)器學(xué)習(xí)算法,如密度估計(jì)、回歸、數(shù)據(jù)降維、聚類和分類等。
當(dāng)然,機(jī)器學(xué)習(xí)的發(fā)展不僅與知識(shí)表示直接相關(guān),也與最優(yōu)化、統(tǒng)計(jì)等密切相關(guān)。歷史上,計(jì)算機(jī)、數(shù)學(xué)、心理學(xué)、神經(jīng)學(xué)、生物信息學(xué)、哲學(xué)等很多學(xué)科都曾極大地促進(jìn)了機(jī)器學(xué)習(xí)的發(fā)展。未來(lái)是否還有其他學(xué)科對(duì)機(jī)器學(xué)習(xí)有重要影響,也是一個(gè)有趣的話題。
最后,稍微討論一下與機(jī)器學(xué)習(xí)相關(guān)的學(xué)習(xí)、研究資料。目前,機(jī)器學(xué)習(xí)的發(fā)展方興未艾,特別是學(xué)習(xí)算法的研究成果日新月異。除了已經(jīng)列入?yún)⒖嘉墨I(xiàn)的部分經(jīng)典著作外,還有很多有影響的學(xué)術(shù)會(huì)議、學(xué)術(shù)期刊和網(wǎng)絡(luò)資源等,如機(jī)器學(xué)習(xí)相關(guān)學(xué)術(shù)會(huì)議 ICML、NIPS、COLT,學(xué)術(shù)期刊 TPAMI和 JMLR,網(wǎng)絡(luò)資源 http://videolectures.net/,有興趣的讀者可以自行查閱。
第1章引言1
11機(jī)器學(xué)習(xí)的目的:從數(shù)據(jù)到知識(shí)1
12機(jī)器學(xué)習(xí)的基本框架2
121數(shù)據(jù)集合與對(duì)象特性表示3
122學(xué)習(xí)判據(jù)4
123學(xué)習(xí)算法5
13機(jī)器學(xué)習(xí)思想簡(jiǎn)論5
延伸閱讀7
習(xí)題8
參考文獻(xiàn)9
第2章歸類理論11
21類表示公理13
22歸類公理17
23歸類結(jié)果分類20
24歸類方法設(shè)計(jì)準(zhǔn)則22
241類一致性準(zhǔn)則23
242類緊致性準(zhǔn)則23
243類分離性準(zhǔn)則25
244奧卡姆剃刀準(zhǔn)則25
討論27
延伸閱讀29
習(xí)題30
參考文獻(xiàn)31
第3章密度估計(jì)33
31密度估計(jì)的參數(shù)方法33
311最大似然估計(jì)33
312貝葉斯估計(jì)35
32密度估計(jì)的非參數(shù)方法39
321直方圖39
322核密度估計(jì)39
323K近鄰密度估計(jì)法40
延伸閱讀40
習(xí)題41
參考文獻(xiàn)41
第4章回歸43
41線性回歸43
42嶺回歸47
43Lasso回歸48
討論51
習(xí)題52
參考文獻(xiàn)52
第5章單類數(shù)據(jù)降維53
51主成分分析54
52非負(fù)矩陣分解56
53字典學(xué)習(xí)與稀疏表示57
54局部線性嵌入59
55典型關(guān)聯(lián)分析62
56多維度尺度分析與等距映射63
討論65
習(xí)題66
參考文獻(xiàn)66
第6章聚類理論69
61聚類問(wèn)題表示及相關(guān)定義69
62聚類算法設(shè)計(jì)準(zhǔn)則70
621類緊致性準(zhǔn)則和聚類不等式70
622類分離性準(zhǔn)則和重合類非穩(wěn)定假設(shè)72
623類一致性準(zhǔn)則和迭代型聚類算法73
63聚類有效性73
631外部方法73
632內(nèi)蘊(yùn)方法75
延伸閱讀76
習(xí)題77
參考文獻(xiàn)77
第7章聚類算法81
71樣例理論:層次聚類算法81
72原型理論:點(diǎn)原型聚類算法83
721C均值算法84
722模糊C均值86
73基于密度估計(jì)的聚類算法88
731基于參數(shù)密度估計(jì)的聚類算法88
732基于無(wú)參數(shù)密度估計(jì)的聚類算法97
延伸閱讀106
習(xí)題107
參考文獻(xiàn)108
第8章分類理論111
81分類及相關(guān)定義111
82從歸類理論到經(jīng)典分類理論112
821PAC理論113
822統(tǒng)計(jì)機(jī)器學(xué)習(xí)理論115
83分類測(cè)試公理118
討論119
習(xí)題119
參考文獻(xiàn)120
第9章基于單類的分類算法:神經(jīng)網(wǎng)絡(luò)121
91分類問(wèn)題的回歸表示121
92人工神經(jīng)網(wǎng)絡(luò)122
921人工神經(jīng)網(wǎng)絡(luò)相關(guān)介紹122
922前饋神經(jīng)網(wǎng)絡(luò)124
93從參數(shù)密度估計(jì)到受限玻耳茲曼機(jī)129
94深度學(xué)習(xí)131
941自編碼器132
942卷積神經(jīng)網(wǎng)絡(luò)132
討論133
習(xí)題134
參考文獻(xiàn)134
第10章K近鄰分類模型137
101K近鄰算法138
1011K近鄰算法問(wèn)題表示138
1012K近鄰分類算法139
1013K近鄰分類算法的理論錯(cuò)誤率140
102距離加權(quán)最近鄰算法141
103K近鄰算法加速策略142
104kd樹143
105K近鄰算法中的參數(shù)問(wèn)題144
延伸閱讀145
習(xí)題145
參考文獻(xiàn)145
第11章線性分類模型147
111判別函數(shù)和判別模型147
112線性判別函數(shù)148
113線性感知機(jī)算法151
1131感知機(jī)數(shù)據(jù)表示151
1132感知機(jī)算法的歸類判據(jù)152
1133感知機(jī)分類算法153
114支持向量機(jī)156
1141線性可分支持向量機(jī)156
1142近似線性可分支持向量機(jī)159
1143多類分類問(wèn)題162
討論164
習(xí)題165
參考文獻(xiàn)166
第12章對(duì)數(shù)線性分類模型167
121Softmax回歸167
122Logistic回歸170
討論172
習(xí)題173
參考文獻(xiàn)173
第13章貝葉斯決策175
131貝葉斯分類器175
132樸素貝葉斯分類176
1321最大似然估計(jì)178
1322貝葉斯估計(jì)181
133最小化風(fēng)險(xiǎn)分類183
134效用最大化分類185
討論185
習(xí)題186
參考文獻(xiàn)186
第14章決策樹187
141決策樹的類表示187
142信息增益與ID3算法192
143增益比率與C45算法194
144Gini指數(shù)與CART算法195
145決策樹的剪枝196
討論197
習(xí)題197
參考文獻(xiàn)198
第15章多類數(shù)據(jù)降維199
151有監(jiān)督特征選擇模型199
1511過(guò)濾式特征選擇200
1512包裹式特征選擇201
1513嵌入式特征選擇201
152有監(jiān)督特征提取模型202
1521線性判別分析202
1522二分類線性判別分析問(wèn)題202
1523二分類線性判別分析203
1524二分類線性判別分析優(yōu)化算法205
1525多分類線性判別分析205
延伸閱讀207
習(xí)題207
參考文獻(xiàn)207
第16章多類數(shù)據(jù)升維:核方法209
161核方法209
162非線性支持向量機(jī)210
1621特征空間210
1622核函數(shù)210
1623常用核函數(shù)212
1624非線性支持向量機(jī)212
163多核方法213
討論215
習(xí)題215
參考文獻(xiàn)216
第17章多源數(shù)據(jù)學(xué)習(xí)217
171多源數(shù)據(jù)學(xué)習(xí)的分類217
172單類多源數(shù)據(jù)學(xué)習(xí)217
1721完整視角下的單類多源數(shù)據(jù)學(xué)習(xí)218
1722不完整視角下的單類多源數(shù)據(jù)學(xué)習(xí)220
173多類多源數(shù)據(jù)學(xué)習(xí)221
174多源數(shù)據(jù)學(xué)習(xí)中的基本假設(shè)222
討論222
習(xí)題223
參考文獻(xiàn)223
后記225
索引229