強化學習(基本概念)


概述

強化學習(Reinforcement Learning,簡稱RL)是機器學習的一個重要分支。在強化學習中,包含兩種基本的元素:狀態與動作,在某個狀態下執行某種動作,這便是一種策略,學習器要做的就是通過不斷地探索學習,從而獲得一個好的策略。例如:在圍棋中,一種落棋的局面就是一種狀態,若能知道每種局面下的最優落子動作,那就攻無不克/百戰不殆了~

若將狀態看作為屬性,動作看作為標記,易知:監督學習和強化學習都是在試圖尋找一個映射,從已知屬性/狀態推斷出標記/動作,這樣強化學習中的策略相當於監督學習中的分類/回歸器。但在實際問題中,強化學習並沒有監督學習那樣的標記信息,通常都是在嘗試動作后才能獲得結果,因此強化學習是通過反饋的結果信息不斷調整之前的策略,從而算法能夠學習到:在什么樣的狀態下選擇什么樣的動作可以獲得最好的結果。

基本要素


強化學習任務通常使用馬爾可夫決策過程(Markov Decision Process,簡稱MDP)來描述,具體而言:機器處在一個環境中,每個狀態為機器對當前環境的感知;機器只能通過動作來影響環境,當機器執行一個動作后,會使得環境按某種概率轉移到另一個狀態;同時,環境會根據潛在的獎賞函數反饋給機器一個獎賞。綜合而言,強化學習主要包含四個要素:狀態、動作、轉移概率以及獎賞函數。

  • 狀態(X):機器對環境的感知,所有可能的狀態稱為狀態空間; 
  • 動作(A):機器所采取的動作,所有能采取的動作構成動作空間; 
  • 轉移概率(P):當執行某個動作后,當前狀態會以某種概率轉移到另一個狀態; 
  • 獎賞函數(R):在狀態轉移的同時,環境給反饋給機器一個獎賞。

因此,強化學習的主要任務就是通過在環境中不斷地嘗試,根據嘗試獲得的反饋信息調整策略,最終生成一個較好的策略π,機器根據這個策略便能知道在什么狀態下應該執行什么動作。常見的策略表示方法有以下兩種:、

  • 確定性策略:π(x)=a,即在狀態x下執行a動作; 
  • 隨機性策略:P=π(x,a),即在狀態x下執行a動作的概率。

一個策略的優劣取決於長期執行這一策略后的累積獎賞,換句話說:可以使用累積獎賞來評估策略的好壞,最優策略則表示在初始狀態下一直執行該策略后,最后的累積獎賞值最高。長期累積獎賞通常使用下述兩種計算方法

K搖擺賭博機

首先我們考慮強化學習最簡單的情形:僅考慮一步操作,即在狀態x下只需執行一次動作a便能觀察到獎賞結果。易知:欲最大化單步獎賞,我們需要知道每個動作帶來的期望獎賞值,這樣便能選擇獎賞值最大的動作來執行。若每個動作的獎賞值為確定值,則只需要將每個動作嘗試一遍即可,但大多數情形下,一個動作的獎賞值來源於一個概率分布,因此需要進行多次的嘗試。

單步強化學習實質上是K-搖臂賭博機(K-armed bandit)的原型,一般我們嘗試動作的次數是有限的,那如何利用有限的次數進行有效地探索呢?這里有兩種基本的想法:

  • 僅探索法:將嘗試的機會平均分給每一個動作,即輪流執行,最終將每個動作的平均獎賞作為期望獎賞的近似值。 
  • 僅利用法:將嘗試的機會分給當前平均獎賞值最大的動作,隱含着讓一部分人先富起來的思想。

可以看出:上述兩種方法是相互矛盾的,僅探索法能較好地估算每個動作的期望獎賞,但是沒能根據當前的反饋結果調整嘗試策略;僅利用法在每次嘗試之后都更新嘗試策略,符合強化學習的思(tao)維(lu),但容易找不到最優動作。因此需要在這兩者之間進行折中。

下面介紹兩種折中方法:

1、ε-貪心法

ε-貪心法基於一個概率來對探索和利用進行折中,具體而言:在每次嘗試時,以ε的概率進行探索,即以均勻概率隨機選擇一個動作;以1-ε的概率進行利用,即選擇當前最優的動作。ε-貪心法只需記錄每個動作的當前平均獎賞值與被選中的次數,便可以增量式更新。

2、Softmax算法

Softmax算法則基於當前每個動作的平均獎賞值來對探索和利用進行折中,Softmax函數將一組值轉化為一組概率,值越大對應的概率也越高,因此當前平均獎賞值越高的動作被選中的幾率也越大。Softmax函數如下所示:

 

有模型學習

若學習任務中的四個要素都已知,即狀態空間、動作空間、轉移概率以及獎賞函數都已經給出,這樣的情形稱為“有模型學習”。假設狀態空間和動作空間均為有限,即均為離散值,這樣我們不用通過嘗試便可以對某個策略進行評估。

1、策略評估

前面提到:在模型已知的前提下,我們可以對任意策略的進行評估(后續會給出演算過程)。一般常使用以下兩種值函數來評估某個策略的優劣

    • 狀態值函數(V):V(x),即從狀態x出發,使用π策略所帶來的累積獎賞; 
    • 狀態-動作值函數(Q):Q(x,a),即從狀態x出發,執行動作a后再使用π策略所帶來的累積獎賞。

根據累積獎賞的定義,我們可以引入T步累積獎賞與r折扣累積獎賞

這里寫圖片描述 
這里寫圖片描述

由於MDP具有馬爾可夫性,即現在決定未來,將來和過去無關,我們很容易找到值函數的遞歸關系:

類似地,對於r折扣累積獎賞可以得到:

這里寫圖片描述

易知:當模型已知時,策略的評估問題轉化為一種動態規划問題,即以填表格的形式自底向上,先求解每個狀態的單步累積獎賞,再求解每個狀態的兩步累積獎賞,一直迭代逐步求解出每個狀態的T步累積獎賞。算法流程如下所示:

對於狀態-動作值函數,只需通過簡單的轉化便可得到:

這里寫圖片描述

2、策略改進

理想的策略應能使得每個狀態的累積獎賞之和最大,簡單來理解就是:不管處於什么狀態,只要通過該策略執行動作,總能得到較好的結果。因此對於給定的某個策略,我們需要對其進行改進,從而得到最優的值函數。

最優Bellman等式改進策略的方式為:將策略選擇的動作改為當前最優的動作,而不是像之前那樣對每種可能的動作進行求和。易知:選擇當前最優動作相當於將所有的概率都賦給累積獎賞值最大的動作,因此每次改進都會使得值函數單調遞增。

 

將策略評估與策略改進結合起來,我們便得到了生成最優策略的方法:先給定一個隨機策略,現對該策略進行評估,然后再改進,接着再評估/改進一直到策略收斂、不再發生改變。這便是策略迭代算法,算法流程如下所示:

 

可以看出:策略迭代法在每次改進策略后都要對策略進行重新評估,因此比較耗時。若從最優化值函數的角度出發,即先迭代得到最優的值函數,再來計算如何改變策略,這便是值迭代算法,算法流程如下所示:

 

 

免模型學習

在現實的強化學習任務中,環境的轉移函數與獎賞函數往往很難得知,因此我們需要考慮在不依賴於環境參數的條件下建立強化學習模型,這便是免模型學習。蒙特卡羅強化學習便是其中的一種經典方法。

由於模型參數未知,狀態值函數不能像之前那樣進行全概率展開,從而運用動態規划法求解。一種直接的方法便是通過采樣來對策略進行評估/估算其值函數,蒙特卡羅強化學習正是基於采樣來估計狀態-動作值函數:對采樣軌跡中的每一對狀態-動作,記錄其后的獎賞值之和,作為該狀態-動作的一次累積獎賞,通過多次采樣后,使用累積獎賞的平均作為狀態-動作值的估計,並引入ε-貪心策略保證采樣的多樣性。

在上面的算法流程中,被評估和被改進的都是同一個策略,因此稱為同策略蒙特卡羅強化學習算法。引入ε-貪心僅是為了便於采樣評估,而在使用策略時並不需要ε-貪心,那能否僅在評估時使用ε-貪心策略,而在改進時使用原始策略呢?這便是異策略蒙特卡羅強化學習算法。

這里寫圖片描述

 

參考自:https://blog.csdn.net/u011826404/article/details/75576856?tdsourcetag=s_pcqq_aiomsg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM