天天看点

DQN学习笔记

强化学习是试错并不断迭代的过程,每次迭代:给定一个策略求值函数,并更新策略。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将导致系统转移到不同的状态),是评价策略函数优劣的标准之一

DQN学习笔记

状态动作价值函数(Q函数):给定一个状态采取动作后,按照某一策略与环境进行交互,得到累计汇报的期望值

DQN学习笔记

最大化状态价值函数就是求当前状态的最大期望值,而最大化状态-动作价值函数就是求当前状态下一动作能带来的最大回报值:

DQN学习笔记

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

『注:个人学习,如侵必删,请大家多多批评指正』

继续阅读