增強學習的解釋——學習基於長期回報的行為。

OReillyData發表於2017-01-10

編者注:想要深入瞭解人工智慧的當前現狀以及未來幾年可能的發展方向,請閱讀由Mike Loukides和Ben Lorica編著的免費電子書 ——《什麼是人工智慧》。

一個機器人向前邁了一大步然後跌倒了。下一次它就往前走一小步並可以保持平衡了。機器人就像這樣嘗試了很多次,最終它成功學會了正確的步伐大小並能夠穩定地行走了。

我們看到的上述例子被稱為增強學習。它將一個機器人的動作跟結果直接聯絡起來,而不需要學習複雜的機器人動作跟結果的關係。機器人基於動作帶來的獎勵(保持平衡)和懲罰(跌倒)來學習如何行走。這種反饋被稱作對“做”或者“不做”某一種動作的“增強”。

在圍棋中也可以找到使用增強學習的例子。如果計算機將它的白子放在某個位置,然後被黑子包圍並丟失了該位置。那麼該位置的走子方式就被懲罰。在多次被懲罰以後,當該位置有黑子包圍時計算機就會避免將白子放到這個位置。

增強學習的一個簡單定義就是學習基於獎勵或懲罰的最佳動作。

在增強學習中有三個概念:狀態、動作和回報。“狀態”是描述當前情況的。對一個正在學習行走的機器人來說,狀態是它的兩條腿的位置。對一個圍棋程式來說,狀態是棋盤上所有棋子的位置。

“動作”是一個智慧體在每個狀態中可以做的事情。給定一個機器人兩條腿的狀態或位置,它可以在一定距離內走幾步。通常一個智慧體只能採取有限或者固定範圍內的動作。例如一個機器人的步幅只能是0.01米到1米,而圍棋程式只能將它的棋子放在19×19路棋盤(361個位置)的某一位置。

當一個機器人在某種狀態下采取某種動作時,它會收到一個回報。這裡的術語“回報”是一個描述來自外界的反饋的抽象概念。回報可以是正面的或者負面的。當回報是正面的時候,它對應於我們常規意義上的獎勵。當回報是負面的時候,它就對應於我們通常所說的懲罰。

這些概念看起來都很簡單直接:我們一旦知道了狀態,就可以去選擇一個(希望)能帶來正面回報的動作。然而現實卻複雜的多。

舉一個機器人通過學習穿越迷宮的例子。當機器人向右移動一步時它到達一個活路的位置,然而當它向左移動一步時也到達一個活路的位置。機器人連續向左走了三步後它撞到了牆。回想起來在位置1採取向左行走是一個壞主意(壞動作)。那麼機器人是如何在每個位置(狀態)利用回報資訊來學習穿越迷宮的(這是最終目標)?

“真正”的增強學習或者當前用作機器學習方法的增強學習版本,都關注自己的長期回報而不僅僅是當前的即時回報。

長期回報是在一個智慧體跟外界互動時通過許多試錯中學習到的。一個走迷宮的機器人會記住它撞到的每面牆。最後它會記住進入死衚衕之前那些行走動作。它還會記住成功通過迷宮的行走路徑(行走動作的序列)。增強學習的基本目標就是學習一個有長期回報的動作序列。智慧體是通過跟外界互動並觀察每個狀態下的回報來學習動作序列的。

智慧體是如何知道期望的長期受益?祕密在於Q表(Q函式)。Q表是一個用於 “回報”與每個“狀態-動作”組的對應關係的查詢表。此表中的每個單元格記錄了一個稱為Q值的數值。它表示智慧體在特定狀態下采取這個動作時得到的長期回報,以及隨後選擇可能的最佳路徑。

智慧體是如何學習這個長期回報Q值的?事實證明智慧體不需要解一個複雜的數學方程。它只需要一個簡單的被稱為Q學習的過程來學習所有的Q值。增強學習的本質就是學習採取動作時的Q值。

Q學習:一種常用的增強學習方法

Q學習是最常用的增強學習方法,其中Q代表某種動作的長期回報價值。 Q學習是通過觀察來學習Q值的。

Q學習的過程是:

開始時智慧體會把每個“狀態-動作”組的Q值初始化為0。更精確的描述為對所有的狀態s和動作a:Q(s,a)=0。這從本質上說我們不知道關於每個“狀態-動作”組的長期回報資訊。

在智慧體開始學習後,它會在狀態s下采取動作a並獲得回報r。它的狀態會變成狀態s’。智慧體會用以下公式更新Q(s,a):

Q(s,a) = (1-學習速率)*Q(s,a)+學習速率*(r+折扣率*max_a(Q(s’,a)))

學習速率是介於0到1之間的數值。它是新回報資訊和舊回報資訊之間的權衡權重。假設該智慧體接下來都一直採取最佳的動作,新的長期回報就是當前回報r加上下一個狀態s’及以後所有狀態下的未來回報。未來回報會用一個介於0到1之間的折扣率來打折,這意味著未來回報沒有當前回報的影響大。

在該更新方法中,Q值包含了過去的回報資訊並把未來的動作也考慮進來。注意假設往後我們一直都走最優的路徑,我們使用最大化的Q值作為新的狀態。當智慧體到達所有狀態並嘗試了不同的動作時,它最終可以為所有可能的“狀態-動作“組學習一個最優的Q值。然後它可以推斷出長期來說每個狀態下的最優動作。

以下是一個機器人走迷宮的簡單例子:

640?wx_fmt=png

圖1. 一個機器人通過學習穿越迷宮的路徑

機器人從迷宮的左下角開始。每個位置(狀態)由數字表示。有上下左右四種動作可以選擇,但在某些狀態下動作的選擇是有限制的。例如在狀態1(初始狀態),機器人只有兩種選擇:上或右。在狀態4機器人有3種選擇:左、右或上。當機器人碰到牆時,它會收到回報值-1。當它到達一個活路位置時,它會收到回報值100。注意這種一次性的回報值跟Q值是非常不同的。事實上我們是這樣計算Q值的:

Q(4,左) = 0.8*0+0.2*(0+0.9*Q(1,右))

Q(4,右) = 0.8*0+0.2*(0+0.9*Q(5,上))

其中學習效率為0.2而折扣率為0.9。狀態1的最佳動作是向右,狀態5的最佳動作是向上。Q(1,右)和Q(5,上)有不同的值是因為它從狀態1比從狀態5到達出口需要走更多步。由於我們會對未來的回報打折扣,所以我們會把為實現目標多走的步數打折扣,因此Q(5,上)會比Q(1,右)的值更高。從而Q(4,右)比Q(4,左)的值更大,所以狀態4的最佳動作是向右。

Q學習需要智慧體不斷嘗試來遍歷所有可能的“狀態-動作”組。只有那時智慧體才能夠對這個世界有個完整的印象。Q值表示採取最佳動作序列時的最優值。這個動作序列也被稱為“策略”。

我們面臨的一個根本問題是:當智慧體在一個給定的環境中探索可能的動作時,它有可能學習所有的Q值嗎?換句話說這樣的學習是否可行?如果外界能對智慧體的動作做出反饋的話,答案是肯定。換句話說,狀態是基於動作而改變的。這樣的假設被稱為馬爾科夫決策過程(MDP)。這一過程假設下一狀態是由之前的狀態和採取的動作決定的。基於這一假設,所有可能的狀態最終都會到達並且可以確定每個“狀態-動作”組的長期回報值(Q值)。

想象一下我們生活在一個隨機的世界中,我們的行為對接下來發生的事沒有影響。那麼增強學習(Q學習)就會失效了,經過多次嘗試以後,我們不得不認輸放棄。幸運的是我們的世界更具有可預測性。例如當一個圍棋選手將棋子放在棋盤上的某個位置時,下一輪時棋子的位置就很明確了。我們的智慧體跟外界環境互動並通過行動來塑造外界環境。智慧體在某種狀態下的動作的確切影響通常是直接明瞭的。新狀態是可以立即觀測到的。機器人可以知道它應該在哪裡結束學習。

增強學習的常用技術

增強學習的基本技術是探索與利用。智慧體在狀態s中對於每個動作a學習Q(s,a)的值。由於智慧體需要得到一個高的回報值,它可以基於當前的回報資訊來選擇能夠得到最高回報值的動作(利用),或者不斷嘗試新的動作以期望能有更高的回報(探索)。當一個智慧體線上(實時)學習時,這兩種策略的平衡是非常重要的。這是因為智慧體在實時學習時必須使自己能夠維持生存(如探索一個洞穴或者在戰鬥中對抗時),並能找到最佳動作。當一個智慧體離線學習時(這意味著不是實時的),這種策略平衡不需要過多考慮。在機器學習術語中,離線學習意味著一個智慧體不需要跟外界環境互動就可以處理資訊。在這種情況下當智慧體嘗試(探索)許多不同的動作時,不用擔心後果,失敗(像撞到一堵牆或者在一個遊戲中被打敗)的代價會很低。

Q學習的效能取決於訪問所有“狀態-動作“組以學習正確的Q值的數量。這在狀態量比較少的時候是可以輕易實現的。然而在現實世界中,狀態的數量可能非常大,特別是當系統中有多個智慧體時。例如在迷宮遊戲中,一個機器人最多有1000個狀態(位置)。當它跟另外一個機器人比賽時狀態數量會增長到1000000,這裡的狀態表示兩個機器人的聯合位置(1000×1000)。

當狀態空間很大時,等待我們訪問完所有的“狀態-動作”組是沒有效率的方法。有一種更快速的方法叫做蒙特卡羅方法。在統計學中,蒙特卡羅方法通過重複取樣得到一個平均值。在增強學習中,蒙特卡羅方法用於在重複觀察相同的“狀態-動作”組之後計算Q值。這種方法將Q值Q(s,a)定義為多次訪問相同的“狀態-動作”組(s,a)後的平均回報。這種方法不需要使用學習速率或折扣率。它只依賴於大量的模擬。由於其簡便性,這種方法變的非常流行。它已經被AlphaGo用於跟自己對弈很多次以後來學習最佳走子方式。

減少狀態數的另外一種方法是使用神經網路,其中輸入是狀態而輸出是動作或者是跟每個動作相關聯的Q值。深度神經網路能夠通過隱藏層極大地簡化狀態表示。在這篇關於應用於Atari遊戲的深度增強學習的《Nature》論文中,整個遊戲局面通過一個卷積神經網路對映以確定Q值。

增強學習善於做什麼?

增強學習在關於外界資訊是非常有限的情況時的場景是有用的:特別是沒有給定的世界地圖。這時我們不得不通過跟外界環境互動來學習我們的動作:需要不斷地試錯。例如圍棋程式不能計算所有可能的狀態(10^170種)。宇宙的年齡只有10^17秒,這意味著計算機即使可以在一秒內計算十億(10^9)種可能的局面(狀態),圍棋程式也要用比宇宙年齡更長的時間來完成計算。

由於我們不能列出所有可能的情況(並相應的優化我們的動作),因此我們需要通過行作的過程來學習。一旦採取了某個動作,我們可以立即觀察結果並改變下一次的動作。

最近的應用

傳統上增強學習主要應用於機器人控制和簡單的棋類遊戲,例如西洋雙路棋。最近增強學習跟深度學習相結合的方法有很強勁的勢頭,它可以在狀態數非常多的時候簡化狀態。當前增強學習的應用包括:

1. 圍棋遊戲

最成功的例子是AlphaGo,它是一個贏了排名世界第二的人類圍棋選手的計算機程式。AlphaGo使用增強學習並基於當前棋盤局面來學習下一步走子方式。棋盤局面通過卷積神經網路被簡化,之後產生走子方式作為輸出。

2. 電腦遊戲

最近在Atari遊戲中應用到了增強學習。

3. 機器人控制

機器人可以使用增強學習來學習走路、跑步、跳舞、飛行、打乒乓球或者堆樂高。

4. 線上廣告

計算機程式可以使用增強學習選擇在正確的時間或者以正確的格式向使用者顯示廣告。

5. 對話生成

會話智慧體會基於前瞻性的長期回報來選擇要說的句子。這使得對話更具有吸引力並能持續時間更長。例如程式回答“你多大了”這個問題時可以說“我16歲了,你為什麼要問這個問題?”,而不是隻說”我16歲了”。

增強學習入門

OpenAI提供了一個增強學習的基準工具包OpenAI Gym。它包含示例程式碼,可以幫助初學者入門。其中CartPole問題是一個有趣的入門問題,很多學習者都提交了他們關於這個問題的程式碼和相關文件。

AlphaGo及其應用增強學習的成功提高了人們對這種方法的興趣。強化學習通過跟深度學習相結合已經成為許多應用的強大工具。增強學習的時代到來了!

作者介紹


Junling Hu

Junling Hu是人工智慧和資料科學領域的權威專家,並擔任即將舉辦的《人工智慧前沿會議》的主席。她是三星公司資料探勘總監,並她領導了大規模和實時資料產品的資料探勘解決方案的端到端實現。在加入三星之前,Hu博士在PayPal和eBay帶領了一支資料科學團隊,在市場、營銷和客戶流失預測方面構建了各種預測模型。在加入eBay之前,Hu博士在Bosch研究中心的一個資料探勘團隊。在加入Bosch以前,Hu博士在2000年到2003年間在羅切斯特大學擔任助理教授。Hu博士的論文有1000多次的學術引用。她是斯隆獎學金的工程類傑出女性的獲得者和國家科學基金會(NSF)頒發的CAREER獎的得主。她曾兩次在國家科學基金會的評審小組中為來自美國研究所的資助申請提供過幫助。1999年Hu博士在密歇根大學獲得了電腦科學的博士學位,主要研究人工智慧領域,特別是增強學習。

640?wx_fmt=png

相關文章