Sarsa 算法(on-policy)
处于状态 s 时,根据当前 Q网络以及一定的策略来选取动作 a,进而观测到下一步状态 s',并再次根据当前 Q 网络及相同的策略选择动作 a',这样就有了一个【 s,a,r,s',a' 】序列。
处于状态 s' 时,就知道了要采取哪个 a',并真的采取了这个动作。动作 a 的选取遵循 e-greedy 策略,目标 Q 值的计算也是根据策略得到的动作 a' 计算得来。
Q learning 算法(off-policy)
处于状态 s 时,根据当前 Q 网络以及一定的策略来选取动作 a ,进而观测到下一状态 s' ,并再次根据当前 Q 网络计算出 下一步采取哪个动作会得到 max Q 值,用这个 Q 值作为当前状态动作对 Q 值的目标。这样就有了一个【s,a,r,s' 】序列。
处于状态 s' 时,仅计算了 在 s' 时要采取哪个 a' 可以得到更大的 Q 值,并没有真的采取这个动作 a';动作 a 的选取是根据当前 Q 网络以及策略(e-greedy),目标 Q 值的计算是根据 Q 值最大的动作 a' 计算得来。