版权声明:本文为博主原创文章,如若转载,请注明出处! https://blog.csdn.net/u013010889/article/details/82251674
前奏
上一篇博客利用model free的蒙特卡洛和时序差分法对状态值函数进行估计,但是当我们在状态值函数的基础上做策略提升时,还是需要环境的,那我们还不如干脆在Q(s, a)的基础上直接控制策略。
- v(s)为基础,只有知道了给定动作后,各个状态的转移概率,才能知道哪个动作好
- q(s, a)为基础,直接就贪心了
贪心时采用的是ε-greedy,即以1-ε的概率选取是Q(s, a)最大的动作,以ε的概率选择随机的动作进行探索
蒙特卡洛法
和之前用蒙特卡洛法估计状态值函数一样,这里采样很多episode后得到Q(s, a),然后用ε-greedy进行策略提升
时序差分法
Sarsa: On-policy TD Control
方法名字的由来
Q-learning: Off-policy TD Control
On-policy和Off-policy的区别
on-policy 与 off-policy的本质区别在于:更新Q值时所使用的方法是沿用既定的策略(on-policy)还是使用新策略(off-policy)
而Sarsa和Q-learning就类似于讲DP时的策略迭代和值迭代,Sarsa在更新Q值时策略一直不变就像策略迭代更新V值时策略一直不变,只有V值稳定后才进行策略提升改变策略;Q-learning在更新Q值时就进行了贪心改变了既定的策略就像值迭代时直接选取使其估值最大的动作来更新它的估值。
Sarsa只是on-policy的一种,Q-learning也只是off-policy的一种