基於策略搜尋的強化學習方法

Enoch Liu98發表於2020-10-02

基於策略搜尋的強化學習方法

img

1.policy gridient

1.1 基礎推導

在這裡插入圖片描述

1.2 Tip

Tip1: add a baseline(增加基線)

因為原來的梯度,一直都會取正數,不是特別合適,但是這樣其實無可厚非,因為可以用過大小進行區分,但我們這裡更好的辦法是給他加入一個基線,讓其有正有負。

Tip2:Assign Suitable Credit

因為如果對於每個執行的動作,都使用同樣的全域性reward,則會有損公平性,因為在同一個episode中,並不是所有的動作都是同樣好的,所以我們這裡使用的是從執行完該動作到結束這段過程中的reward來進行學習,並加入衰減引數。

1.3 仍然存在的問題

採用的全域性reward,需要等待整局遊戲結束後,才能對引數進行一次更新,效率十分的低

1.4 針對問題提出的改進方法

採用off-policy的方法進行取樣,這樣樣本的利用效率則會高得多

2.TRPO PPO

2.1基礎推導

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

2.2Tip

Tip1:採用重要性取樣,這樣就可以採用off-policy的更新方法,樣本利用效率更高

Tip2:為了使得兩種策略更加接近,我們這裡採用一個KL散度來降低兩者的差距。

PPO和TRPO十分類似,PPO是TRPO的改進版

img

img

DPPO的演算法流程如下圖所示,其中W是workers的數量;D是一個閾值,它指定更新全域性網路引數時所需的workers的數量,也就是說如果有一定數量的worker的梯度是available時,就同步地更新全域性網路引數,這一個全域性網路引數等於各個worker的梯度的均值;M和B是在給定一把mini batch資料的條件下,更新actor和critic網路的迭代步數;T是每一個worker在引數更新之前的date points數量;K是K-steps return的數量。

preview

3.Actor Critic

3.1 基本推導

Actor-Critic=Policy gradient(Actor)+Value based(Critic)
4個網路,動作估計、動作現實、狀態估計、狀態現實。
Policy gradient中的G(上文提及的reward)不穩定,在Policy gradient中引入Q value,advantage function改為q(s,a)-v(s)。
進一步改為(r+v(s t+1)-v(s t)),varience會降低。

3.2 Tip

用Q網路來計算序列的總回報,這樣更加穩定和準確,而且還可以利用基於值的方法的每執行一次動作就可以更新的特性。

4.DDPG

也就是說動作-狀態值函式Q只和環境有關係,也就意味著外面可以使用off-policy來更新值函式(比如使用Q-learning方法等)

與策略無關,所以可以用別的策略來更新值函式

preview

preview

5.TD3

TD3的技巧

技巧一:裁剪的雙Q學習(Clipped Double-Q learning). 與DDPG學習一個Q函式不同的是,TD3學習兩個Q函式(因此稱為twin),並且利用這兩個Q函式中較小的哪個Q值來構建貝爾曼誤差函式中的目標網路。

技巧二:延遲的策略更新(“Delayed” Policy Updates). TD3演算法中,策略(包括目標策略網路)更新的頻率要低於Q函式的更新頻率。文章建議Q網路每更新兩次,策略網路才更新一次。

技巧三:目標策略平滑(Target Policy Smoothing). TD3在目標動作中也加入了噪聲,通過平滑Q函式沿著不同動作的變化,使得策略更難利用Q函式的錯誤。

技巧三:目標策略平滑(Target Policy Smoothing). TD3在目標動作中也加入了噪聲,通過平滑Q函式沿著不同動作的變化,使得策略更難利用Q函式的錯誤。

img

相關文章