1、DQN簡介
DQN 是指基於深度學習的 Q-learning 算法,主要結合了值函數近似 (Value Function Approximation)與神經網絡技術,並采用了目標網絡和經歷回放的方法進行網絡的訓練。
2、值函數近似
DQN 為基於深度學習的 Q-learning 算法,而在 Q-learning 中,我們使用表格來存儲每一個state 下 action 的 reward,即狀態-動作值函數 Q(s, a) 。但是在我們的實際任務中,狀態量通常數量巨大並且在連續的任務中,會遇到維度災難的問題,所以使用真正的 Value Function通常是不切實際的,所以使用了價值函數近似(Value Function Approximation)的表示方法。
3、策略評估
假設有一個演員 (actor)π ,評論家就是來評價這個演員的策略 π 好還是不好,即 Policy Evaluation(策略評估)。 主要分為兩種策略;
3.1 State Value Function Estimation
3.2 State-action Value Function Estimation
4、目標網絡
Target Network:為了解決在基於 TD 的 Network 的問題時,優化目標 Qπ (st, at) = rt+Qπ (st+1, π (st+1))左右兩側會同時變化使得訓練過程不穩定,從而增大 regression 的難度。 target network 選擇將上式的右部分即 rt + Qπ (st+1, π (st+1)) 固定,通過改變上式左部分的 network 的參數,進行 regression,這也是一個 DQN 中比較重要的 tip。
通常是會把右邊這個 Q 網絡固定住。也就是說你在訓練的時候,你只更新左邊的 Q 網絡的參數,而右邊的 Q 網絡的參數會被固定住。因為右邊的 Q 網絡負責產生目標,所以叫目標網絡。因為目標網絡是固定的,所以你現在得到的目標 rt + Qπ (st+1, π (st+1)) 的值也是固定的。因為目標網絡是固定的,我們只調左邊網絡的參數,它就變成是一個回歸問題。我們希望模型的輸出的值跟目標越接近越好,你會最小化它的均方誤差 (mean square error)。
在實現的時候,你會把左邊的 Q 網絡更新好幾次以后,再去用更新過的 Q 網絡替換這個目標網絡。但它們兩個不要一起動,它們兩個一起動的話,結果會很容易壞掉。
5、經驗回收
Experience Replay 會構建一個 Replay Buffer, Replay Buffer 又被稱為 Replay Memory。 Replay Buffer 是說現在會有某一個策略 π 去跟環境做互動,然后它會去收集數據。我們會把所有的數據放到一個 buffer 里面, buffer 里面就存了很多數據。