1. 程式人生 > >【基礎知識十六】強化學習

【基礎知識十六】強化學習

動態 sof col -s 範例 如何 差分 ash 抽象

一、任務與獎賞

我們執行某個操作a時,僅能得到一個當前的反饋r(可以假設服從某種分布),這個過程抽象出來就是“強化學習”。

技術分享

強化學習任務通常用馬爾可夫決策過程MDP來描述:

強化學習任務的四要素

E = <X, A, P, R>

E:機器處於的環境

X:狀態空間

A:動作空間

P:狀態轉移概率

R:獎賞函數

學習目的:

“策略”:機器要做的是不斷嘗試學得一個“策略” π,根據狀態x就能得到要執行的動作 a = π(x)

策略的評價:

長期累積獎賞,常用的有“T步累積獎賞”

技術分享

技術分享

強化學習與監督學習的差別

“策略”實際相當於監督學習中的“分類器”(或“回歸器”)

“動作”對應於“標記”

不同的是,強化學習沒有監督學習中的“示例-標記”對

二、K-搖臂賭博機

一般地,一個動作的獎賞值是來自於一個概率分布。

1. 探索與利用

探索:將所有嘗試機會平均分配給每個搖臂——用於估計每個動作帶來的獎賞

利用:按下目前最優的(即到目前為止平均獎賞最大的)搖臂,若有多個搖臂同為最優,則從中隨機選取一個——用於執行獎賞最大的動作

面臨“探索-利用窘境”

2. ε-貪心

以ε的概率進行探索,以 1-ε的概率進行利用

若搖臂獎賞的不確定性較大,例如概率分布較寬時,需要較大的ε值;

3.softmax

基於當前已知的搖臂平均獎賞來對探索和利用進行折中:若某些搖臂的平均獎賞明顯高於其他搖臂,則它們被選取的概率也明顯更高

三、多步強化學習任務

有模型學習:

解決方法:策略叠代與值叠代

1. “狀態評估算法”(基於T步累積獎賞的策略評估算法),用於求狀態值函數V(.),進而可以求出狀態-動作函數Q(.)

2. “策略叠代”——初始策略,策略評估,然後策略改進……不斷叠代

“值叠代”——策略改進與值函數的改進是一致的,因此可以將策略改進視為值函數的改善(於是可以得到“值叠代”算法)

免模型學習:

蒙特卡羅強化學習

時序差分學習

四、值函數近似

前面一直假定強化學習任務是在有限狀態空間上進行的,每個狀態可用一個編號來指代;值函數是關於有限狀態的“表格值函數”,即值函數能表示為一個數組

如果強化學習的狀態空間是連續的,有無窮多個狀態,如何處理?——“值函數近似”

即直接對連續狀態空間的值函數進行學習

五、模仿學習

現實任務中,往往能得到“人類專家的決策過程範例”,從這樣的範例中學習,稱為“模仿學習”。

1. 直接模仿學習

可將所有軌跡上的所有“狀態-動作對”抽取出來,構造出一個新的數據集合D,

即把狀態作為特征,動作作為標記,對新構造出來的數據集合D使用分類(對於離散動作)學得策略模型

學得的這個策略模型可作為機器進行強化學習的初始策略,再通過強化學習方法基於環境反饋進行改進,獲得更好的策略。

2. 逆強化學習

設計獎賞函數往往相當困難(正向),反過來從人類專家提供的範例數據中反推出獎賞函數(逆向),有助於問題解決

#補充:

1. 時序差分TD學習,著名應用是跳棋,達到人類世界冠軍水平

2. 模仿學習被認為是強化學習提速的重要手段

3. 運籌學與控制論領域,強化學習被稱為“近似動態規劃”

【基礎知識十六】強化學習