1. 程式人生 > >增強學習(一) ----- 基本概念

增強學習(一) ----- 基本概念

機器學習演算法大致可以分為三種:

    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