强化学习--QLearning
1.概述:
QLearning基于值函数的方法,不同与policy gradient的方法,Qlearning是预测值函数,通过值函数来选择
值函数最大的action,而policy gradient直接预测出action。
2一些定义
2.1值函数
Given an actor π, it evaluates how good the actor is
有2种值函数,V(S) 、Q(s,a).
2.1.1 V(S)
有2种衡量的方法:
MC方法只能等玩完一个episode才能进行统计评价,效率比较低。
TD方法可以每玩一步就更新一次。
mc与td对比,mc需要估计的是一个episode的值函数,方差比较大,而td是与时间相关的,只有r是需要估计的,方差比较小。
下面看一下例子:
V(Sb)=6/8=1
MC: V(Sa)=0/2=0
TD: V(Sa)=V(Sb)+0=3/4
2.1.2 Q(s,a)
我们可以评估,在当前状态s,采取行动a,在接下来的游戏中获得得奖励累计和的期望为Q(s,a)。但在接下来的游戏中,
不一定采取行动a,而是采取Q值最大的行动。
下图中1,无论采取那个行动都无所谓,因为离球还很远,而图2离球比较近了,我们需要向上接到球,接下来游戏才能获得奖励。
3 怎么用
我们利用PI去与环境互动,得到一些互动数据,通过TDorMC的方法去更新Q(s,a)的参数,
根据更新后的Q,我们选择一个更好的pi_new,然后把pi更新为pi_new,再去与环境互动。
tips:pi_new 是完全取决于Q,没有新参数。
3.1 target network
3.2 Epsilon Greedy
如果我们只选择Q值最大的action,如果碰巧其他的action没有被采样到,这样其他的action将更不会被选择,
并不是他们不好,所以需要打破这种循环,我们以一定的几率选择Q最大的,还有几率选择其他的action。
3.3 Replay Buffer
我们将历史数据存到Buffer里,然后训练的时候随机选一批,还要定期更新Buffer
3.4 完整算法
4 QLeaning 进阶
参考:
链接:https://www.zhihu.com/question/49787932/answer/124727629
https://www.youtube.com/watch?v=2-zGCx4iv_k&list=PLJV_el3uVTsODxQFgzMzPLa16h6B8kWM_&index=4