强化学习是试错并不断迭代的过程,每次迭代:给定一个策略求值函数,并更新策略。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
『注:个人学习,如侵必删,请大家多多批评指正』