在将时序差分之前我们先说一下蒙地卡罗算法的缺点
1.在复杂环境下终点很难达到,此时蒙地卡罗算法就不太适用了
2.在动态环境下蒙地卡罗算法会失效
蒙地卡罗具体可以看我之前的文章https://blog.csdn.net/m0_54618081/article/details/131860296
因为蒙地卡罗的以上缺点我们引出时序差分算法(TD)
时序差分法
时序差分法和蒙地卡罗法最大的不同就是时序差分法不用走到终点,可以在任何点进行回溯,此时用回溯状态点的预估V加上之前实际走过的G就可以得到这个路径上的估计V
这就有点像从山顶像知道要下山的路有多长。 MC能直接走一趟,看一下到底有多远。 TD则轻巧一点,先走一段路看一下,看一下有没有路牌指示到山脚还有多远。如果有,那么就把刚刚走的那段路加上路牌指示到山脚的距离相加即可。 但又同学可能会问,在一开始,我们根本没有路牌呀,所以也不知道到底到山脚有多远。 没错,这是对的。但当我们走很多次的时候,路牌系统就能慢慢建立起来。 例如第一次,只有到了山脚,我才知道山脚前一站离山脚的的真实距离。于是我更新了山脚前一站的路牌。第二次,我在山脚前一站路就能看到路牌,所以我就可以更新山脚前一站的路牌了...一直到山顶,就这样一直建立整座山的路牌系统。
TD更厉害的是,在很多时候,我们并不需要一直到最后,我们可以先用后面的估算,然后调整当前状态。