本文的主要流程按照:
- Q learning的基本流程
- 神经网络的引入
- deepmind 2015年nature论文的两种改进策略
- 完整的DQN流程(参考上述论文)
来进行讲解。
1. Q learning 的基本流程
几个基础概念:
Q(s,a)--存储在状态s下动作a的Q value的矩阵,矩阵规模为num(s)*num(a);
s--状态,a--动作,r--回报值;
整个Q学习的过程是利用bellman公式的等式关系,来更新存储估计Q值的矩阵Q(s,a),使它为智能体的动作选择提供最优的引导。
过程:
首先,当前的状态为s,要根据动作选择策略π(s)选择一个动作a,而这个π(s)所基于的参数与Q(s,a)有关。最常用的方法是ε-贪心算法,也就是每个状态有ε的概率进行探索(即随机选取),而剩下的1-ε的概率则进行利用(选取当前状态下Q值较大的那个动作)。ε一般取值较小,0.01即可。当然除了ε-greedy方法还有一些效果更好的方法。而选择的该动作a在当前状态s下的Q值,是Q(s,a),这个Q值被认为是该状态-动作对的估计Q值。
得到动作a后,通过与环境的交互信息,使智能体1.到达s_状态2.获得回报值r。
关于回报值r的设定,最经典的办法:当s_不是最终状态时,r = 0;当s_是好的终止状态,r = 1;当s_是坏的终止状态,r = -1。
然后我们通过bellman公式计算得到(s,a)状态-动作对的真实Q值:Q*(s,a)=r+maxQ(s_,a_)。
r是到达s_状态得到的回报值,后面一项表达的是在s_时可以得到的最大Q值,(注意,这个Q值所代