'五大機器學習範例:神經網絡、遺傳算法、規則歸納?'

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.8 如果首先選擇醬汁顏色,那麼信息增益等於0.29

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.8 如果首先選擇醬汁顏色,那麼信息增益等於0.29

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.9 如果首先選擇含有肉類的屬性,那麼信息增益等於0.17

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.8 如果首先選擇醬汁顏色,那麼信息增益等於0.29

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.9 如果首先選擇含有肉類的屬性,那麼信息增益等於0.17

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.10 如果首先選擇含有海鮮的屬性,那麼信息增益等於0.32

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.8 如果首先選擇醬汁顏色,那麼信息增益等於0.29

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.9 如果首先選擇含有肉類的屬性,那麼信息增益等於0.17

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.10 如果首先選擇含有海鮮的屬性,那麼信息增益等於0.32

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.11 ID3必須選擇哪個屬性作為第二個屬性——是醬汁顏色,還是含有肉類?

本文截選自《人工智能》(第2版)

"

本章開始對學習進行討論,首先介紹機器學習和解釋歸納範式。決策樹是廣泛應用的歸納學習方法,由於它們不能很好泛化,預測能力很差,因此有大約10年的時間,它們都沒有得到人們的支持。但是如果採用很多樹,就可以消除很多分歧。最終所謂的隨機森林(或決策林)促使最近這種學習方式得以復興。本章最後闡釋了熵及其與決策樹構造的關係。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

教室

10.0 引言

無論是牙科領域還是小提琴演奏領域,人們都能通過學習提升專業技能。牙科學校的學生在修復牙齒方面變得日漸精通;而在紐約市茱莉亞學校學習的小提琴家,經過多年的培訓,可以演奏出藝術性更強的莫扎特小提琴協奏曲。類似地,機器學習也是一個過程,在這個過程中,計算機通過閱讀訓練數據提煉意義。在研究早期,我們提出了一個問題:機器可以思考嗎?如果發現計算機能夠執行學習所需的分析推理的算法(超出了第5章中概述的演繹原理的應用),那麼這將對解決這個問題大有裨益——因為大多數人認為學習是思維的一種重要組成部分。此外,毫無疑問,機器學習有助於克服人類在知識和常識方面的瓶頸,而我們認為這些瓶頸會阻礙人類層次人工智能的發展,因此許多人將機器學習視為人工智能的夢想。

10.1 機器學習:簡要概述

機器學習的根源可以追溯到亞瑟·塞繆爾(Arthur Samuel)。[1] 他在IBM工作了20年(從1949年開始),教計算機玩跳棋。他所編寫的程序用的是填鴨式學習,即程序將記住以前遊戲中的好走法。更有趣的是,他的跳棋遊戲程序中整合了策略。Samuel通過訪問人類跳棋選手,獲得了對跳棋的深刻見解,並將其解植入程序中。

  • 始終努力保持對棋盤中央的控制。
  • 儘可能地跳過對手的棋子。
  • 尋求方法成王。

為了能夠增強在某些遊戲中的博弈能力,人們會反覆玩這個遊戲。同樣,Samuel也有不同版本的程序互相競爭。博弈的失敗者將從獲勝者那裡學習並獲得啟發式(詳見第16章)。

這個列表絕對不是詳盡無遺的,而是作為討論的一個切入點。機器學習這個主題內容豐富,即便用整本書,也不一定能夠囊括所有內容。我們鼓勵有興趣的讀者查閱關於這個主題的眾多優秀文章。[3,4,5]

下面列出了五大機器學習(ML)範例。

(1)神經網絡。

(2)基於案例推理。

(3)遺傳算法。

(4)規則歸納。

(5)分析學習[2] 。

隱喻就是打比方,將兩個事實上不同的事物進行互相對比,找出共同點。因此,第二個事物的屬性就可以轉移到第一個事物中。例如:“他像馬一樣吃飯。”

聚焦於人工神經網絡的ML社區從人腦和神經系統的隱喻中獲得靈感,人腦和神經系統可能是地球上最具有智慧自然智能的連接。在人工神經網絡(ANN)中,人工神經元按照所規定的拓撲結構進行鏈接。網絡的輸入信號通常會導致互聯強度的變化,最終超過閾值,產生輸出信號。訓練集是精心挑選的一組輸入示例,通常用於教授神經網絡某些概念。我們將用第11章一整章來講述這種機器學習方法。

基於案例的推理與人類記憶中真正起作用的部分進行類比。這種方法維護了一個過去案例或場景的文件,人們有效地將這些案例或場景編入索引,以便即時訪問。人們還用了現有案例中一些相似性的量度。例如,對於一位抱怨有嚴重頭痛並表現出失語症、伴有周邊視力喪失的患者,醫生可能會回想起類似案例,進而診斷為病毒性腦膜炎。施用適當的抗癲癇藥物後,患者的最終療效良好。有了處理過的先前案例的文件,醫生可以在當前的案例中更快地做出診斷。當然,醫生還必須通過一些測試排除其他具有相似症狀但具有非常不同的原因和(或)結果的疾病。例如,醫生可以預約核磁共振MRI來確認腦腫脹,並排除腫瘤的存在,抑或通過脊椎抽液排除細菌性腦膜炎的可能。關於案例推理的進一步討論參見第9章。

在基於遺傳算法的機器學習中,自然進化是這種機器學習方法的靈感。19世紀中葉,達爾文提出了自然選擇學說。無論是植物還是動物,只要物種變異產生了生存優勢,那麼這種變異在下一代中出現的頻率就會更高。例如,在19世紀初的倫敦,淺色飛蛾比深色飛蛾具有生態優勢。當時在倫敦及其周邊地區,樺樹盛行,樹的顏色比較淺,這為淺色飛蛾提供了自然偽裝,從而避免了鳥類的捕食。工業革命開始後,汙染變得普遍了。結果,英國的樹木變得越來越暗,深色飛蛾具有了偽裝優勢,它們在飛蛾種群中的比例就上升了。遺傳算法和遺傳程序的內容參見第12章。

規則歸納是依賴於產生式規則(見第6章)和決策樹(見第7章)的機器學習分支。適用於教機器人包裝雜貨的一個產生式規則是:

IF[物品是冷凍食品]

THEN[在將物品放在購物袋之前,先放置在冷凍袋中][6]

我們很快就會發現產生式規則和決策樹之間信息內容的相似性。圖10.1描繪了雜貨包裝機器人決策樹的一部分。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.1 雜貨包裝機器人決策樹。請注意這與本文中給出的產生式規則的相似性

規則歸納的動力來自於啟發式搜索。在本章中,決策樹得到了廣泛的研究。

10.2 機器學習系統中反饋的作用

假設有一個智能體,這個智能體希望能夠在大聯盟級別上打棒球。要達到這個級別,通常需要15年或更長的培訓時間。儘管規則極其簡單,但是一個冗長的學習週期:“扔球,抓球,擊球。”

這句話引自1988年由Ron Shelton執導的電影《Bull Durham》。

在訓練早期,智能體必須瞭解棒球比賽中的諸多可能狀態。

(1)我們的團隊是否領先?

(2)如果我處在防守的位置,並且球向我飛來,那麼我必須知道現在跑到第一壘的跑壘者速度是不是很快?如果是,那麼我必須快點拋球。

(3)對方的投手是否拋出了一個旋轉球(這種球很難擊中!)?如果是,那麼也許今天我應該假裝生病了。

這個年輕的智能體所接受的這種類型的反饋是學習過程的核心。在機器學習中,有3種反饋:監督學習、無監督學習和強化學習。

使用監督學習的方式學習功能是最直接、簡單的方法。智能體在做了一些動作後,可以馬上收到適當的反饋。例如,當一位敏捷的跑壘者給他一個滾地球時,如果他要花點時間將球傳給第一壘,那麼在這些情況下,在幾分鐘之內,他就會得到提醒,加快速度。第11章介紹了神經網絡使用監督學習來學習布爾函數的方法。我們給網絡提供了一個列表,其中列出了每種可能輸入的正確輸出。

在無監督的學習過程中,培訓期間沒有提供具體的反饋。但是,如果要學習,那麼智能體必須收到一些反饋。假設智能體進攻失利,例如他沒有擊中壘,但是他的防守截然不同——他成功地實現了兩個撲接,並截獲了一個全壘打。這是一場比分接近的比賽,他所在的隊贏了。比賽後,隊友們向他祝賀,他由此得出結論:好的防守也是值得讚賞的。

在強化學習過程中,沒有老師為智能體提供正確的答案。事實上,智能體甚至不能提前知道行動的後果。為了進一步將問題複雜化,假設即使智能體知道行動的影響,但是也不知道影響有多大,因此智能體必須通過試錯法來學習。由於獎勵被推遲,智能體很難確定行動效果的好壞。試圖使用中指平衡傘(沒打開的)的人都明白強化學習的基礎,如圖10.2所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.2 平衡傘,需要在x-y平面上進行小幅度的移動以保持傘的平衡

如果傘向左傾斜,那麼你要向左大幅度移動,不久你會發現這是矯枉過正。讓我們回到棒球智能體的例子。假設他是一名投手,當對方打出了一個全壘打時,智能體傾向於將棒球投擲給對方的擊球手。當對方的投手朝他的腿投出一個時速約145千米的快球時,幾局過後,他需要將痠痛的膝蓋骨與可能過度激進的打法聯繫起來。這裡我們將討論嚴格限制在監督學習中。在巴拉德(Ballard)的著作中[7],你可以找到關於非監督學習和強化學習的極好討論。

通過監督學習,你可以看到一組有序對:

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

我們將這組有序對稱為訓練集。其中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是輸入的n維空間向量,即

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

是這個函數在

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

處的值,也就是學習到的值。函數f將每個輸入向量映射到正確的輸出響應。一般說來,在m維的空間中

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

,每個分量tk(k = 1,…, m) 都來自一個事先規定的集合,例如整數集、實數集等(輸入集和輸出集可能有所不同)。

10.3 歸納學習

歸納學習中的任務是找到最接近真實函數f ()的函數h。我們將h稱為f ()的假設。學習算法認為假設空間H是近似正確函數f ()的一個函數集。在這個學習中,目標是對於訓練集中的所有點找到與f一致的h。人們將這種嘗試稱為曲線擬合,如圖10.3所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.3 如果h在所有點上都與f符合,則認為hf是一致的

在圖10.4中,有3種不同的假設。乍一看,h3似乎是最好的假設。但是,我們要記住學習的目的(這很重要),即學習不是為了讓智能體在訓練集上表現得完美,而是要讓智能體在驗證集上表現良好。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.4 3種不同的假設。注意,由於只有h3通過了所有的6個點,因此只有h3與f一致

驗證集是測試智能體程序的示例集。如果智能體真正學到了一些概念,那麼它不應該只是記住輸入和輸出的對應關係,而是應該獲得概括能力,例如對它還沒有遇到過的輸入做出適當的響應。通常來說,在訓練集上表現完美的假設是過度訓練了,不能很好地概括概念。實現概括能力的一種方法是交替訓練和驗證,並應注意,在驗證期間,智能體的學習機制應該是關閉的。當驗證錯誤最小化而不是訓練錯誤最小化時,訓練終止。在第11章中,我們將深度解析這種訓練的方法。最後再說一下棒球智能體。如果他真的學到了進行棒球比賽的方法,那麼即使首次遇到某種比賽情況,也應該做出合理的響應,例如首次遇到一場比賽有三人出局的三殺。

再次參考圖10.4(c)。這個函數經過了所有的6個點。我們可以使用拉格朗日插值法找到具有這個屬性的許多其他函數,例如階數為7、8、9的多項式等。在學習領域(機器和人類學習)中,一個指導原則是,當對同一個觀察到的現象存在多個解釋時,選擇最簡單的解釋才是明智的。這個原則就是所謂的奧卡姆剃刀(Occam’s Razor)原則。以下是這個原則的一些例子。

(1)在遙遠的天空中,看見一條細小明亮的光線移動。解釋一,一架飛機從附近機場起飛或準備著陸。解釋二,一顆星星離開了它的星系,正準備進入我們的星系。解釋一是比較可取的一個。

(2)你在聖誕節早晨醒來,看到了窗外街道上的雪——你昨晚睡覺的時候,這些雪不在那裡。解釋一,因為你今年的表現非常好,聖誕老人委託精靈將雪從北極帶到你附近。解釋二,你睡覺時下雪了。解釋二更有可能。

(3)幾年前,一個九月的早晨,你經過布萊克街和曼哈頓第六大道時,看到了數千名紐約人離開城市市區向北走。解釋一,地鐵有電氣故障,列車沒有運行。解釋二,恐怖分子劫持了兩架飛機,撞入世界貿易中心。解釋一更有可能,但不幸的是,正確的是解釋二。

大多數科學家都同意,當有兩個理論來解釋同樣的現象時,更簡單的理論相對較好。但是,正如我們所知,這並不總是能保證正確。這可能只是一個更好的探索起點,直到發現新證據。

2001年某個星期二上午,其中一位作者(SL)約會時遲到了,未能聽到早晨的新聞播報。

還有一種特性適用於學習方法,它們要麼歸為懶惰(lazy),要麼歸為急切(eager)。懶惰的學習者被認為是懶惰的,因為其推遲了超過訓練數據外的概括,直到新的查詢出現。懶惰的學習者從不做出任何努力壓縮數據,結果,當模型被調用時,所有的數據都可用。這與急切的學習者不同,急切的學習者在出現新詢問時,已經抽象出可以應用的一般規則。但是這樣一來,訓練數據本身不會被保留。一般來說,訓練懶惰的學習者更快,但是使用它們需要花更多時間。急切的學習者堅持單一的假設,因此比起懶惰的學習者相對更不靈活。

基於案例的推理(見第9章)被歸為懶惰的學習者。在這種情況下,優點是我們可用整個案例,因此這可能具有更廣泛的適用性。相反,神經網絡被歸類為急切的學習者。在反向傳播網絡(BPN)中,網絡學習的是權重,並且我們認為權重是訓練數據的壓縮版本。為了將BPN應用於新的樣本,你需要簡單地將新查詢作為輸入應用到網絡中,但是先前用於訓練網絡的數據就檢索不到了。

10.4 利用決策樹進行學習

對於概念學習,決策樹是被廣泛使用的歸納方法。決策樹中的節點對應於關於某些屬性所做出的查詢。從節點發出的分支表示假定的屬性值,如圖10.5所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.5 描述了其中一位作者(SL)對意大利麵食偏好的決策樹

任何熟悉意大利餐館的人都會很快發現,意大利麵有許多形狀和大小。

這棵樹可能用於將意大利麵實例分為兩個類——SL喜歡的類和SL不喜歡的類。查詢總是從樹的根節點開始,終止於葉節點,在葉節點中我們找到了類標籤。考慮以下意大利麵食清單。

(1)Spaghetti and Meatballs——紅醬肉丸意大利麵。

(2)Spaghetti Arrabbiata——紅醬意大利麵。

(3)Linguine calm red sauce Vongole——蛤蜊紅醬扁意麵。

(4)Linguine calm white sauce Vongole——蛤蜊白醬扁意麵。

(5)伏特加粗紋通心麵。

如圖10.5所示,為了從這個清單中對意大利麵和肉丸進行分類,我們從根節點開始。這道菜的醬汁是紅色的,所以我們選擇這棵樹的左分支。根的左子樹問:這道菜“含”有肉嗎?這當然含肉。這棵樹就將Spaghetti and Meatballs歸類為SL喜歡的意大利麵。試使用相同的決策樹追蹤其他4個實例。你將會注意到,所有5種麵食食譜都分為兩個不同的類別。

第一類——SL喜歡的意大利麵食,包含了實例1、4和5。

第二類——SL不喜歡的意大利麵食,包含了實例2和3。

免責聲明——其中一位作者(SL)選擇了這些屬性值,僅作為教學之用。SL在曼哈頓下城紐約市的“小意大利”長大,不幸的是(對於他的腰圍而言),他喜歡每種麵食!事實上,他品嚐了最喜歡的兩家餐館的大部分菜餚,這兩家餐館分別是位於漢斯特街189號的普利亞和位於“小意大利”邁寶瑞街164號的達尼科。

如圖10.5所示,從決策樹根節點開始到葉節點結束的任何路徑,表示的是路徑上屬性值的合取(AND)。例如,到達Spaghetti Arrabbiata分類的路徑是(醬汁= 紅色)∧(肉=否)。SL所喜歡的意大利麵菜餚的概念對應於所有合取項的析取(OR),這些合取項是沿著路徑到達一個回答為是(Yes)的節點。在例子中,我們有:[(醬汁=紅色)∧(肉=是)]∨[(醬汁=白色)∧(海鮮=否)]∨[(醬汁=粉紅色)]。

10.5 適用於決策樹的問題

能夠有效使用決策樹進行學習的一些問題的特徵如下。

(1)屬性應該只有少量幾個值,例如醬汁=紅色、白色或粉紅色;實例用一組屬性值表示,例如實例=意粉和肉丸。我們為一些屬性賦予某個值,例如醬汁是紅色的,是否配有肉=是。

(2)一般來說,目標函數只有少量的幾個離散值。在意大利麵食的例子中,值為是(Yes)和否(No)。

(3)訓練數據中可能存在錯誤。當在屬性值中或是在實例分類中出現錯誤的情況下,決策樹的表現依然優秀(可將此與第11章中神經網絡學習的魯棒性進行對比)。

這些是理想條件。通過參考這一領域的文獻,你可以學到許多規避這些侷限性的途徑。

在訓練數據過程中,可能會出現屬性值缺失的情況。例如,假設決策樹的用戶知道Spaghetti Arrabbiata不含肉類,這個屬性也就缺失了。

許多現實世界的問題滿足了上一列表所施加的約束。在醫療應用中,屬性對應於可見的症狀或患者的描述(皮膚顏色=黃色、鼻子=流涕、出現頭痛)或測試結果(體溫升高、血壓或血糖水平高、心臟酶異常)醫療應用中的目標函數可能表明存在某種疾病或病症:病人出現花粉症、肝炎或最近修復的心臟瓣膜有點問題。

決策樹廣泛應用於醫療行業。

在金融領域,從信用卡價值決定到房地產投資的有利條件,也都應用了決策樹。商業界中的一個基本應用是期權交易。期權是一種合約,賦予個人以給定價格或在特定日期買賣某些資產(例如股票)的權利。

10.6 熵

熵量化了存在於樣本集合中的均勻性。為了簡化討論,假設待學習的概念在本質上是二元的——例如,一個人是否喜歡麵食。給定集合S,相對於這個二元分類,S的熵為

{-:-}熵= -p(+) log2 p(+)-p(-) log2 p(-)

其中,p(+)表示喜歡的部分,即喜歡麵食;p(-)表示不喜歡的部分。在熵的討論中,對數總是以2為底,即使在分類不是二元的情況下也是如此。

圖10.5中的決策樹描述了意大利麵的首選項。假設有一個包含4種意大利麵食的集合,某人都喜歡吃這4種面——我們將這種情況表示為[4(+),0(-)],則這個集合中的熵為

[4(+),0(-)] = -4 / 4×log2(4/4)- 0/4×log2(0/4)

= -1×log2(1)- 0×log2(0)

= -1×0 - 0× 0

= 0

如果某人喜歡其中的兩種麵食,不喜歡另外兩種麵食,那麼有

[2(+),2(-)] = -2/4×log2(2/4)-2/4×log2(2/4)

= -1/2×(-1)-1/2×(-1)

= 1/2 -(-1/2)

= 1

我們觀察到,當所有成員屬於同一組時,該集合的熵為0。這個0值表示在這個集合中沒有雜質,這個示例中所有的成員均為真。在第二個例子中,有一半的成員是正值,一半的成員是負值,這種情況下熵的值最大,為1。在二元分類中,集合熵的範圍是從0到1,如圖10.6所示。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.6 二元分類中,熵函數隨著正樣本

比例的變化在區間[0,1]上變化

集合的熵可以視為確定所選項來自哪個類所需的比特數目。例如,對於集合[2(+),2(-)],需要一個比特來指定從哪個類別中選出哪個項,其中1的意思是某人喜歡該項,0表示某人不喜歡該項。相反,當某人喜歡所有的項時,在集合[4(+),0(-)],不需要比特來標記項,因此某人喜歡所有的項時,熵為0。

10.7 使用ID3構建決策樹

1986年,昆蘭(Quinlan)開發了ID3算法。ID3是決策樹學習中應用最廣泛的算法之一,它是以自上而下的方式構建決策樹的。它首先搜索儘可能地將訓練集分成相等子集的那個屬性。如果要成功地應用決策樹,必須瞭解它們是如何構建的。在意大利麵食的例子中,有三個屬性——醬汁色、含肉、含海鮮,見表10.1。

表10.1 用於決策樹學習的數據

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

其中有3種不同的屬性,因此,對於哪種屬性首先出現有不同的選擇,如圖10.7所示。

如果根據該屬性的值可以將樣本一分為二,那麼就認為這個屬性是好的,例如,對應於某個屬性值所有的實例都為正,對於其他屬性值所有的實例都為負。相反,如果某個屬性不包含具有判別力的屬性值,則認為這個屬性是沒用的。在示例中,好的屬性意味著對於每個屬性值,喜歡的麵食和不喜歡的麵食數量相等。

ID3使用信息增益來對屬性進行位置安排。如果該屬性能獲得最大預期的熵減,那麼這個屬性的位置更接近於根節點。如圖10.7所示,為了確定3棵子樹中最先選擇哪個子樹,ID3對所示的每棵子樹先計算出其平均信息,然後選擇能夠產生信息增益最大的那棵子樹。其中,屬性A產生的信息增益,指的是利用A對集合S進行分割,從而導致熵的減少。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

式中,v是屬性A採用的一個值。這個公式對v的所有值對應的Sv(具有值vS子集)進行求和。如圖10.8~圖10.10所示,理解ID3必須完成的計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.7 決策樹可以按照3種屬性中的任意一種開始。在(a)中,在醬汁顏色是紅色的情況下,作者喜歡兩種意大利麵,不喜歡3種意大利麵。對於其他方框,也可以進行類似的解釋

仔細觀察圖10.8~圖10.10,很明顯,由於“含有海鮮”的屬性,其相關的信息增益為0.32,是對應3種屬性中最大的值,因此ID3選擇“含有海鮮”的屬性作為決策樹中的第一種屬性。

接下來,ID3必須在圖10.11繪製的兩棵樹之間進行選擇。

一旦選擇了第二個屬性,接下來在需要的時候就會應用未選擇的屬性。本書要求你在練習中完成這些計算。

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.8 如果首先選擇醬汁顏色,那麼信息增益等於0.29

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.9 如果首先選擇含有肉類的屬性,那麼信息增益等於0.17

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.10 如果首先選擇含有海鮮的屬性,那麼信息增益等於0.32

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

圖10.11 ID3必須選擇哪個屬性作為第二個屬性——是醬汁顏色,還是含有肉類?

本文截選自《人工智能》(第2版)

五大機器學習範例:神經網絡、遺傳算法、規則歸納?

  • 人工智能百科全書
  • 易於上手的人工智能自學指南
  • 涵蓋機器學習 深度學習 自然語言處理 神經網絡 計算機博弈等各種知識 圖文詳細 講解細緻 配備豐富的教學資源和學習素材
  • 美國經典教材,在美亞上,被評價為自Russell & Norvig的《人工智能:一種現代方法》之後更好的教材,更加適合本科生使用。

本書是作者結合多年教學經驗、精心撰寫的一本人工智能教科書,堪稱“人工智能的百科全書”。全書涵蓋了人工智能簡史、搜索方法、知情搜索、博弈中的搜索、人工智能中的邏輯、知識表示、產生式系統、專家系統、機器學習和神經網絡、遺傳算法、自然語言處理、自動規劃、機器人技術、高級計算機博弈、人工智能的歷史和未來等主題。

本書提供了豐富的教學配套資源,適合作為高等院校人工智能相關專業的教材,也適合對人工智能相關領域感興趣的讀者閱讀和參考。

"

相關推薦

推薦中...