- AlphaGo如何戰勝人類圍棋大師:智能硬件TensorFlow實踐
- 陳震 鄭文勛編著
- 2658字
- 2019-07-30 17:52:55
3.1 強化學習基礎
3.1.1 強化學習概述
1.強化學習的原理
強化學習(Reinforcement Learning)是一種通用的決策框架(Decision-Making Framework)。在強化學習中,智能體(Agent)具有采取動作(Action)的能力(Capacity),每次動作都會影響智能體的未來狀態(State),返回一個標量的獎賞信號(Reward Signal)來量化表示成功與否(Success)。強化學習算法的目標(Goal)就是如何采取動作(Action)最大化未來的獎賞(Future Reward)。強化學習示意圖如圖3-1所示。
簡單地說,強化學習是使用反饋來更新行動,以獲得最大化收益的算法。而深度學習是表示學習的通用框架。給定目標,學習到需要達到目標的表示。深度學習使用最小的領域知識,特征表示直接從原始輸入中自動學習獲得。
2.強化學習的觀測
在每個時間步t,智能體的行為如下。
(1)執行動作at。

圖3-1 強化學習示意圖
(2)獲得一個環境的觀測ot。
(3)獲得一個標量的獎賞rt。
外界環境的行為如下。
(1)接收到智能體的動作at。
(2)發出一個觀測ot+1給智能體。
(3)發出一個獎賞rt+1。
這里經驗(Experience)就是一組觀測、動作、獎賞的序列。
o1,r1,a1,…,at-1,ot,rt
狀態st可以認為是經驗的函數,即
st=f(o1,r1,a1,…,at-1,ot,rt)
在一個完全可觀測的環境,以上公式簡化為
st=f(ot)
3.強化學習的要素
從強化學習智能體的角度看,強化學習包含一組要素組件。
(1)策略(Policy)是指智能體的行為函數。
(2)價值(Value)函數是指每個狀態與動作的成效。
(3)模型(Model)是指智能體對環境的建模表示。
按照要素的區分,強化學習的方法包括基于價值的強化學習(Value-based RL)、基于策略的強化學習(Policy-based RL)和基于模型的強化學習(Model-based RL)。
基于價值的強化學習在于在任何策略下,估計最優的價值函數。
基于策略的強化學習在于尋找最優策略π?。
策略是智能體的行為,將狀態映射為動作,例如,有如下確定性策略和隨機策略。
(1)確定性策略(Deterministic Policy):a=π(s)。
(2)隨機策略(Stochastic Policy):π(a|s)=P[a|s]。
3.1.2 深度強化學習
深度強化學習(Deep Reinforcement Learning,Deep RL)就是把強化學習RL和深度學習DL結合起來。用強化學習定義目標,用深度學習給出相應的機制,如Q學習等技術,以實現通用人工智能。深度強化學習的核心原理是使用深度神經網絡來近似表示強化學習中的價值函數、策略和模型。
深度強化學習又分為基于價值的深度強化學習(Value-based Deep RL)、基于策略的深度強化學習(Policy-based Deep RL)和基于模型的深度強化學習(Model-based Deep RL)。
1.基于價值的深度強化學習
1)深度Q網絡
價值函數(Value Function)就是預測未來的獎勵。Q值函數可以給出長期的期望收益,在策略π的情況下,一般使用折扣因子。
Qπ(s,a)=E[rt+1+γrt+2+γ2rt+3+…|s,a]
模型是從經驗中學習的,可以作為環境的一個代理。可以使用預先查找算法來模擬。
價值函數可以用使用權重為w的Q網絡(Q-network)來表示,如圖3-2所示,即,
Q(s,a,w)=Q?(s,a)
2)Q學習
Q學習(Q-learning)就是優化Q值應遵循Bellman方程,寫成如下Bellman方程形式:

圖3-2 價值函數用權重為w的Q網絡來表示
Q?(s,a)=ES′[r+γmax a′Q(s′,a′)?|s,a]
Q學習把公式中的右側視為一個整體,人們可以使用深度神經網絡去近似Q值函數,采用梯度下降法最小化損失函數的均方誤差的學習過程。損失函數形式表示如下:
l=(r+γmax aQ(s′,a′,w)-Q( s,a,w))2
通過這樣訓練生成的深度神經網絡,又稱為深度Q網絡(Deep Q-Network)。
3)經驗回放
Q?收斂可以使用表查詢表示方法,但是使用深度神經網絡的方法會出現分歧問題(diverge)。這是樣本之間的相關性和目標的非平穩性造成的。
為了解決這個問題,消除學習樣本的相關性,采用經驗回放(Experience Replay)的方法,如圖3-3所示。

圖3-3 經驗回放
從數據集中采樣經驗,并在損失函數中更新。為了解決非平穩性問題,目標的參數w-是固定的。
l=(r+γmax aQ(s′,a′,w-)-Q( s,a,w))2
2.基于策略的深度強化學習
1)深度策略網絡(Deep Policy Network)
通過深度神經網絡(權重參數u)表示策略:
a=π(a|s,u)或a=π(s|u)
定義目標函數是整體折扣后的回報,一般使用折扣因子γ。
L(u)=E[r1+γr2+γ2r3+…|π(s,u)]
通過隨機梯度下降法來優化目標函數,例如修正權重u來獲得更多的回報。
一個隨機策略π(a|s,u)的梯度為

如果a是連續可微分的,一個確定性策略a=π(s|u)的梯度可以進一步簡化為

注:全書中出現的對數沒有底數,是因為所參考的資料中不限制log的底數,默認是自然對數底。
2)Actor-Critic算法
過去的時間里,人們提出了單表演者(Actor-only)、單評論家(Critic-only)、表演者-評論家(Actor-Critic)等強化學習方法。其中,表演者(Actor)就是策略(Policy)函數的同義詞,評論家(Critic)就是價值(Value)函數的同義詞。
Actor-only方法一般采用一組參數化的策略來工作,這樣可以直接使用優化過程。這種參數化策略的優點是連續動作的范圍可以生成,但是優化方法(如策略梯度方法)會在梯度估計時出現方差高的問題,這又將導致學習比較慢的問題。
Critic-only方法使用時間差分學習,具有期望回報估計方差低的優點。從Critic-only方法直接導出策略的方法是選擇貪婪動作。選擇那些價值函數指示是平均回報最高的動作。然而,這需要訴諸于優化的流程,在進入每個狀態時,找到最大價值的動作。當動作空間是連續時,這是一個計算密集的任務。所以,Critic-only方法一般會離散化連續動作空間,此后,在動作空間的優化就變成一個枚舉過程。
Actor-Critic方法組合Actor-only和Critic-only方法的優點。盡管參數化的Actor可以計算連續動作,無須在價值函數上優化,而Critic的優點是為Actor提供關于行為效果的低方差的知識。更具體地說,Critic對平均回報的估計允許Actor用來更新梯度,使其具有的方差較小,這就加速了學習過程。Actor-Critic方法相比于Critic-only方法,具有更好的收斂屬性。所以,Actor-Critic方法的良好屬性,使其成為在實際應用中首選的增強學習算法。
Actor-Critic算法的估計價值函數為Q(s,a,w)≈Qπ(s,a)。通過隨機梯度下降法更新權重。

如果a是連續可微分的,采用確定性策略a=π(s|u)的梯度可以進一步簡化為

3.基于模型的深度強化學習
基于模型的深度強化學習(Mode-lbased Deep RL)試圖對外界環境建模,創建預測模型(Predictive Model),從而預測反饋的獎賞和觀察。對于一些計算機游戲,如Atari,可以通過卷積神經網絡和循環神經網絡對輸入的人類選手數據進行訓練,建立預測模型。但是對于計算機圍棋等應用,因為一般無法直接建立模型,所以多采用模型無關的深度強化學習(Mode-lfree Deep RL)方法。
4.深度強化學習的應用
深度強化學習的應用廣泛,包括計算機游戲、計算機圍棋、計算機撲克、機器人運動控制?;趦r值的強化學習,來訓練神經網絡DQN,可學會玩各類游戲,如Atari等。
2015年11月,谷歌的Deep Mind計算機圍棋AlphaGo,首次戰勝人類專業棋手。2017年8月,OpenAI的計算機游戲智能體在Data2游戲中,首次擊敗了人類最好選手。
3.1.3 強化學習框架
2016年11月,Google Deep Mind公司開源了Lab軟件,Lab源代碼托管在Github上,見https://github.com/deepmind/lab。
2016年12月,OpenAI組織也開源了OpenAI Universe軟件,Universe源代碼托管在Github上,見https://github.com/openai/universe。