这一次开第六章,Temporal-Difference 方法,简称TD,可以翻译为瞬时差分法。
TD方法在强化学习算法中有很重要的地位,因为它是一个集大成的算法。TD综合了第五章所说的蒙特卡洛算法和第四章所说的DP算法的特点,既可以从真实经验序列学习,无需环境模型,又可以根据已得到的估计值来更新新的估计值(bootstrap)。这是目前我们需要在脑海中构建的关于TD的一个基本特征。
但是虽然TD综合了蒙特卡洛和DP的特点,终归也有区别。区别在哪?区别在于policy evaluation(也叫做prediction)的过程,也就是根据某一个policy 不断更新其对应的value function
的过程。熟悉前面内容的读者们肯定知道,policy evaluation之后还有一个policy improvement(也叫做control)过程,在这个过程中,TD、monte carlo、DP则没有太大的区别,都是采取基于generalized policy iteration (GPI) 的一些变体。因此,我们接下来重点关注它们在policy evaluation过程的区别。
6.1 TD Prediction
我们先来比较一下TD prediction过程和蒙特卡洛 prediction过程的区别:
首先上一个公式:
上式体现了蒙特卡洛算法的value更新规则,我们叫做constant- 蒙特卡洛算法。这里我们暂且不考虑多个episode之后的平均化操作,仅就一个episode来说,里面出现的每一个
对应的value,需要根据这个episode彻底结束之后得到的
来更新,注意这里的重点是“等待episode结束”。
再来看TD的更新规则公式(具体应该是TD(0)算法,TD类算法中的其中一种:
找不同,发现前面的被换成了
,这就是区别所在。也就是说,TD算法“不等到episode结束”,而是在下一个时间点,就拿刚刚得到的reward信息和之前
的estimate来更新
了。敏感的读者在这里好像还会嗅到一丝DP的含义:拿之前的估计值作为基准,估计新的值,是不是bootstrap!也是DP最大的一个特点。这就是为什么说TD综合了蒙特卡洛和DP的特点。
为了更好地说明,再来一个公式: