在前面的章節中咱們介紹了時序差分算法(TD)和Q-Learning,當狀態和動做空間是離散且維數不高時可以使用Q-Table儲存每一個狀態動做對的Q值,而當狀態和動做空間是高維連續時,使用Q-Table不動做空間和狀態太大十分困難。因此論文Human-level control through deep reinforcement learning提出了用Deep Q Network(DQN)來擬合Q-Table,使得Q-Table的更新操做包在一個黑盒裏面,使強化學習的過程更加的通用化,自動化。算法
咱們能夠把DQN理解爲在Q-Learning的總體框架大致不改的狀況下,對於\((S,A)->R\)獎勵的獲取方式的一種改進。緩存
DQN有兩個大的創新點:網絡
使用DQN模型代替Q-Table會遇到兩個問題框架
Replay Buffer結構圖:機器學習
總的來講,Replay Buffer含了收集樣本和採樣樣本兩個過程。函數
均勻採樣的好處是什麼呢?前面提到咱們交互獲得的序列在時間維度上存在必定的相關性。咱們但願學習獲得的值函數可以表示在當前狀態行動下的長期收益的指望,然而每一次交互獲得的序列,只能表明當前狀態一行動下的一次採樣軌跡,並不能表明全部可能的軌跡。這樣估計的結果就和指望的結果存在必定的差距。隨着交互時間不斷拉長,這個差距的累積會愈來愈大。若是徹底使用序列的估計值進行訓練, 某一輪訓練時模型會朝着一個序列的估計訓練,另外一輪訓練又會朝着另外一個序列的估計訓練,那麼模型很容易產生較大波動採用均勻採樣後,每次訓練的樣本一般來自屢次交互序列,這樣單一序列的波動就被減輕不少,訓練效果也就穩定了不少。同時,一份樣本也能夠被屢次訓練,提升了樣本的利用。學習
模型不穩定的另一個緣由來自算法自己,Q-Learning的計算公式能夠看出,算法能夠分紅以下兩個步驟:spa
能夠看出模型經過當前時刻的回報和下一時刻的價值估計進行更新,這裏存在一些隱患,前面提到數據樣本差別可能形成必定的波動,因爲數據自己存在着不穩定性 每一輪輪迭代均可能產生一些波動,若是按照上面的計算公式,這些波動會馬上反映到下一個迭代的計算中,這樣咱們就很可貴到一個平穩的模型。爲了減輕相關問題帶來的影響,咱們要儘量地將兩個部分解耦。因此引入了Target Network,而本來的模型被稱爲Behavior Network。blog
(歡迎轉載,轉載請註明出處。歡迎溝通交流: 339408769@qq.com)get