机器学习简史
最近學(xué)習(xí)的重點(diǎn)不在機(jī)器學(xué)習(xí)上面,但是現(xiàn)代的學(xué)科就是這么奇妙,錯(cuò)綜復(fù)雜,玩著玩著,你發(fā)現(xiàn)又回到了人工智能這一塊。所以干脆好好整理下當(dāng)下令很多人如癡如醉,但又不容易入門的機(jī)器學(xué)習(xí)。一來給大多數(shù)還沒有入門的人一點(diǎn)宏觀概念,二來讓我自己以后找解決辦法的時(shí)候更有頭緒。故此文不是給想快速上手的工程師的菜單,更像一篇娓娓道來的武俠小說,看看人工智能世界的先驅(qū)們是如何開宗創(chuàng)派的。
一、從人工智能說起
機(jī)器學(xué)習(xí)屬于人工智能的一塊,先簡(jiǎn)要回顧一下。關(guān)于什么是“智能”,就問題多多了。這涉及到其它諸如意識(shí)(consciousness)、自我(self)、心靈(mind)(包括無意識(shí)的精神(unconscious_mind))等等問題。人唯一了解的智能是人本身的智能,這是普遍認(rèn)同的觀點(diǎn)。但是我們對(duì)我們自身智能的理解都非常有限,對(duì)構(gòu)成人的智能的必要元素也了解有限,所以就很難定義什么是“人工”制造的“智能”了。因此人工智能的研究往往涉及對(duì)人的智能本身的研究。其它關(guān)于動(dòng)物或其它人造系統(tǒng)的智能也普遍被認(rèn)為是人工智能相關(guān)的研究課題。下圖展示了人工智能的發(fā)展路線:
在20世紀(jì)40年代和50年代,來自不同領(lǐng)域(數(shù)學(xué),心理學(xué),工程學(xué),經(jīng)濟(jì)學(xué)和政治學(xué))的一批科學(xué)家開始探討制造人工大腦的可能性。1956年,人工智能被確立為一門學(xué)科。
IBM 702:第一代AI研究者使用的電腦.
最初的人工智能研究是30年代末到50年代初的一系列科學(xué)進(jìn)展交匯的產(chǎn)物。神經(jīng)學(xué)研究發(fā)現(xiàn)大腦是由神經(jīng)元組成的電子網(wǎng)絡(luò),其激勵(lì)電平只存在“有”和“無”兩種狀態(tài),不存在中間狀態(tài)。維納的控制論描述了電子網(wǎng)絡(luò)的控制和穩(wěn)定性。克勞德·香農(nóng)提出的信息論則描述了數(shù)字信號(hào)(即高低電平代表的二進(jìn)制信號(hào))。圖靈的計(jì)算理論證明數(shù)字信號(hào)足以描述任何形式的計(jì)算。這些密切相關(guān)的想法暗示了構(gòu)建電子大腦的可能性。這一階段的工作包括一些機(jī)器人的研發(fā),例如W。Grey Walter的“烏龜(turtles)”,還有“約翰霍普金斯獸”(Johns Hopkins Beast)。這些機(jī)器并未使用計(jì)算機(jī),數(shù)字電路和符號(hào)推理;控制它們的是純粹的模擬電路。
Walter Pitts和Warren McCulloch分析了理想化的人工神經(jīng)元網(wǎng)絡(luò),并且指出了它們進(jìn)行簡(jiǎn)單邏輯運(yùn)算的機(jī)制。他們是最早描述所謂“神經(jīng)網(wǎng)絡(luò)”的學(xué)者。馬文·閔斯基是他們的學(xué)生,當(dāng)時(shí)是一名24歲的研究生。1951年他與Dean Edmonds一道建造了第一臺(tái)神經(jīng)網(wǎng)絡(luò)機(jī),稱為SNARC。在接下來的五十年中,閔斯基是AI領(lǐng)域最重要的領(lǐng)導(dǎo)者和創(chuàng)新者之一。
1951年,Christopher Strachey使用曼徹斯特大學(xué)的Ferranti Mark 1機(jī)器寫出了一個(gè)西洋跳棋(checkers)程序;Dietrich Prinz則寫出了一個(gè)國(guó)際象棋程序。[31]Arthur Samuel在五十年代中期和六十年代初開發(fā)的西洋棋程序的棋力已經(jīng)可以挑戰(zhàn)具有相當(dāng)水平的業(yè)余愛好者。游戲AI一直被認(rèn)為是評(píng)價(jià)AI進(jìn)展的一種標(biāo)準(zhǔn)。
1950年,圖靈發(fā)表了一篇?jiǎng)潟r(shí)代的論文,文中預(yù)言了創(chuàng)造出具有真正智能的機(jī)器的可能性。由于注意到“智能”這一概念難以確切定義,他提出了著名的圖靈測(cè)試:如果一臺(tái)機(jī)器能夠與人類展開對(duì)話(通過電傳設(shè)備)而不能被辨別出其機(jī)器身份,那么稱這臺(tái)機(jī)器具有智能。這一簡(jiǎn)化使得圖靈能夠令人信服地說明“思考的機(jī)器”是可能的。論文中還回答了對(duì)這一假說的各種常見質(zhì)疑。圖靈測(cè)試是人工智能哲學(xué)方面第一個(gè)嚴(yán)肅的提案。
50年代中期,隨著數(shù)字計(jì)算機(jī)的興起,一些科學(xué)家直覺地感到可以進(jìn)行數(shù)字操作的機(jī)器也應(yīng)當(dāng)可以進(jìn)行符號(hào)操作,而符號(hào)操作可能是人類思維的本質(zhì)。這是創(chuàng)造智能機(jī)器的一條新路。
1955年,Newell和(后來榮獲諾貝爾獎(jiǎng)的)Simon在J.C.Shaw的協(xié)助下開發(fā)了“邏輯理論家(Logic Theorist)”。這個(gè)程序能夠證明《數(shù)學(xué)原理》中前52個(gè)定理中的38個(gè),其中某些證明比原著更加新穎和精巧。Simon認(rèn)為他們已經(jīng)“解決了神秘的心/身問題,解釋了物質(zhì)構(gòu)成的系統(tǒng)如何獲得心靈的性質(zhì)。”(這一斷言的哲學(xué)立場(chǎng)后來被John Searle稱為“強(qiáng)人工智能”,即機(jī)器可以像人一樣具有思想。)
1956年達(dá)特矛斯會(huì)議的組織者是Marvin Minsky,John McCarthy和另兩位資深科學(xué)家Claude Shannon以及Nathan Rochester,后者來自IBM。會(huì)議提出的斷言之一是“學(xué)習(xí)或者智能的任何其他特性的每一個(gè)方面都應(yīng)能被精確地加以描述,使得機(jī)器可以對(duì)其進(jìn)行模擬。”與會(huì)者包括Ray Solomonoff,Oliver Selfridge,Trenchard More,Arthur Samuel,Newell和Simon,他們中的每一位都將在AI研究的第一個(gè)十年中作出重要貢獻(xiàn)。會(huì)上紐厄爾和西蒙討論了“邏輯理論家”,而McCarthy則說服與會(huì)者接受“人工智能”一詞作為本領(lǐng)域的名稱。1956年達(dá)特矛斯會(huì)議上AI的名稱和任務(wù)得以確定,同時(shí)出現(xiàn)了最初的成就和最早的一批研究者,因此這一事件被廣泛承認(rèn)為AI誕生的標(biāo)志。
現(xiàn)如今AI世界已經(jīng)枝繁葉茂,被認(rèn)為最廣泛的綜合學(xué)科,也是未來最有希望的學(xué)科的之一。
涉及學(xué)科
-
哲學(xué)和認(rèn)知科學(xué)
-
數(shù)學(xué)
-
心理學(xué)
-
計(jì)算機(jī)科學(xué)
-
控制論
-
決定論
-
不確定性原理
研究范疇
-
自然語言處理(NLP; Natural Language Processing)
-
知識(shí)表現(xiàn)(Knowledge Representation)
-
智能搜索(Intelligent Search)
-
推理
-
規(guī)劃(Planning)
-
機(jī)器學(xué)習(xí)(Machine Learning)
-
增強(qiáng)式學(xué)習(xí)(Reinforcement Learning)
-
知識(shí)獲取
-
感知問題
-
模式識(shí)別
-
邏輯程序設(shè)計(jì)
-
軟計(jì)算(Soft Computing)
-
不精確和不確定的管理
-
人工生命(Artificial Life)
-
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)
-
復(fù)雜系統(tǒng)
-
遺傳算法
-
資料挖掘(Data Mining)
-
模糊控制
上面列舉了一下維基上面的解釋,可以說現(xiàn)代工程上的很多問題,都可以從上述研究范疇找到解決方案。可以想見,在未來人工智能發(fā)展會(huì)經(jīng)歷以下幾個(gè)階段:
應(yīng)用階段(1980年至今):在這一階段里,人工智能技術(shù)在軍事、工業(yè)和醫(yī)學(xué)等領(lǐng)域中的應(yīng)用顯示出了它具有明顯的經(jīng)濟(jì)效益潛力。適合人們投資的這一新天地浮出了水面。
融合階段(2010—2020年):
-
在某些城市,立法機(jī)關(guān)將主要采用人工智能專家系統(tǒng)來制定新的法律。
-
人們可以用語言來操縱和控制智能化計(jì)算機(jī)、互聯(lián)網(wǎng)、收音機(jī)、電視機(jī)和移動(dòng)電話,遠(yuǎn)程醫(yī)療和遠(yuǎn)程保健等遠(yuǎn)程服務(wù)變得更為完善。
-
智能化計(jì)算機(jī)和互聯(lián)網(wǎng)在教育中扮演了重要角色,遠(yuǎn)程教育十分普及。
-
隨著信息技術(shù)、生物技術(shù)和納米技術(shù)的發(fā)展,人工智能科學(xué)逐漸完善。
-
許多植入了芯片的人體組成了人體通信網(wǎng)絡(luò)(以后甚至可以不用植入任何芯片)。比如,將微型超級(jí)計(jì)算機(jī)植入人腦,人們就可通過植入的芯片直接進(jìn)行通信。
-
量子計(jì)算機(jī)和DNA計(jì)算機(jī)會(huì)有更大發(fā)展,能夠提高智能化水平的新型材料會(huì)不斷問世。
-
抗病毒程序可以防止各種非自然因素引發(fā)災(zāi)難。(H7N9大家小心)
-
隨著人工智能的加速發(fā)展,新制定的法律不僅可以用來更好地保護(hù)人類健康,而且能大幅度提高全社會(huì)的文明水準(zhǔn)。比如,法律可以保護(hù)人們免受電磁煙霧的侵害,可以規(guī)范家用機(jī)器人的使用,可以更加有效地保護(hù)數(shù)據(jù),可以禁止計(jì)算機(jī)合成技術(shù)在一些文化和藝術(shù)方面的應(yīng)用(比如禁止合成電視名人),可以禁止編寫具有自我保護(hù)意識(shí)的計(jì)算機(jī)程序。
自我發(fā)展階段(2020—2030年):
-
智能化計(jì)算機(jī)和互聯(lián)網(wǎng)既能自我修復(fù),也能自行進(jìn)行科學(xué)研究,還能自己生產(chǎn)產(chǎn)品。
-
一些新型材料的出現(xiàn),促使智能化向更高層次發(fā)展。
-
用可植入芯片實(shí)現(xiàn)人類、計(jì)算機(jī)和鯨目動(dòng)物之間的直接通信,在以后的發(fā)展中甚至不用植入芯片也可實(shí)現(xiàn)此項(xiàng)功能。
-
制定“機(jī)器人法”等新的法律來約束機(jī)器人的行為,使人們不受機(jī)器人的侵害。
-
高水準(zhǔn)的智能化技術(shù)可以使火星表面環(huán)境適合人類居住和發(fā)展。
升華階段(2030—2040年):
信息化的世界進(jìn)一步發(fā)展成全息模式的世界。
人工智能系統(tǒng)可從環(huán)境中采集全息信息,身處某地的人們可以更容易地了解和知曉其他地方的情況。
人們對(duì)一些目前無法解釋的自然現(xiàn)象會(huì)有更清楚的認(rèn)識(shí)和更完善的解釋,并將這些全新的知識(shí)應(yīng)用在醫(yī)療、保健和安全等領(lǐng)域。
人工智能可以模仿人類的智能,因此會(huì)出現(xiàn)有關(guān)法律來規(guī)范這些行為。
二、機(jī)器學(xué)習(xí)的由來
從人工智能的角度我們不難發(fā)現(xiàn),當(dāng)今機(jī)器學(xué)習(xí)世界的很多方法都是從其中延伸出來的。但同時(shí),它也自己獨(dú)特的一面。機(jī)器學(xué)習(xí)是近20多年興起的一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科。機(jī)器學(xué)習(xí)理論主要是設(shè)計(jì)和分析一些讓計(jì)算機(jī)可以自動(dòng)“學(xué)習(xí)”的算法。機(jī)器學(xué)習(xí)算法是一類從數(shù)據(jù)中自動(dòng)分析獲得規(guī)律,并利用規(guī)律對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)的算法。因?yàn)閷W(xué)習(xí)算法中涉及了大量的統(tǒng)計(jì)學(xué)理論,機(jī)器學(xué)習(xí)與統(tǒng)計(jì)推斷學(xué)聯(lián)系尤為密切,也被稱為統(tǒng)計(jì)學(xué)習(xí)理論。算法設(shè)計(jì)方面,機(jī)器學(xué)習(xí)理論關(guān)注可以實(shí)現(xiàn)的,行之有效的學(xué)習(xí)算法。很多推論問題屬于無程序可循難度,所以部分的機(jī)器學(xué)習(xí)研究是開發(fā)容易處理的近似算法。
機(jī)器學(xué)習(xí)可以分成下面幾種類別:
-
監(jiān)督學(xué)習(xí)從給定的訓(xùn)練數(shù)據(jù)集中學(xué)習(xí)出一個(gè)函數(shù),當(dāng)新的數(shù)據(jù)到來時(shí),可以根據(jù)這個(gè)函數(shù)預(yù)測(cè)結(jié)果。監(jiān)督學(xué)習(xí)的訓(xùn)練集要求是包括輸入和輸出,也可以說是特征和目標(biāo)。訓(xùn)練集中的目標(biāo)是由人標(biāo)注的。常見的監(jiān)督學(xué)習(xí)算法包括回歸分析和統(tǒng)計(jì)分類。
-
無監(jiān)督學(xué)習(xí)與監(jiān)督學(xué)習(xí)相比,訓(xùn)練集沒有人為標(biāo)注的結(jié)果。常見的無監(jiān)督學(xué)習(xí)算法有聚類。
-
半監(jiān)督學(xué)習(xí)介于監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之間。
-
增強(qiáng)學(xué)習(xí)通過觀察來學(xué)習(xí)做成如何的動(dòng)作。每個(gè)動(dòng)作都會(huì)對(duì)環(huán)境有所影響,學(xué)習(xí)對(duì)象根據(jù)觀察到的周圍環(huán)境的反饋來做出判斷。
機(jī)器學(xué)習(xí)是人工智能研究發(fā)展到一定階段的必然產(chǎn)物。從20世紀(jì)50年代到70年代初,人工智能研究處于“推理期”,人們認(rèn)為只要給機(jī)器賦予邏輯推理能力,機(jī)器就能具有智能。這一階段的代表性工作主要有A.Newell和H.Simon的“邏輯理論家”程序以及此后的“通用問題求解”程序等,這些工作在當(dāng)時(shí)取得了令人振奮的成果。例如,“邏輯理論家”程序在1952年證明了著名數(shù)學(xué)家羅素和懷特海的名著《數(shù)學(xué)原理》中的38條定理,在1963年證明了全部的52條定理,而且定理2.85甚至比羅素和懷特海證明得更巧妙。A.Newell和H.Simon因此獲得了1975年圖靈獎(jiǎng)。然而,隨著研究向前發(fā)展,人們逐漸認(rèn)識(shí)到,僅具有邏輯推理能力是遠(yuǎn)遠(yuǎn)實(shí)現(xiàn)不了人工智能的。E.A.Feigenbaum等人認(rèn)為,要使機(jī)器具有智能,就必須設(shè)法使機(jī)器擁有知識(shí)。在他們的倡導(dǎo)下,20世紀(jì)70年代中期開始,人工智能進(jìn)入了“知識(shí)期”。在這一時(shí)期,大量專家系統(tǒng)問世,在很多領(lǐng)域做出了巨大貢獻(xiàn)。E.A.Feigenbaum作為“知識(shí)工程”之父在1994年獲得了圖靈獎(jiǎng)。但是,專家系統(tǒng)面臨“知識(shí)工程瓶頸”,簡(jiǎn)單地說,就是由人來把知識(shí)總結(jié)出來再教給計(jì)算機(jī)是相當(dāng)困難的。于是,一些學(xué)者想到,如果機(jī)器自己能夠?qū)W習(xí)知識(shí)該多好!實(shí)際上,圖靈在1950年提出圖靈測(cè)試的文章中,就已經(jīng)提到了機(jī)器學(xué)習(xí)的可能,而20世紀(jì)50年代其實(shí)已經(jīng)開始有機(jī)器學(xué)習(xí)相關(guān)的研究工作,主要集中在基于神經(jīng)網(wǎng)絡(luò)的連接主義學(xué)習(xí)方面,代表性工作主要有F.Rosenblatt的感知機(jī)、B.Widrow的Adaline等。在20世紀(jì)6、70年代,多種學(xué)習(xí)技術(shù)得到了初步發(fā)展,例如以決策理論為基礎(chǔ)的統(tǒng)計(jì)學(xué)習(xí)技術(shù)以及強(qiáng)化學(xué)習(xí)技術(shù)等,代表性工作主要有A.L.Samuel的跳棋程序以及N.J.Nilson的“學(xué)習(xí)機(jī)器”等,20多年后紅極一時(shí)的統(tǒng)計(jì)學(xué)習(xí)理論的一些重要結(jié)果也是在這個(gè)時(shí)期取得的。在這一時(shí)期,基于邏輯或圖結(jié)構(gòu)表示的符號(hào)學(xué)習(xí)技術(shù)也開始出現(xiàn),代表性工作有P.Winston的“結(jié)構(gòu)學(xué)習(xí)系統(tǒng)”、R.S.Michalski等人的“基于邏輯的歸納學(xué)習(xí)系統(tǒng)”、E.B.Hunt等人的“概念學(xué)習(xí)系統(tǒng)”等。
1980年夏天,在美國(guó)卡內(nèi)基梅隆大學(xué)舉行了第一屆機(jī)器學(xué)習(xí)研討會(huì);同年,《策略分析與信息系統(tǒng)》連出三期機(jī)器學(xué)習(xí)專輯;1983年,Tioga出版社出版了R.S.Michalski、J.G.Carbonell和T.M.Mitchell主編的《機(jī)器學(xué)習(xí):一種人工智能途徑》,書中匯集了20位學(xué)者撰寫的16篇文章,對(duì)當(dāng)時(shí)的機(jī)器學(xué)習(xí)研究工作進(jìn)行了總結(jié),產(chǎn)生了很大反響;1986年,《Machine Learning》創(chuàng)刊;1989年,《Artificial Intelligence》出版了機(jī)器學(xué)習(xí)專輯,刊發(fā)了一些當(dāng)時(shí)比較活躍的研究工作,其內(nèi)容后來出現(xiàn)在J.G.Carbonell主編、MIT出版社1990年出版的《機(jī)器學(xué)習(xí):風(fēng)范與方法》一書中。總的來看,20世紀(jì)80年代是機(jī)器學(xué)習(xí)成為一個(gè)獨(dú)立的學(xué)科領(lǐng)域并開始快速發(fā)展、各種機(jī)器學(xué)習(xí)技術(shù)百花齊放的時(shí)期。R.S.Michalski等人中把機(jī)器學(xué)習(xí)研究劃分成“從例子中學(xué)習(xí)”、“在問題求解和規(guī)劃中學(xué)習(xí)”、“通過觀察和發(fā)現(xiàn)學(xué)習(xí)”、“從指令中學(xué)習(xí)”等范疇;而E.A.Feigenbaum在著
名的《人工智能手冊(cè)》中,則把機(jī)器學(xué)習(xí)技術(shù)劃分為四大類,即“機(jī)械學(xué)習(xí)”、“示教學(xué)習(xí)”、“類比學(xué)習(xí)”、“歸納學(xué)習(xí)”。
1. 機(jī)械學(xué)習(xí)也稱為“死記硬背式學(xué)習(xí)”,就是把外界輸入的信息全部記下來,在需要的時(shí)候原封不動(dòng)地取出來使用,這實(shí)際上沒有進(jìn)行真正的學(xué)習(xí);
2.示教學(xué)習(xí)和類比學(xué)習(xí)實(shí)際上類似于R.S.Michalski等人所說的“從指令中學(xué)習(xí)”和“通過觀察和發(fā)現(xiàn)學(xué)習(xí)”;
3.歸納學(xué)習(xí)類似于“從例子中學(xué)習(xí)”,即從訓(xùn)練例中歸納出學(xué)習(xí)結(jié)果。20世紀(jì)80年代以來,被研究得最多、應(yīng)用最廣的是“從例子中學(xué)習(xí)”(也就是廣義的歸納學(xué)習(xí)),它涵蓋了監(jiān)督學(xué)習(xí)(例如分類、回歸)、非監(jiān)督學(xué)習(xí)(例如聚類)等眾多內(nèi)容。
下面我們對(duì)這方面主流技術(shù)的演進(jìn)做一個(gè)簡(jiǎn)單的回顧。在20世紀(jì)90年代中期之前,“從例子中學(xué)習(xí)”的一大主流技術(shù)是歸納邏輯程序設(shè)計(jì)(Inductive Logic Programming),這實(shí)際上是機(jī)器學(xué)習(xí)和邏輯程序設(shè)計(jì)的交叉。它使用1階邏輯來進(jìn)行知識(shí)表示,通過修改和擴(kuò)充邏輯表達(dá)式(例如Prolog表達(dá)式)來完成對(duì)數(shù)據(jù)的歸納。這一技術(shù)占據(jù)主流地位與整個(gè)人工智能領(lǐng)域的發(fā)展歷程是分不開的。如前所述,人工智能在20世紀(jì)50年代到80年代經(jīng)歷了“推理期”和“知識(shí)期”,在“推理期”中人們基于邏輯知識(shí)表示、通過演繹技術(shù)獲得了很多成果,而在知識(shí)期中人們基于邏輯知識(shí)表示、通過領(lǐng)域知識(shí)獲取來實(shí)現(xiàn)專家系統(tǒng),因此,邏輯知識(shí)表示很自然地受到青睞,而歸納邏輯程序設(shè)計(jì)技術(shù)也自然成為機(jī)器學(xué)習(xí)的一大主流。歸納邏輯程序設(shè)計(jì)技術(shù)的一大優(yōu)點(diǎn)是它具有很強(qiáng)的知識(shí)表示能力,可以較容易地表示出復(fù)雜數(shù)據(jù)和復(fù)雜的數(shù)據(jù)關(guān)系。尤為重要的是,領(lǐng)域知識(shí)通常可以方便地寫成邏輯表達(dá)式,因此,歸納邏輯程序設(shè)計(jì)技術(shù)不僅可以方便地利用領(lǐng)域知識(shí)指導(dǎo)學(xué)習(xí),還可以通過學(xué)習(xí)對(duì)領(lǐng)域知識(shí)進(jìn)行精化和增強(qiáng),甚至可以從數(shù)據(jù)中學(xué)習(xí)出領(lǐng)域知識(shí)。事實(shí)上,機(jī)器學(xué)習(xí)在20世紀(jì)80年代正是被視為“解決知識(shí)工程瓶頸問題的關(guān)鍵”而走到人工智能主舞臺(tái)的聚光燈下的,歸納邏輯程序設(shè)計(jì)的一些良好特性對(duì)此無疑居功至偉。S.H.Muggleton主編的書對(duì)90年代中期之前歸納邏輯程序設(shè)計(jì)方面的研究工作做了總結(jié)。然而,歸納邏輯程序設(shè)計(jì)技術(shù)也有其局限,最嚴(yán)重的問題是由于其表示能力很強(qiáng),學(xué)習(xí)過程所面臨的假設(shè)空間太大,對(duì)規(guī)模稍大的問題就很難進(jìn)行有效的學(xué)習(xí),只能解決一些“玩具問題”。因此,在90年代中期后,歸納程序設(shè)計(jì)技術(shù)方面的研究相對(duì)陷入了低谷。
20世紀(jì)90年代中期之前,“從例子中學(xué)習(xí)”的另一大主流技術(shù)是基于神經(jīng)網(wǎng)絡(luò)的連接主義學(xué)習(xí)。連接主義學(xué)習(xí)技術(shù)在20世紀(jì)50年代曾經(jīng)歷了一個(gè)大發(fā)展時(shí)期,但因?yàn)樵缙诘暮芏嗳斯ぶ悄苎芯空邔?duì)符號(hào)表示有特別的偏愛,例如H.Simon曾說人工智能就是研究“對(duì)智能行為的符號(hào)化建模”,因此當(dāng)時(shí)連接主義的研究并沒有被納入主流人工智能的范疇。同時(shí),連接主義學(xué)習(xí)自身也遇到了極大的問題,M.Minsky和S.Papert在1969年指出,(當(dāng)時(shí)的)神經(jīng)網(wǎng)絡(luò)只能用于線性分類,對(duì)哪怕“異或”這么簡(jiǎn)單的問題都做不了。于是,連接主義學(xué)習(xí)在此后近15年的時(shí)間內(nèi)陷入了停滯期。直到1983年,J.J.Hopfield利用神經(jīng)網(wǎng)絡(luò)求解TSP問題獲得了成功,才使得連接主義重新受到人們的關(guān)注。1986年,D.E.Rumelhart和J.L.McClelland主編了著名的《并行分布處理—認(rèn)知微結(jié)構(gòu)的探索》一書,對(duì)PDP小組的研究工作進(jìn)行了總結(jié),轟動(dòng)一時(shí)。特別是D.E.Rumelhart、G.E.Hinton和R.J.Williams重新發(fā)明了著名的BP算法,產(chǎn)生了非常大的影響。該算法可以說是最成功的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,在當(dāng)時(shí)迅速成為最流行的算法,并在很多應(yīng)用中都取得了極大的成功。與歸納邏輯程序設(shè)計(jì)技術(shù)相比,連接主義學(xué)習(xí)技術(shù)基于“屬性-值”的表示形式(也就是用一個(gè)特征向量來表示一個(gè)事物;這實(shí)際上是命題邏輯表示形式),學(xué)習(xí)過程所面臨的假設(shè)空間遠(yuǎn)小于歸納邏輯程序設(shè)計(jì)所面臨的空間,而且由于有BP這樣有效的學(xué)習(xí)算法,使得它可以解決很多實(shí)際問題。事實(shí)上,即使在今天,BP仍然是在實(shí)際工程應(yīng)用中被用得最多、最成功的算法之一。然而,連接主義學(xué)習(xí)技術(shù)也有其局限,一個(gè)常被人詬病的問題是其“試錯(cuò)性”。簡(jiǎn)單地說,在此類技術(shù)中有大量的經(jīng)驗(yàn)參數(shù)需要設(shè)置,例如神經(jīng)網(wǎng)絡(luò)的隱層結(jié)點(diǎn)數(shù)、學(xué)習(xí)率等,夸張一點(diǎn)說,參數(shù)設(shè)置上差之毫厘,學(xué)習(xí)結(jié)果可能謬以千里。在實(shí)際工程應(yīng)用中,人們可以通過調(diào)試來確定較好的參數(shù)設(shè)置,但對(duì)機(jī)器學(xué)習(xí)研究者來說,對(duì)此顯然是難以滿意的。
20世紀(jì)90年代中期,統(tǒng)計(jì)學(xué)習(xí)粉墨登場(chǎng)并迅速獨(dú)占鰲頭。其實(shí)早在20世紀(jì)6、70年代就已經(jīng)有統(tǒng)計(jì)學(xué)習(xí)方面的研究工作,統(tǒng)計(jì)學(xué)習(xí)理論[9]在那個(gè)時(shí)期也已經(jīng)打下了基礎(chǔ),例如V.N.Vapnik早在1963年就提出了“支持向量”的概念,他和A.J.Chervonenkis在1968年提出了VC維,在1974年提出了結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則等,但直到90年代中期統(tǒng)計(jì)學(xué)習(xí)才開始成為機(jī)器學(xué)習(xí)的主流技術(shù)。這一方面是由于有效的支持向量機(jī)算法在90年代才由B.E.Boser、I.Guyon和V.N.Vapnik提出,而其優(yōu)越的性能也是到90年代中期才在T.Joachims等人對(duì)文本分類的研究中顯現(xiàn)出來;另一方面,正是在連接主義學(xué)習(xí)技術(shù)的局限性凸顯出來之后,人們才把目光轉(zhuǎn)向了統(tǒng)計(jì)學(xué)習(xí)。事實(shí)上統(tǒng)計(jì)學(xué)習(xí)與連接主義學(xué)習(xí)有著密切的聯(lián)系,例如RBF神經(jīng)網(wǎng)絡(luò)其實(shí)就是一種很常用的支持向量機(jī)。在支持向量機(jī)被普遍接受后,支持向量機(jī)中用到的核(kernel)技巧被人們用到了機(jī)器學(xué)習(xí)的幾乎每一個(gè)角落中,“核方法”也逐漸成為機(jī)器學(xué)習(xí)的一種基本技巧。但其實(shí)這并不是一種新技術(shù),例如Mercer定理是在1909年發(fā)表的,核技巧也早已被很多人使用過,即使只考慮機(jī)器學(xué)習(xí)領(lǐng)域,至少T.Poggio在1975年就使用過多項(xiàng)式核。如果仔細(xì)審視統(tǒng)計(jì)學(xué)習(xí)理論,就可以發(fā)現(xiàn)其中的絕大多數(shù)想法在以往機(jī)器學(xué)習(xí)的研究中都出現(xiàn)過,例如結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則實(shí)際上就是對(duì)以往機(jī)器學(xué)習(xí)研究中經(jīng)常用到的最小描述長(zhǎng)度原則的另一個(gè)說法。但是,統(tǒng)計(jì)學(xué)習(xí)理論把這些有用的片段整合在同一個(gè)理論框架之下,從而為人們研制出泛化能力f有理論保證的算法奠定了基礎(chǔ),與連接主義學(xué)習(xí)的“試錯(cuò)法”相比,這是一個(gè)極大的進(jìn)步。然而,統(tǒng)計(jì)學(xué)習(xí)也有其局限,例如,雖然理論上來說,通過把原始空間利用核技巧轉(zhuǎn)化到一個(gè)新的特征空間,再困難的問題也可以容易地得到解決,但如何選擇合適的核映射,卻仍然有濃重的經(jīng)驗(yàn)色彩。另一方面,統(tǒng)計(jì)學(xué)習(xí)技術(shù)與連接主義學(xué)習(xí)技術(shù)一樣是基于“屬性-值”表示形式,難以有效地表示出復(fù)雜數(shù)據(jù)和復(fù)雜的數(shù)據(jù)關(guān)系,不僅難以利用領(lǐng)域知識(shí),而且學(xué)習(xí)結(jié)果還具有“黑箱性”。此外,傳統(tǒng)的統(tǒng)計(jì)學(xué)習(xí)技術(shù)往往因?yàn)橐_保統(tǒng)計(jì)性質(zhì)或簡(jiǎn)化問題而做出一些假設(shè),但很多假設(shè)在真實(shí)世界其實(shí)是難以成立的。如何克服上述缺陷,正是很多學(xué)者正在關(guān)注的問題。
科學(xué)和真理必然是建立在爭(zhēng)論和證明之上。機(jī)器學(xué)習(xí)世界也分了多個(gè)門派。所謂的machine learning community,現(xiàn)在至少包含了兩個(gè)有著完全不同的文化、完全不同的價(jià)值觀的群體,稱為machine learning“communities”也許更合適一些。
第一個(gè)community,是把機(jī)器學(xué)習(xí)看作人工智能分支的一個(gè)群體,這群人的主體是計(jì)算機(jī)科學(xué)家。
現(xiàn)在的“機(jī)器學(xué)習(xí)研究者”可能很少有人讀過1983年出的“Machine Learning: An Artificial Intelligence Approach”這本書。這本書的出版標(biāo)志著機(jī)器學(xué)習(xí)成為人工智能中一個(gè)獨(dú)立的領(lǐng)域。它其實(shí)是一部集早期機(jī)器學(xué)習(xí)研究之大成的文集,收羅了若干先賢(例如Herbert Simon,那位把諾貝爾獎(jiǎng)、圖靈獎(jiǎng)以及各種各樣和他相關(guān)的獎(jiǎng)幾乎拿遍了的科學(xué)天才)的大作,主編是Ryszard S.Michalski(此君已去世多年了,他可算是機(jī)器學(xué)習(xí)的奠基人之一)、Jaime G. Carbonell(此君曾是Springer的LNAI的總編)、Tom Mitchell(此君是CMU機(jī)器學(xué)習(xí)系首任系主任、著名教材的作者,機(jī)器學(xué)習(xí)界沒人不知道他吧)。Machine Learning雜志的創(chuàng)刊,正是這群人努力的結(jié)果。這本書值得一讀。雖然技術(shù)手段早就日新月異了,但有一些深刻的思想現(xiàn)在并沒有過時(shí)。各個(gè)學(xué)科領(lǐng)域總有不少東西,換了新裝之后又粉墨登場(chǎng),現(xiàn)在熱火朝天的transfer learning,其實(shí)就是learning by analogy的升級(jí)版。
人工智能的研究從以“推理”為重點(diǎn)到以“知識(shí)”為重點(diǎn),再到以“學(xué)習(xí)”為重點(diǎn),是有一條自然、清晰的脈絡(luò)。人工智能出身的機(jī)器學(xué)習(xí)研究者,絕大部分是把機(jī)器學(xué)習(xí)作為實(shí)現(xiàn)人工智能的一個(gè)途徑,正如1983年的書名那樣。他們關(guān)注的是人工智能中的問題,希望以機(jī)器學(xué)習(xí)為手段,但具體采用什么樣的學(xué)習(xí)手段,是基于統(tǒng)計(jì)的、代數(shù)的、還是邏輯的、幾何的,他們并不care。
這群人可能對(duì)統(tǒng)計(jì)學(xué)習(xí)目前dominating的地位未必滿意。靠統(tǒng)計(jì)學(xué)習(xí)是不可能解決人工智能中大部分問題的,如果統(tǒng)計(jì)學(xué)習(xí)壓制了對(duì)其他手段的研究,可能不是好事。這群人往往也不care在文章里show自己的數(shù)學(xué)水平,甚至可能是以簡(jiǎn)化表達(dá)自己的思想為榮。人工智能問題不是數(shù)學(xué)問題,甚至未必是依靠數(shù)學(xué)能夠解決的問題。人工智能中許多事情的難處,往往在于我們不知道困難的本質(zhì)在哪里,不知道“問題”在哪里。一旦“問題”清楚了,解決起來可能并不困難。
第二個(gè)community,是把機(jī)器學(xué)習(xí)看作“應(yīng)用統(tǒng)計(jì)學(xué)”的一個(gè)群體,這群人的主體是統(tǒng)計(jì)學(xué)家。
和純數(shù)學(xué)相比,統(tǒng)計(jì)學(xué)不太“干凈”,不少數(shù)學(xué)家甚至拒絕承認(rèn)統(tǒng)計(jì)學(xué)是數(shù)學(xué)。但如果和人工智能相比,統(tǒng)計(jì)學(xué)就太干凈了,統(tǒng)計(jì)學(xué)研究的問題是清楚的,不象人工智能那樣,連問題到底在哪里都不知道。在相當(dāng)長(zhǎng)時(shí)間里,統(tǒng)計(jì)學(xué)家和機(jī)器學(xué)習(xí)一直保持著距離。
慢慢地,不少統(tǒng)計(jì)學(xué)家逐漸意識(shí)到,統(tǒng)計(jì)學(xué)本來就該面向應(yīng)用,而機(jī)器學(xué)習(xí)天生就是一個(gè)很好的切入點(diǎn)。因?yàn)闄C(jī)器學(xué)習(xí)雖然用到各種各樣的數(shù)學(xué),但要分析大量數(shù)據(jù)中蘊(yùn)涵的規(guī)律,統(tǒng)計(jì)學(xué)是必不可少的。統(tǒng)計(jì)學(xué)出身的機(jī)器學(xué)習(xí)研究者,絕大部分是把機(jī)器學(xué)習(xí)當(dāng)作應(yīng)用統(tǒng)計(jì)學(xué)。他們關(guān)注的是如何把統(tǒng)計(jì)學(xué)中的理論和方法變成可以在計(jì)算機(jī)上有效實(shí)現(xiàn)的算法,至于這樣的算法對(duì)人工智能中的什么問題有用,他們并不care。
這群人可能對(duì)人工智能毫無興趣,在他們眼中,機(jī)器學(xué)習(xí)就是統(tǒng)計(jì)學(xué)習(xí),是統(tǒng)計(jì)學(xué)比較偏向應(yīng)用的一個(gè)分支,充其量是統(tǒng)計(jì)學(xué)與計(jì)算機(jī)科學(xué)的交叉。這群人對(duì)統(tǒng)計(jì)學(xué)習(xí)之外的學(xué)習(xí)手段往往是排斥的,這很自然,基于代數(shù)的、邏輯的、幾何的學(xué)習(xí),很難納入統(tǒng)計(jì)學(xué)的范疇。
兩個(gè)群體的文化和價(jià)值觀完全不同。第一個(gè)群體認(rèn)為好的工作,第二個(gè)群體可能覺得沒有技術(shù)含量,但第一個(gè)群體可能恰恰認(rèn)為,簡(jiǎn)單的才好,正因?yàn)楹芎玫刈プ×藛栴}本質(zhì),所以問題變得容易解決。第二個(gè)群體欣賞的工作,第一個(gè)群體可能覺得是故弄玄虛,看不出他想解決什么人工智能問題,根本就不是在搞人工智能、搞計(jì)算機(jī),但別人本來也沒說自己是在“搞人工智能”、“搞計(jì)算機(jī)”,本來就不是在為人工智能做研究。
三、SVM與Deep Learning之爭(zhēng)
現(xiàn)如今在機(jī)器學(xué)習(xí)世界最火爆的可以算是統(tǒng)計(jì)學(xué)習(xí),而在統(tǒng)計(jì)學(xué)習(xí)領(lǐng)域最熱門非deep learning和SVM(support vector machine)莫屬了。
神經(jīng)網(wǎng)絡(luò)(Neural Network)與支持向量機(jī)(Support Vector Machines,SVM)是統(tǒng)計(jì)學(xué)習(xí)的代表方法。
可以認(rèn)為神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)都源自于感知機(jī)(Perceptron)。感知機(jī)是由Rosenblatt發(fā)明的線性分類模型(1958年)。感知機(jī)對(duì)線性分類有效,但現(xiàn)實(shí)中的分類問題通常是非線性的。
神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)(包含核方法)都是非線性分類模型。1986年,Rummelhart與McClelland發(fā)明了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法Back Propagation。后來,Vapnik等人于1992年提出了支持向量機(jī)。神經(jīng)網(wǎng)絡(luò)是多層(通常是三層)的非線性模型,支持向量機(jī)利用核技巧把非線性問題轉(zhuǎn)換成線性問題。
神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)一直處于“競(jìng)爭(zhēng)”關(guān)系。
Scholkopf是Vapnik的大弟子,支持向量機(jī)與核方法研究的領(lǐng)軍人物。據(jù)Scholkopf說,Vapnik當(dāng)初發(fā)明支持向量機(jī)就是想’干掉’神經(jīng)網(wǎng)絡(luò)(He wanted to kill Neural Network)。支持向量機(jī)確實(shí)很有效,一段時(shí)間支持向量機(jī)一派占了上風(fēng)。
近年來,神經(jīng)網(wǎng)絡(luò)一派的大師Hinton又提出了神經(jīng)網(wǎng)絡(luò)的Deep Learning算法(2006年),使神經(jīng)網(wǎng)絡(luò)的能力大大提高,可與支持向量機(jī)一比。Deep Learning假設(shè)神經(jīng)網(wǎng)絡(luò)是多層的,首先用Restricted Boltzmann Machine(非監(jiān)督學(xué)習(xí))學(xué)習(xí)網(wǎng)絡(luò)的結(jié)構(gòu),然后再通過Back Propagation(監(jiān)督學(xué)習(xí))學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值。關(guān)于Deep Learning的命名,Hinton曾開玩笑地說:I want to call SVM shallow learning.(注:shallow有膚淺的意思)。其實(shí)Deep Learning本身的意思是深層學(xué)習(xí),因?yàn)樗僭O(shè)神經(jīng)網(wǎng)絡(luò)有多層。
(1)Deep Learning
deep learning本身算是machine learning的一個(gè)分支,簡(jiǎn)單可以理解為neural network的發(fā)展。大約二三十年前,neural network曾經(jīng)是ML領(lǐng)域特別火熱的一個(gè)方向,但是后來確慢慢淡出了,原因包括以下幾個(gè)方面:
1,比較容易過訓(xùn)練,參數(shù)比較難tune;
2,訓(xùn)練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu);
所以中間有大約20多年的時(shí)間,神經(jīng)網(wǎng)絡(luò)被關(guān)注很少,這段時(shí)間基本上是svm和boosting算法的天下。但是,一個(gè)癡心的老先生hinton,他堅(jiān)持了下來,并最終(和其它人一起bengio、yann.lecun等)提成了一個(gè)實(shí)際可行的deep learning框架。
deep learning與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)之間有相同的地方也有很多不同。
二者的相同在于deep learning采用了神經(jīng)網(wǎng)絡(luò)相似的分層結(jié)構(gòu),系統(tǒng)由包括輸入層、隱層(多層)、輸出層組成的多層網(wǎng)絡(luò),只有相鄰層節(jié)點(diǎn)之間有連接,同一層以及跨層節(jié)點(diǎn)之間相互無連接,每一層可以看作是一個(gè)logistic regression模型;這種分層結(jié)構(gòu),是比較接近人類大腦的結(jié)構(gòu)的。
而為了克服神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的問題,DL采用了與神經(jīng)網(wǎng)絡(luò)很不同的訓(xùn)練機(jī)制。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,采用的是back propagation的方式進(jìn)行,簡(jiǎn)單來講就是采用迭代的算法來訓(xùn)練整個(gè)網(wǎng)絡(luò),隨機(jī)設(shè)定初值,計(jì)算當(dāng)前網(wǎng)絡(luò)的輸出,然后根據(jù)當(dāng)前輸出和label之間的差去改變前面各層的參數(shù),直到收斂(整體是一個(gè)梯度下降法)。而deep learning整體上是一個(gè)layer-wise的訓(xùn)練機(jī)制。這樣做的原因是因?yàn)?#xff0c;如果采用back propagation的機(jī)制,對(duì)于一個(gè)deep network(7層以上),殘差傳播到最前面的層已經(jīng)變得太小,出現(xiàn)所謂的gradient diffusion。
deep learning訓(xùn)練過程具體如下:
1,采用無標(biāo)定數(shù)據(jù)(有標(biāo)定數(shù)據(jù)也可)分層訓(xùn)練各層參數(shù),這一步可以看作是一個(gè)無監(jiān)督訓(xùn)練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分(這個(gè)過程可以看作是feature learning過程):具體的,先用無標(biāo)定數(shù)據(jù)訓(xùn)練第一層,訓(xùn)練時(shí)可以采用auto-encoder來學(xué)習(xí)第一層的參數(shù)(這一層可以看作是得到一個(gè)使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡(luò)的隱層),由于模型capacity的限制以及稀疏性約束,使得得到的模型能夠?qū)W習(xí)到數(shù)據(jù)本身的結(jié)構(gòu),從而得到比輸入更具有表示能力的特征;在學(xué)習(xí)得到第n-1層后,將n-1層的輸出作為第n層的輸入,訓(xùn)練第n層,由此分別得到各層的參數(shù);這里面需要重點(diǎn)理解auto-encoder以及sparse的機(jī)制的原理和作用。
2, 基于第一步得到的各層參數(shù)進(jìn)一步fine-tune整個(gè)多層模型的參數(shù),這一步是一個(gè)有監(jiān)督訓(xùn)練過程;第一步類似神經(jīng)網(wǎng)絡(luò)的隨機(jī)初始化初值過程,由于DL的第一步不是隨機(jī)初始化,而是通過學(xué)習(xí)輸入數(shù)據(jù)的結(jié)構(gòu)得到的,因而這個(gè)初值更接近全局最優(yōu),從而能夠取得更好的效果;所以deep learning效果好很大程度上歸功于第一步的feature learning過程。
總之,deep learning能夠得到更好地表示數(shù)據(jù)的feature,同時(shí)由于模型的層次、參數(shù)很多,capacity足夠,因此,模型有能力表示大規(guī)模數(shù)據(jù),所以對(duì)于圖像、語音這種特征不明顯(需要手工設(shè)計(jì)且很多沒有直觀物理含義)的問題,能夠在大規(guī)模訓(xùn)練數(shù)據(jù)上取得更好的效果。此外,從模式識(shí)別特征和分類器的角度,deep learning框架將feature和分類器結(jié)合到一個(gè)框架中,用數(shù)據(jù)去學(xué)習(xí)feature,在使用中減少了手工設(shè)計(jì)feature的巨大工作量(這是目前工業(yè)界工程師付出努力最多的方面),因此,不僅僅效果可以更好,而且,使用起來也有很多方便之處,因此,是十分值得關(guān)注的一套框架,每個(gè)做ML的人都應(yīng)該關(guān)注了解一下。
(2)SVM
SVM方法是通過一個(gè)非線性映射p,把樣本空間映射到一個(gè)高維乃至無窮維的特征空間中(Hilbert空間),使得在原來的樣本空間中非線性可分的問題轉(zhuǎn)化為在特征空間中的線性可分的問題.簡(jiǎn)單地說,就是升維和線性化.升維,就是把樣本向高維空間做映射,一般情況下這會(huì)增加計(jì)算的復(fù)雜性,甚至?xí)稹熬S數(shù)災(zāi)難”,因而人們很少問津.但是作為分類、回歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特征空間中卻可以通過一個(gè)線性超平面實(shí)現(xiàn)線性劃分(或回歸).一般的升維都會(huì)帶來計(jì)算的復(fù)雜化,SVM方法巧妙地解決了這個(gè)難題:應(yīng)用核函數(shù)的展開定理,就不需要知道非線性映射的顯式表達(dá)式;由于是在高維特征空間中建立線性學(xué)習(xí)機(jī),所以與線性模型相比,不但幾乎不增加計(jì)算的復(fù)雜性,而且在某種程度上避免了“維數(shù)災(zāi)難”.這一切要?dú)w功于核函數(shù)的展開和計(jì)算理論.
選擇不同的核函數(shù),可以生成不同的SVM,常用的核函數(shù)有以下4種:
⑴線性核函數(shù)K(x,y)=x·y;
⑵多項(xiàng)式核函數(shù)K(x,y)=[(x·y)+1]d;
⑶徑向基函數(shù)K(x,y)=exp(-|x-y|^2/d^2)
⑷二層神經(jīng)網(wǎng)絡(luò)核函數(shù)K(x,y)=tanh(a(x·y)+b).
SVM有如下主要幾個(gè)特點(diǎn):
(1)非線性映射是SVM方法的理論基礎(chǔ),SVM利用內(nèi)積核函數(shù)代替向高維空間的非線性映射;
(2)對(duì)特征空間劃分的最優(yōu)超平面是SVM的目標(biāo),最大化分類邊際的思想是SVM方法的核心;
(3)支持向量是SVM的訓(xùn)練結(jié)果,在SVM分類決策中起決定作用的是支持向量。
(4)SVM是一種有堅(jiān)實(shí)理論基礎(chǔ)的新穎的小樣本學(xué)習(xí)方法。它基本上不涉及概率測(cè)度及大數(shù)定律等,因此不同于現(xiàn)有的統(tǒng)計(jì)方法。從本質(zhì)上看,它避開了從歸納到演繹的傳統(tǒng)過程,實(shí)現(xiàn)了高效的從訓(xùn)練樣本到預(yù)報(bào)樣本的“轉(zhuǎn)導(dǎo)推理”,大大簡(jiǎn)化了通常的分類和回歸等問題。
(5)SVM的最終決策函數(shù)只由少數(shù)的支持向量所確定,計(jì)算的復(fù)雜性取決于支持向量的數(shù)目,而不是樣本空間的維數(shù),這在某種意義上避免了“維數(shù)災(zāi)難”。維基百科上面有關(guān)維數(shù)災(zāi)難的介紹請(qǐng)見此。
(6)少數(shù)支持向量決定了最終結(jié)果,這不但可以幫助我們抓住關(guān)鍵樣本、“剔除”大量冗余樣本,而且注定了該方法不但算法簡(jiǎn)單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現(xiàn)在:
①增、刪非支持向量樣本對(duì)模型沒有影響;
②支持向量樣本集具有一定的魯棒性;
③有些成功的應(yīng)用中,SVM方法對(duì)核的選取不敏感
兩個(gè)不足:
(1)SVM算法對(duì)大規(guī)模訓(xùn)練樣本難以實(shí)施
由于SVM是借助二次規(guī)劃來求解支持向量,而求解二次規(guī)劃將涉及m階矩陣的計(jì)算(m為樣本的個(gè)數(shù)),當(dāng)m數(shù)目很大時(shí)該矩陣的存儲(chǔ)和計(jì)算將耗費(fèi)大量的機(jī)器內(nèi)存和運(yùn)算時(shí)間。針對(duì)以上問題的主要改進(jìn)有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學(xué)工的CSVM以及O.L.Mangasarian等的SOR算法
(2)用SVM解決多分類問題存在困難
經(jīng)典的支持向量機(jī)算法只給出了二類分類的算法,而在數(shù)據(jù)挖掘的實(shí)際應(yīng)用中,一般要解決多類的分類問題。可以通過多個(gè)二類支持向量機(jī)的組合來解決。主要有一對(duì)多組合模式、一對(duì)一組合模式和SVM決策樹;再就是通過構(gòu)造多個(gè)分類器的組合來解決。主要原理是克服SVM固有的缺點(diǎn),結(jié)合其他算法的優(yōu)勢(shì),解決多類問題的分類精度。如:與粗集理論結(jié)合,形成一種優(yōu)勢(shì)互補(bǔ)的多類問題的組合分類器。
ps:其實(shí)整個(gè)機(jī)器學(xué)習(xí)的算法與數(shù)學(xué)上的運(yùn)籌學(xué),凸規(guī)劃等知識(shí)密不可分,如果想真的想徹底掌握算法中的數(shù)學(xué)原理,建議有時(shí)間的朋友可以看看這本書Convex Optimization – Boyd and Vandenberghe,如果已經(jīng)看過的朋友也歡迎將你的感受寫下來,發(fā)表到十一城,大家一起學(xué)習(xí)!
參考鏈接:
http://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E7%9A%84%E5%8E%86%E5%8F%B2
http://jssfxzx.blog.163.com/blog/static/6071057200692634829141/
http://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0
http://hi.baidu.com/giqguarzqdbadpq/item/8d41e5160121a3ff65eabf8d
http://blog.sina.com.cn/s/blog_7ad48fee0100vz2f.html
http://baike.baidu.com/view/960509.htm
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: 10 种机器学习算法的要点(附 Pyth
- 下一篇: 8086汇编 贪吃蛇 源代码