借用一张大佬的图
on-policy(同策略)代表既定策略,off-policy(异策略)代表新策略
以sarsa(on policy)和Qlearning(off policy)为例
-
Sarsa是on-policy的更新方式,它的行动策略和评估策略都是ε-greedy策略。并且是先做出动作后更新策略。
-
Q-Learning是off-policy的更新方式,假设下一步选取最大奖赏的动作,从而更新价值函数。然后再通过ε-greedy策略选择下一步动作。(Q-Learning的思想根据值迭代得到。由于Q label无法遍历样本较大情况下的状态空间和动作空间,因此难以得到各状态期望价值的精准估计,所以只能利用有限的样本数据,通过类似梯度下降的方式一步步去估计Q值,而不是直接赋予,最终使得Q收敛至最优)
总结:
Sarsa算法,先通过ε-greedy策略执行动作,然后根据所执行的动作,更新值函数。
在Sarsa中,更新Q函数时用的动作a由贪婪策略得出,那么下一回合也用的是这个动作a。sarsa中的两个a一定相同,就是(同策略)on-policy。
Qlearning中,动作A1由Qmax得到的,而下一回合的A2用贪婪策略得到(下一回合的Q是在Qmax基础上探索,如图1所示),这时的A1和A2就有可能不一样,就是(异策略)off-policy。