Q-learning每次只需要执行一步动作得到(s,a,r,s’)就可以更新一次;由于a’永远是最优的那个action,因此估计的策略应该也是最优的,而生成样本时用的策略(在状态s选择的a)则不一定是最优的(可能是随机选择),因此是off-policy。基于experience replay的方法基本上都是off-policy的。
sarsa必须执行两次动作得到(s,a,r,s’,a’)才可以更新一次;而且a’是在特定策略π的指导下执行的动作,因此估计出来的Q(s,a)是在该策略π之下的Q-value,样本生成用的π和估计的π是同一个,因此是on-policy。
当使用off-policy学习,agent能够从很多不同方面的资源学习例如replay-buffer,学习地更快但是off-policy学习经常不稳定,神经网络学习过程会发散
当使用on-policy学习, agent只从自己当前使用的策略下产生的数据训练,学习稳定,神经网络容易收敛