深度強化學習:Deep Q-Learning

在前兩篇文章強化學習基礎:基本概念和動態規劃強化學習基礎:蒙特卡羅和時序差分中介紹的強化學習的三種經典方法(動態規劃、蒙特卡羅以及時序差分)適用於有限的狀態集合$\mathcal{S}$,以時序差分中的Q-Learning算法爲例,通常來講使用n行(n = number of states)和m列(m= number of actions)的矩陣(Q table)來儲存action-value function的值,以下圖所示:html

對於連續的狀態集合$\mathcal{S}$,上述方法就不能適用了,這時能夠引入神經網絡來估計Q的值,即Deep Q-Learning,以下圖所示:算法

接下來介紹Deep Q-Learning中經常使用的幾種技巧,用於提高學習效果:網絡

  • Stack States:對於連續的狀態集合,單個狀態不能很好地描述總體的情況。例以下圖所示,要判斷黑色方塊的移動方向,僅憑一副圖像是沒法判斷的,須要連續的多幅圖像才能判斷出黑色方塊在向右移動

  • Experience Replay:以下圖所示,防止算法在訓練過程當中忘記了以前場景得到的經驗,建立一個Replay Buffer,不斷回放以前的場景對算法進行訓練;另外一方面,相鄰的場景之間(例如$[S_{t},A_{t},R_{t+1},S_{t+1}]$與$[S_{t+1},A_{t+1},R_{t+2},S_{t+2}]$)有着必定的相關性,爲了防止算法被固定在某些特定的狀態空間,從Replay Buffer中隨機抽樣選取場景進行訓練(打亂場景之間的順序,減小相鄰場景的相關性)

  • Fixed Q-targets:針對Deep Q-Learning中計算Q值的神經網絡的權重係數的更新,有公式如左圖所示,此時將TD target近似爲了$q_{\pi}(S,A)$的真值,可是當不斷更新權重係數時TD target也是不斷變化的,這就會使得在訓練過程當中$q_{\pi}(S,A)$的估計值要接近一個不斷變化的值,加大了訓練難度,減少了訓練效率。解決方案如右圖所示,使用相對固定的參數來估計TD target

  • Double DQNs:解決TD target對$q_{\pi}(S,A)$的真值可能高估的問題,方案是在計算TD target時使用兩個不一樣的神經網絡,將動做$a$的選擇過程與TD target的計算過程進行分割。若是和Fixed Q-targets結合起來,能夠直接使用$w$和$w^{-}$這兩組參數(以下圖所示)

  • Dueling DQN:以下圖所示,相對於直接計算action-value function $Q(s,a)$,將$Q(s,a)$分解爲state-value function $V(s)$與advantage-value function $A(s,a)$之和,這樣作的緣由是多數狀態下采起何種行動對$Q(s,a)$的值影響不大,適合直接對狀態函數$V(s)$進行估計,再疊加上不一樣行動對其的影響。在實際計算中,爲了使得從$Q(s,a)$可以惟一肯定$V(s)$與$A(s,a)$,能夠令$A(s,a)$的均值(即$\frac{1}{|\mathcal{A}|}\sum_{a^{\prime}} A(s,a^{\prime})$)爲0

 

  • Prioritized Experience Replay:以下圖所示,對Replay Buffer中的每一個場景加入一個優先級,一個場景的TD error越大,它對應的優先級就越大。其中$e$是一個大於0的常數,防止抽樣機率爲0;$a$控制按優先級抽樣和均勻抽樣的比重,$a=1$時徹底按優先級抽樣,$a=0$時退化爲均勻抽樣;另外因爲是按照優先級進行抽樣,還須要改寫神經網絡中權重係數的更新規則,針對優先級高的場景減小權重更新的步長,使權重更新的過程與場景出現的真實機率一致(特別是在訓練的後期,經過參數$b$控制),避免過擬合高優先級的場景函數

相關文章
相關標籤/搜索