DQN笔记
DQN基于Q-Learning,也就是說DQN也是一個離線算法,它第一個關注點是解決空間狀態爆炸的問題,也就是說它不解決連續動作的問題
tip:何謂連續動作
例子,取值為(0,1)之間任意數為連續變量,動作包含連續變量的叫做連續動作
最基礎的思想是用一個神經網絡來擬合Q-Table里面的Q值。
用到了神經網絡那么就有一個訓練的問題,訓練的數據哪里來,與環境交互。最基礎的DQN數據存儲(s,a,r,s’)數據用于訓練
DQN里面的網絡是一個監督學習的過程,其目標是真實值和估計值之間的差值最小,術語叫做TD-ERROR,用公式來表示的化:
這個代表的是真實值,是的,真實值也是估計出來的,基礎的DQN用target_network來選取action,同時計算這個真實值里面的Q值,然后減去需要學習網絡估計出來的Q值。得到td-error
而被更新的那個原來的那個網絡是根據經驗被更新的網絡,通過上面那個標簽值和網絡估計值最小利用梯度下降法來求解更新網絡參數。
target_network是隔C步才更新的網絡。它的存在就是為了存儲一下那個被更新網絡的狀態。不能一邊更新,一邊標簽值也在變吧。它本身不學習,每隔C步,學習經驗的網絡會把參數賦給它
還需要說的一點就是經驗回放機制,也就是為什么要把經驗(s,a,r,s’)存起來再隨機選取來更新網絡呢。
因為你跑一次,前一步和后一步是有強關聯性的,所以經驗回放就是為了破除這些關聯性,就是學習的兩條記錄是獨立的兩條記錄
總結
- 上一篇: 基于Swift语言开发微信、QQ跟微博的
- 下一篇: 最完整的PS快捷键大全(绝对经典)