Q-learning
参考资料
Q-learning (Basic Idea):https://www.bilibili.com/video/BV1MW411w79n?p=3
Q-learning (Advanced Tips): https://www.bilibili.com/video/BV1MW411w79n?p=4
Q-learning (Continuous Action):https://www.bilibili.com/video/BV1MW411w79n?p=5
Actor-Critic:https://www.bilibili.com/video/BV1MW411w79n?p=6
教程
一、介绍(introduction)
- 状态价值函数(state value function)
当看到一个状态s时,用actorπ\piπ做出一系列行动选择后累计得分的期望值(Vπ(s)V^\pi(s)Vπ(s))
- 估算Vπ(s)V^\pi(s)Vπ(s)的方法
(1)蒙特卡洛法(MC):随机产生state,计算reward。缺点:很难覆盖到所有的状态,误差较大,而且方差比较大。
(2)Temporal-difference(TD)approach:针对有的游戏很长的情况,这种方法不需要必须将游戏进行到底。因为Vπ(st+1)V^\pi(s_{t+1})Vπ(st+1)与Vπ(st)V^\pi(s_{t})Vπ(st)之间的差值就是rtr_trt,因此,当预测出Vπ(st)V^\pi(s_{t})Vπ(st),可计算出Vπ(st+1)V^\pi(s_{t+1})Vπ(st+1):Vπ(st+1)=Vπ(st)+rtV^\pi(s_{t+1})=V^\pi(s_{t})+r_tVπ(st+1)=Vπ(st)+rt。缺点:如果Vπ(st)V^\pi(s_{t})Vπ(st)算不准,则Vπ(st+1)V^\pi(s_{t+1})Vπ(st+1)也会算不准,但方差比较小。这种方法用的更多
两种方法得出的结果可能不一样,比如下面这个例子:
一共进行了8次采样,第一次是先sas_asa状态,然后又到sbs_bsb状态,最后reward为0,还有7次是直接采样到sbs_bsb,1次reward是0,6次是1,对于sbs_bsb而言,价值为6/8=3/4,对于sas_asa而言,不同方法价值函数也不同。MC方法的结果是0(根据第一次采样结果),TD的结果是3/4(sas_asa通过reward=0到达sbs_bsb,所以最终结果就是Vπ(sb)V^\pi(s_b)Vπ(sb)) - Q-function
两种写法:
从而可以对π\piπ进行更新:
可以证明Vπ<=Vπ′V^\pi<=V^{\pi'}Vπ<=Vπ′:
在具体计算Q时用到下面的方法:
左右两个Q有中间这个等式约束。首先将右边的Q固定住,用中间的公式去拟合左边的Q,左边的Q在更新多次后再赋值给右面的Q,然后再用中间公式更新左边的Q