1. Policy Gradient的不足
在Policy Gradient中提到,Policy Gradient 算法在計算Reward時需要對數據進行採樣:
在採樣的過程中,有很大的隨機性,不太穩定。那麼,能不能直接通過估計的期望值,使用期望值來代替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的定義,可以將替換成,然後baseline一般指定爲
但是這樣就有個問題:需要估計兩個network,這樣就有2倍的風險。
按照定義:
這裏取期望的原因是,跳轉到什麼樣的狀態,得到什麼樣的reward本來就有隨機性,所以要取期望來減少隨機性
這也是可以近似的認爲下式的原因,雖然也有一定的隨機性,但是隨機性比原來要小。
所以,就有:
所以,整個流程爲:
首先用與環境做互動,收集原始的資料,收集到的資料沒有去估計policy,而是去估計value function(TD或MC方法)然後套用優化公式去更新。
3. 小技巧
那麼,在Advantage Actor Critic中,需要估計的網絡其實有兩個,一個用於估計當前State中需要採取怎麼樣的action,另一個用於估計value。考慮到前面提取特徵的網絡結構,可以設計成下面結構:
通常情況下,會對進行一個限制,希望的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網絡的運行機制。