策略梯度理解

2022-06-22 16:21:14 字數 1041 閱讀 6858

策略梯度(policy gradient)是所有基於策略搜尋的強化學習演算法的基礎,就像mdp是所有強化學習問題的基礎一樣。

後續提出的演算法(如actor-critic、trpo、ppo、dpg)都是針對策略梯度演算法的缺陷提出改進,所以理解策略梯度的各種細節十分必要。

為什麼要用基於策略的學習?

1)基於策略的學習可能會具有更好的收斂性,這是因為基於策略的學習雖然每次只改善一點點,但總是朝著好的方向在改善;

但是上講提到有些價值函式在後期會一直圍繞最優價值函式持續小的**而不收斂。

2)在對於那些擁有高維度或連續狀態空間來說,使用基於價值函式的學習在得到價值函式後,制定策略時,需要比較各種行為對應的價值大小,

這樣如果行為空間維度較高或者是連續的,則從中比較得出乙個有最大價值函式的行為這個過程就比較難了,這時候使用基於策略的學習就高效的多。

3)能夠學到一些隨機策略,下文舉了乙個很好的例子;但是基於價值函式的學習通常是學不到隨機策略的。

有時候計算價值函式很困難。比如當小球從空中掉下來你需要通過左右移動去接住它時,計算小球在某乙個位置(狀態)時採取什麼樣的行動(action)是很困難的。

但是基於策略函式就簡單了,只需要朝著小球落地的方向移動修改策略就好了。

---------------------

什麼時候使用基於價值的學習?什麼時候使用基於策略的學習?

具體問題具體分析,根據需要評估的問題的特點來決定使用哪一種學習方式。

隨機策略有時是最優策略。比如剪刀石頭布這個遊戲,如果你是按照某一種策略來出拳的話,很容易讓別人抓住你的規律,然後你就會輸了。所以最好的策略就是隨機出拳,讓別人猜不到。所謂的確定性策略,是說只要給定乙個狀態s,就會輸出乙個具體的動作a,而且無論什麼時候到達狀態s,輸出的動作a都是一樣的。而隨機策略是指,給定乙個狀態s,輸出在這個狀態下可以執行的動作的概率分布。即使在相同狀態下,每次採取的動作也很可能是不一樣的。

基於價值函式的策略有時無法得到最優策略。

或者灰色格仔一直向東的策略。

所以出現這種狀態相同,需要採取的行動不同的這種情況時,隨機策略就會比確定性的策略好。

待補充。

五 策略梯度

1.3 蒙特卡洛 mc 和時序差分 td 的聯絡與區別 1.4 reinforce的計算過程 首先介紹幾個名詞 actor 產生並執行策略或動作 policy或者action 的東西。比如打遊戲,actor就是手柄,操縱角色移動。environment 同樣是打遊戲,environment 就是主機...

Ray 策略梯度方法

這段 展示了如何使用策略梯度方法進行強化學習。檢視這些示例的 鏈結。有關ray的強化學習庫的概述,請參見rllib。執行這個例子,你將需要安裝tensorflow與gpu支援 至少版本1.0.0 和其他一些依賴。pip install gym atari pip install tensorflow...

Policy Gradient (策略梯度演算法)

policy gradient 策略梯度演算法 前置基礎知識 策略梯度演算法 直接根據當前的狀態來選擇動作。策略梯度的演算法是回合更新,在回合中的中每一步記錄狀態 動作 獎勵,在乙個回合完成以後,目標損失函式 回合中每步狀態的動作,與已執行的動作做交叉熵,如果乙個動作得到的獎勵多,那麼這個動作出現的...