強化學習是試錯并不斷疊代的過程,每次疊代:給定一個政策求值函數,并更新政策。DQN使用神經網絡來近似值函數,即神經網絡的輸入是state,輸出是Q(s,a)。通過神經網絡計算出值函數後,DQN使用ϵ−greedy政策來輸出action:首先環境會給出一個obs,智能體根據值函數網絡得到關于這個obs的所有Q(s,a),然後利用ϵ−greedy選擇action并做出決策,環境接收到此action後會給出一個獎勵Rew及下一個obs。這是一個step。此時我們根據Rew去更新值函數網絡的參數。接着進入下一個step。如此循環下去,直到我們訓練出了一個好的值函數網絡。
(1)損失函數:L(ω)=E[(R+γ⋅maxa′Q(s′,a′;ω−)−Q(s,a;ω))2]真實值與預測值的差的平方
(2)值函數Q(s,a;ω)的求解:
1。MBRL:已知環境模型,即狀态轉移機率矩陣、獎勵函數、折扣因子。可通過貝爾曼方程來求解值函數。
補充:
政策函數:是一個輸入為s輸出為a的函數
狀态價值函數:是從目前狀态開始到最終狀态時系統所獲得的累加回報的期望,下一狀态的選取依據政策函數(不同的動作a将導緻系統轉移到不同的狀态),是評價政策函數優劣的标準之一

狀态動作價值函數(Q函數):給定一個狀态采取動作後,按照某一政策與環境進行互動,得到累計彙報的期望值
最大化狀态價值函數就是求目前狀态的最大期望值,而最大化狀态-動作價值函數就是求目前狀态下一動作能帶來的最大回報值:
2。MFRL:通過采樣求解值函數
🕐MC:等到episode結束後才更新值函數
🕑TD:每一步就更新值函數
🕒Sarsa:用下一步對應的值函數計算target,更新值函數Q(s,a)←Q(s,a)+α[R+γQ(s′,a′)−Q(s,a)]
target是 Rt+1+γQ(St+1,at+1)(值函數近似)on-policy
🕓Q-learning:target是 Rt+1+γmaxa′Q(St+1,a′),使用使得Q(St+1,a)最大的action計算target off-policy
🕔DQN:引入了一個target Q網絡,Q網絡每次疊代都會更新,而target Q網絡是每隔一段時間才會更新。DQN的target是 Rt+1+γmaxa′Q(St+1,a′;ω−).
🍀DQN改進之處:一個是使用了卷積神經網絡來逼近行為值函數,一個是使用了target Q network來更新target,還有一個是使用了經驗回放Experience replay,抽取樣本minibatch.
參考:https://blog.csdn.net/binbigdata/article/details/86607466
https://zhuanlan.zhihu.com/p/86525700
https://www.cnblogs.com/hhh5460/p/10155118.html
『注:個人學習,如侵必删,請大家多多批評指正』