強化學習簡介

2021-10-01 21:32:43 字數 3061 閱讀 3000

強化學習是機器想裡面非常重要的乙個派別。智慧型體agent會不斷執行一些操作,通過結果來學習,在不同的環境中分別應該採取怎樣的行動。

問題來了,目標為什麼是預期累積獎勵最大化?

因為,強化學習原本就是建立在獎勵假說的基礎之上。想表現好,就要多拿獎勵。

每乙個時間步 (time step) 的累積獎勵都可以表示為:

或者

不過,我們沒有辦法把獎勵直接相加。因為遊戲裡,越接近遊戲開始處的獎勵,就越容易獲得;而隨著遊戲的進行,後面的獎勵就沒有那麼容易拿到了。

把智慧型體想成乙隻小老鼠,對手是只貓。它的目標就是在被貓吃掉之前,吃到最多的乳酪。

就像圖中,離老鼠最近的乳酪很容易吃,而從貓眼皮底下順乳酪就難了。離貓越近,就越危險。結果就是,從貓身旁獲取的獎勵會打折扣,吃到的可能性小,就算乳酪放得很密集也沒用。那麼,這個折扣要怎麼算呢?我們用γ表示折扣率,在0和1之間。· γ越大,折扣越小。表示智慧型體越在意長期的獎勵 (貓邊上的乳酪) 。· γ越小,折扣越大。表示智慧型體越在意短期的獎勵 (鼠邊上的乳酪) 。這樣,累積獎勵表示出來就是:

簡單來說,離貓近一步,就乘上乙個γ,表示獎勵越難獲得。

強化學習裡的任務分兩種。

這類任務,有個起點,有個終點。兩者之間有一堆狀態,一堆行動,一堆獎勵,和一堆新的狀態,它們共同構成了一「集」。

當一集結束,也就是到達終止狀態的時候,智慧型體會看一下獎勵累積了多少,以此評估自己的表現。

然後,它就帶著之前的經驗開始一局新遊戲。這一次,智慧型體做決定的依據會充分一些。

以貓鼠迷宮為例的一集:

· 永遠從同乙個起點開始

· 如果被貓吃掉或者走了超過20步,則遊戲結束

· 結束時,得到一系列狀態、行動、獎勵和新狀態

· 算出獎勵的總和 (看看表現如何)

· 更有經驗地開始新遊戲

集數越多,智慧型體的表現會越好。

永遠不會有遊戲結束的時候。智慧型體要學習如何選擇最佳的行動,和環境進行實時互動。

這樣的任務是通過時間差分學習 (temporal difference learning) 來訓練的。每乙個時間步,都會有總結學習,等不到一集結束再分析結果。

在討論強化學習的幾種方法之前,必須講到這件事。

·探索 (exploration)是找到關於環境的更多資訊。

·開發 (exploitation)是利用已知資訊來得到最多的獎勵。

要記住,目標是將預期累積獎勵最大化。正因如此,它有時候會陷入一種困境。

小老鼠可以吃到無窮多塊分散的乳酪 (每塊+1) 。但在迷宮上方,有許多堆在起的乳酪(+1000) ,或者看成巨型乳酪。

如果我們只關心吃了多少,小老鼠就永遠不會去找那些**酪。它只會在安全的地方一塊一塊地吃,這樣獎勵累積比較慢,但它不在乎。

如果它跑去遠的地方,也許就會發現大獎的存在,但也有可能發生危險。

程式猿需要設定一種規則,讓智慧型體能夠把握二者之間的平衡。

前菜吃完了,我們終於要開始講解決強化學習問題的方法了。三種方法分別是:基於價值(value-based)、基於策略(policy-based)以及基於模型(model-based)的方法。

這種方法,目標是優化價值函式v(s)。

價值函式會告訴我們,智慧型體在每個狀態裡得出的未來獎勵最大預期 (maximum expected future reward) 。

乙個狀態下的函式值,是智慧型體可以預期的未來獎勵積累總值,從當前狀態開始算。

智慧型體要用這個價值函式來決定,每一步要選擇哪個行動。它會採取函式值 (就是q值) 最大的那個行動。

在迷宮問題中,每一步我們都選取最大函式值:-7,-6,-5,以此類推,達到目標。

這種方式,會直接優化策略函式π(s),拋棄價值函式。

策略就是評判智慧型體在特定時間點的表現。

把每乙個狀態和它所對應的最佳行動建立聯絡。

策略分為兩種,

·確定性策略:某乙個特定狀態下的策略,永遠都會給出同樣的行動。

·隨機性策略:策略給出的是多種行動的可能性分布。

從圖中我們可以看到,策略直接指出了每一步的最佳行動。

這種方法是對環境建模。這表示,我們要建立乙個模型,來表示環境的行為。

問題是,每個環境都會需要乙個不同的模型 (馬里奧每走一步,都會有乙個新環境) 。這也是這個方法在強化學習中並不太常用的原因。

所謂深度強化學習,就是在強化學習裡,加入深度神經網路。

如圖,拿q學習和深度q網路 (dqn) 來舉例。

·q學習,是利用乙個傳統演算法建立q-table,來幫助智慧型體找到下一步要採取的行動。

·dqn,是利用深度神經網路來近似q值。

這裡是本系列大綱的傳送門:

強化學習 簡介

一 強化學習要素 1 agent 智慧型體 2 environment 環境 3 state 狀態 4 policy 策略 5 action 動作 6 reward 獎勵 二 智慧型體與環境的互動過程 1 在每乙個時刻,環境 environment 都將處於乙個狀態 state 智慧型體 agent...

強化學習系列1 強化學習簡介

2015年10月,alphago在和歐洲冠軍進行的圍棋賽上獲得了5 0的完勝,其後的深度強化學習也隨之火了起來。從本期開始開個新坑,一步步把強化學習的內容捋一遍。強化學習 reinforcement learning 是用來解決連續決策問題的一種方法。針對的模型是馬爾科夫決策過程 markov de...

深度強化學習簡介

強化學習 reinforcement learning 是機器學習的乙個重要分支,它是用來解決連續決策的問題。強化學習的應用範圍十分廣泛,幾乎包括了所有需要做一系列決策的問題,例如控制電擊讓它執行特定任務,玩棋牌遊戲 alphago 等。它能應用到有序列輸出的問題中,即針對一系列變化的環境狀態,輸出...