时序差分算法
1. 时序差分方法
在动态规划中,我们定义了两个完全已知的场景:悬崖漫步和冰湖环境,来实验我们的动态规划方法。但是,实际上我们在做simulation或者sim2real的时候,环境是未知的,这导致我们无法直接得出马尔可夫决策过程的状态转移概率。此时,智能体只能和环境进行交互,通过采样到的数据来学习,这类学习方法统称为无模型的强化学习(model-free reinforcement learning)。 因此,我们需要一种不依赖于环境模型的方法来评估和改进策略,这就是时序差分(Temporal Difference, TD)方法。
时序 差分是一种用来估计一个策略的价值函数的方法,它结合了蒙特卡洛和动态规划算法的思想。时序差分方法和蒙特卡洛的相似之处在于可以从样本数据中学习,不需要事先知道环境;和动态规划的相似之处在于根据贝尔曼方程的思想,利用后续状态的价值估计来更新当前状态的价值估计。回顾一下蒙特卡洛方法对价值函数的增量更新方式:
这里我们将 3.5 节的 替换成了 ,表示对价值估计更新的步长。可以将 取为一个常数,此时更新方式不再像蒙特卡洛方法那样严格地取期望。蒙特卡洛方法必须要等整个序列结束之后才能计算得到这一次的回报 ,而时序差分方法只需要当前步结束即可进行计算。具体来说,时序差分算法用当前获得的奖励加上下一个状态的价值估计来作为在当前状态会获得的回报,即: