强化学习(赵世钰版)-学习笔记(7.时序差分学习)
本章是课程算法与方法中的第四章,介绍的时序差分学习算法是基于随机近似方法设计的强化学习方法,也是model-free的方法。
时序差分算法是一种近似估计策略状态值的算法,具体的形式如下:
本质上是在当前t时刻,被访问到的状态采用近似迭代的策略(即上一章讲的RM算法)估计出一个状态值,没被访问到的维持不变。TD算法更新状态值的公式,可以展开来看。
TD Target是状态值的定义,当前回报加上打折后的后续状态值。TD Error是相关估计误差,类似于SGD里面的梯度。这里证明了随着迭代的持续,估计值会慢慢想真实值靠拢。
而TD Error是用于衡量t时刻的状态值与真实的状态值,如果相等皆大欢喜,如果不相等,则提供了策略修改的信息。
这里引入了一个贝尔曼方程的另一种形式-贝尔曼期望方程。
因为是Model-free,所以只能获取到相关的采样输入,代进贝尔曼期望方程,则为
所以,用RM算法计算状态值,可以表现为一下的一个迭代公式
TD算法的公式再次贴过了,方便两者的对比(即公式3和公式6)。
两个公式有一下差异,对RM算法的表达形式(即公式三)进行对应的修改,就变成了TD算法(公式六)。
这里对比了MC算法和TD算法,TD的算法快一些,不需要等所有抽样结束才开始算。
TD算法适用于计算状态值的算法,对应计算行为值的类似算法叫做Saras(state-action-reward-state-action的缩写),其表达式为
通过Saras算法,可以计算出行为值的期望值,并进一步找到最优策略,具体的方式如下伪代码所示;
介绍完Saras算法,后续是n-step Saras算法,这是Saras和MC算法的结合体。
n是这个算法的一个超参数,设为1变成原版的Saras算法,设为无穷则变成了MC算法。
n-step Saras结合了Saras和MC算法的特点,通过n来调整算法的倾向性。
然后是大名鼎鼎的Q-Learning,Saras的思路是估算出一个策略的行为值,并结合策略改进找到最优策略。而Q-Learning的策略是一步到位。
Q-Learning算法的数学模型如下所示,与Saras算法的形式类似,唯一区别就是TD Target(红框部分)
Q-Learning本质上就是用贝尔曼最优方程计算最优行为值。后面提到了On-policy和Off-policy,如果行为策略和目标策略一致,就是On-policy,否则就是Off-policy。
Off-policy的优点就在于,可以通过另一个策略的采样结果,来找到目标策略的最优情况。
那么怎么判断一个TD算法是On-policy还是Off-policy呢?第一个是看要解决的数学问题,第二个是看算法对实验样本的要求。
Q-Learning是Off-policy,而Saras和MC都是On-policy,因为需要计算的策略,用到的数据都是相同的策略生成的,同时也是个策略问题,都是通过迭代找到最优策略的。
Q-Learning完全不一样
Q-Learning分别可以用On-policy和Off-policy实现,下面是两种方法的伪代码
本章介绍的几个算法,数学模型的架构都是一样的,唯一的区别就是TD Target不一样。
这几个算法都是随机近似法来解决贝尔曼方程或贝尔曼最优方程(Q-Learning)。
个人感觉Monte Carlo、Saras和n-step Saras,分别类似于随机梯度下降、梯度下降、小批量梯度下降。