機器學習算法大致可以分為三種:
1. 監督學習(如回歸,分類)
2. 非監督學習(如聚類,降維)
3. 增強學習
什么是增強學習呢?
增強學習(reinforcementlearning, RL)又叫做強化學習,是近年來機器學習和智能控制領域的主要方法之一。
定義: Reinforcement learning is learning what to do ----how to map situations to actions ---- so as to maximize a numerical reward signal.[1]
也就是說增強學習關注的是智能體如何在環境中采取一系列行為,從而獲得最大的累積回報。
通過增強學習,一個智能體應該知道在什么狀態下應該采取什么行為。RL是從環境狀態到動作的映射的學習,我們把這個映射稱為策略。
那么增強學習具體解決哪些問題呢,我們來舉一些例子:
例1. flappy bird 是現在很流行的一款小游戲,不了解的同學可以點鏈接進去玩一會兒。現在我們讓小鳥自行進行游戲,但是我們卻沒有小鳥的動力學模型,也不打算了解它的動力學。要怎么做呢? 這時就可以給它設計一個增強學習算法,然后讓小鳥不斷的進行游戲,如果小鳥撞到柱子了,那就獲得-1的回報,否則獲得0回報。通過這樣的若干次訓練,我們最終可以得到一只飛行技能高超的小鳥,它知道在什么情況下采取什么動作來躲避柱子。
例2. 假設我們要構建一個下國際象棋的機器,這種情況不能使用監督學習,首先,我們本身不是優秀的棋手,而請象棋老師來遍歷每個狀態下的最佳棋步則代價過於昂貴。其次,每個棋步好壞判斷不是孤立的,要依賴於對手的選擇和局勢的變化。是一系列的棋步組成的策略決定了是否能贏得比賽。下棋過程的唯一的反饋是在最后贏得或是輸掉棋局時才產生的。這種情況我們可以采用增強學習算法,通過不斷的探索和試錯學習,增強學習可以獲得某種下棋的策略,並在每個狀態下都選擇最有可能獲勝的棋步。目前這種算法已經在棋類游戲中得到了廣泛應用。
可以看到,增強學習和監督學習的區別主要有以下兩點:
1. 增強學習是試錯學習(Trail-and-error),由於沒有直接的指導信息,智能體要以不斷與環境進行交互,通過試錯的方式來獲得最佳策略。
2. 延遲回報,增強學習的指導信息很少,而且往往是在事后(最后一個狀態)才給出的,這就導致了一個問題,就是獲得正回報或者負回報以后,如何將回報分配給前面的狀態。
增強學習是機器學習中一個非常活躍且有趣的領域,相比其他學習方法,增強學習更接近生物學習的本質,因此有望獲得更高的智能,這一點在棋類游戲中已經得到體現。Tesauro(1995)描述的TD-Gammon程序,使用增強學習成為了世界級的西洋雙陸棋選手。這個程序經過150萬個自生成的對弈訓練后,已經近似達到了人類最佳選手的水平,並在和人類頂級高手的較量中取得40 盤僅輸1盤的好成績。
下篇我們正式開始學習增強學習,首先介紹一下馬爾可夫決策過程。
參考資料:
[1] R.Sutton et al. Reinforcement learning: An introduction , 1998
[2] T.Mitchell. 《機器學習》,2003
[3] Andrew Ng.CS229: Machine learning Lecture notes