时间差分(Temporal-Difference)是一种无模的强化学习方法,也是强化学习理论中最核心的内容。与动态规划和蒙特卡罗方法相比主要的不同在于值函数的估计。
动态规划计算值函数用到了当前的状态和所有后继的状态,以自举法(booststrapping)为基础,用后继状态的值函数估计当前值函数。而蒙特卡洛通过不断试验得到经验平均从而估计值函数。时间差分本质上就是2种方法的结合,利用采样(试验)和自举法估计值函数。
我们知道蒙特卡罗方法利用了所有回报的累积和估计值函数,与之相对动态规划和时间差分利用一步预测方法计算当前状态值函数,同样都是利用自举法得到后继状态从而计算当前状态的值函数,而动态规划利用模型来计算后续状态,而时间差分利用试验的方法得到后继状态。
时间差分法包括同策略的Sarsa方法和异策略的Qlearning方法,这也是当今强化学习研究的重点之一。
我们先说Q表,Q表就是一个关于状态,动作以及奖赏的一个表格,下表列一个关于状态(S1,S2,S3),动作(A1,A2,A3),奖赏(回报R)的表格。
Q | A1 | A2 | A3 |
---|---|---|---|
S1 | R11 | R12 | R13 |
S2 | R21 | R22 | R23 |
S3 | R31 | R32 | R33 |
Sarsa和Qlearning都是为了训练这么一张表的方法,我们可以依据在当前状态查看执行某个动作的回报最大时执行该动作,这是一种贪婪的策略。Sarsa的行动策略和评估策略都是-greedy策略,而Qlearning的行动策略采用
-greedy策略,而目标策略采用贪婪策略。
初始的Sarsa和Qlearning都是与后继的第一个状态相关,实际当中当前状态的值函数可能与后继的若干个状态都有很强的相关性,因此TD()被引入,它综合了后继的
个状态来更新当前的值函数。