DQN(Deep Reiforcement Learning) 發展歷程(五)

DQN發展歷程(一)算法

DQN發展歷程(二)網絡

DQN發展歷程(三)異步

DQN發展歷程(四)函數

DQN發展歷程(五)htm

值函數的近似

  • 當狀態-動做數目太多時,使用表格存儲全部的狀態-動做會形成維度災難,沒法求解大規模問題。
  • 能夠採用一個函數來近似這個這個表格,輸入狀態-動做,輸出對應的狀態值。
  • 可使用神經網絡來充當這個近似函數。

DQN

  • 使用來一個神經網絡來做爲近似函數求解狀態值。
  • 每一步都更新這個神經網絡,因爲每步之間的輸入數據是相關的,沒法知足神經網絡輸入數據獨立同分布的要求。
  • 由此,使用一個經驗池來存儲更新過的(S,A,R),隔一段時間隨機從這個經驗池中抽取一個batch的(S,A,R)來修正神經網絡的權值,以打亂數據之間的相關性。

Nature DQN

  • 在此以前,訓練時,計算狀態值使用的是這個神經網絡估計,而更新神經網絡也使用同一個神經網絡來估計狀態值,容易形成過擬合,不利於算法的收斂。
  • 因而,使用兩個神經網絡,一個用於策略的選擇,一個用於狀態值的更新。用於策略選擇的神經網絡,隔一段時間和另外一個神經網絡同步一次。經過異步更新加速算法的收斂。

DDQN

  • 在DQN中,每次更新狀態值都使用貪婪法選取最大的狀態值來更新,每次都選擇最大,容易形成過分估計。
  • DDQN在選擇動做時分爲兩步,先在當前在選擇動做的Q網絡找到最大Q值對應的動做a,再把a代入計算Q值的網絡中得到Q值。

Prioritized Replay DQN

  • DQN在經驗池中隨機選取batch更新神經網絡,可是batch中每一個(S,A,R)對神經網絡的做用是不一樣的。經過對每一個(S,A,R)作優先級排序,優先使用更新神經網絡偏差大的數據項,達到加速收斂的目的。

Dueling DQN

  • 而 Dueling DQN 則對Q值改進。因爲某些狀況下,採用不一樣的動做對狀態對不大,因此把Q分解爲兩個部分:
  • 第一部分價值函數是僅僅與狀態S有關,與具體要採用的動做A無關。
  • 第二部分優點函數同時與狀態S和動做A有關
  • 經過最後再把兩部分合並,經過解耦Q使得對不一樣的狀態有更好的靈敏度。

參考

david siver 課程blog

https://home.cnblogs.com/u/pinard/排序

相關文章
相關標籤/搜索