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 π ( s t + 1 ) V^\pi(s_{t+1}) Vπ(st+1)与 V π ( s t ) V^\pi(s_{t}) Vπ(st)之间的差值就是 r t r_t rt,因此,当预测出 V π ( s t ) V^\pi(s_{t}) Vπ(st),可计算出 V π ( s t + 1 ) V^\pi(s_{t+1}) Vπ(st+1): V π ( s t + 1 ) = V π ( s t ) + r t V^\pi(s_{t+1})=V^\pi(s_{t})+r_t Vπ(st+1)=Vπ(st)+rt。缺点:如果 V π ( s t ) V^\pi(s_{t}) Vπ(st)算不准,则 V π ( s t + 1 ) V^\pi(s_{t+1}) Vπ(st+1)也会算不准,但方差比较小。这种方法用的更多
两种方法得出的结果可能不一样,比如下面这个例子:
一共进行了8次采样,第一次是先 s a s_a sa状态,然后又到 s b s_b sb状态,最后reward为0,还有7次是直接采样到 s b s_b sb,1次reward是0,6次是1,对于 s b s_b sb而言,价值为6/8=3/4,对于 s a s_a sa而言,不同方法价值函数也不同。MC方法的结果是0(根据第一次采样结果),TD的结果是3/4( s a s_a sa通过reward=0到达 s b s_b sb,所以最终结果就是 V π ( s b ) V^\pi(s_b) Vπ(sb)) - Q-function
两种写法:
从而可以对 π \pi π进行更新:
可以证明 V π < = V π ′ V^\pi<=V^{\pi'} Vπ<=Vπ′:
在具体计算Q时用到下面的方法:
左右两个Q有中间这个等式约束。首先将右边的Q固定住,用中间的公式去拟合左边的Q,左边的Q在更新多次后再赋值给右面的Q,然后再用中间公式更新左边的Q