強化學習 —— (4)A3C

1. Policy Gradient的不足

Policy Gradient中提到,Policy Gradient 算法在計算Reward時需要對數據進行採樣:
在這裏插入圖片描述
在採樣的過程中,有很大的隨機性,不太穩定。那麼,能不能直接通過估計GtnG_t^n的期望值,使用期望值來代替sample的值,這樣可以保證穩定性。

2. 改進方法

Actor-Critic 的 Actor 的前生是 Policy Gradients , 這能讓它毫不費力地在連續動作中選取合適的動作, 而 Q-learning 做這件事會很吃力。 那爲什麼不直接用 Policy Gradients 呢? 因爲 Actor Critic 中的 Critic 的前生是 Q-learning 或者其他的 以值爲基礎的學習法 , 能進行單步更新, 而傳統的 Policy Gradients 則是回合更新, 這降低了學習效率。所以就想到把兩者結合起來變成Actor-Critic。

要解決這個問題,需要引入value base的方法,也就是Q learning,其中Q learning有兩種方法:

在這裏插入圖片描述
根據Q的定義,可以將t=tTnyttrtn\sum_{t'=t}^{T_n}y^{t'-t}r_{t'}^n替換成Qπθ(stn,atn)Q^{\pi_\theta}(s^n_t,a^n_t),然後baseline一般指定爲Vπθ(stn)V^{\pi_\theta}(s_t^n)
在這裏插入圖片描述
但是這樣就有個問題:需要估計兩個network,這樣就有2倍的風險。
在這裏插入圖片描述
按照定義:
Qπ(stn,atn)=E[rt+Vπ(st+1)st=s,at=π(st)] Q^{\pi}(s_t^n,a_t^n) = E[r_{t}+V^{\pi}(s_{t+1})|s_t=s, a_t=\pi'(s_t)]
這裏取期望的原因是,跳轉到什麼樣的狀態,得到什麼樣的reward本來就有隨機性,所以要取期望來減少隨機性
在這裏插入圖片描述
這也是可以近似的認爲下式的原因,雖然也有一定的隨機性,但是隨機性比原來要小。
在這裏插入圖片描述
所以,就有:
在這裏插入圖片描述
所以,整個流程爲:
首先用π\pi與環境做互動,收集原始的資料,收集到的資料沒有去估計policy,而是去估計value function(TD或MC方法)然後套用優化公式去更新π\pi

在這裏插入圖片描述

3. 小技巧

那麼,在Advantage Actor Critic中,需要估計的網絡其實有兩個,一個用於估計當前State中需要採取怎麼樣的action,另一個用於估計value。考慮到前面提取特徵的網絡結構,可以設計成下面結構:

在這裏插入圖片描述
通常情況下,會對π(s)\pi(s)進行一個限制,希望π(s)\pi(s)的entropy不要太小,這樣的話agent在面臨相同state的時候可以採取不同的action。
在這裏插入圖片描述

4. A3C

其實就是在工程上並行化A2C,所有的actor都是各做各的,所以當actor完成後,強行覆蓋原始的參數,不管這個參數是不是一開始agent拿到的。
在這裏插入圖片描述

5. Pathwise Derivative Policy Gradient

在原來的Critic-Actor中,Critic僅僅是告訴agent這個action好還是不好,並沒有指出哪一個action是最好的,而這種Pathwise Derivative Policy Gradient 則可以指導怎麼選擇action。

所以,一個基本的思路是這樣的,我們希望找一個Actor,將state s輸入這個Actor中,得到一個action a,將這個a和s丟入Qfunction中,可以讓Q function的值越大越好。可以參考GAN網絡的運行機制。

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章