目前继续考虑on-policy的带逼近的control算法。这章主要介绍半梯度Sarsa算法,也就是半梯度TD(0)算法对于动作值估计以及on-policy control算法的自然延伸。虽然这个延伸对于episodic的情况是很自然的,但是对于continuing的情况,我们需要再次考虑对于discounting方法来定义一个最优策略的方式。而当我们使用函数逼近的时候需要放弃discounting并且转到一个新的平均反馈的控制机制。
这章显示将上一章中的函数逼近方法延伸到episodic形势下的动作值函数。然后又拓展到泛化收敛机制on-policy GPI下的控制算法。接着展示了n步线性Sarsa算法在mountain car问题中的结果。之后又转向了continuing的情况,并且复述了使用差值来建立平均反馈的想法的发展过程。
10.1 Episodic Semi-gradient Control
将上节中的函数逼近从状态值函数形式延伸到状态动作值函数是很直接的。直接将相应的更新目标从状态值函数估计更改为状态动作值函数估计即可,比如可以使用MC反馈或者任意的n步Sarsa反馈值。对于参数,更新的迭代公式为:
比如对于一步Sarsa算法来说更新公式为:
这个方法叫做episodic semi-gradient one-step Sarsa。对于一个固定策略来说,算法会收敛到和TD(0)一样的形式以及一样的上界。为了组成control算法,我们需要将这个更新过程和对于策略的改进以及动作的选择结合起来。对于连续的动作或者大型的离散动作集合来说,还没有一个清晰的解决方式。但是对于离散且非大型的动作集合,可以直接使用前面章节使用的方法。也就是说,对于特定状态可以计算每个可行动作的值函数估计,然后选择贪婪动作,也就是值最大的动作。而policy improvement也就可以通过改变当前的策略到一个贪婪策略的软逼近比如-greedy。动作的选择也是根据这个当前策略。伪代码如下:
10.2 Semi-gradient n-step Sarsa
直接把上一节的算法更新估计值的部分改变成n步反馈就可以得到episodic 半梯度Sarsa算法。从表格型n步反馈可以泛化得到函数逼近的形式如下:
这样那么n步形式的更新公式为:
完整的伪代码如下:
和之前看到的一样,算法效果最好的是n选择不大不小的时候。
练习10.1 因为MC法是n取无穷的特例,不用专门写。
练习10.2 把值估计的部分改为期望的形式即可。
练习10.3 因为使用更大的n表示使用更长的采样轨迹,相对于较短的轨迹来说方差就会变大。
10.3 Average Reward: A New Problem Setting for Continuing Tasks
现在介绍episodic和discounted之外的第三个经典的对于MDP问题目标的形式化设定。和discounted设定一样,平均反馈(average reward)是应用于continuing形式的问题。但是这里没有discounting系数,而是对于每个反馈都像当前反馈一样关注。平均反馈的设定是动态规划经典理论的一个主要设定,但是在强化学习里相对较少使用。下一节会讲到,discounted的设定对于函数逼近是病态的,因此需要平均反馈来替代。
在平均反馈设定里,策略的质量被定义为遵循当前策略每个反馈的平均值,使用表示。
其中期望是依赖于初始状态以及遵循策略时后面采取的动作的。是一个平稳状态的分布,定义为。假定这个分布依赖于采取的策略但是独立于初始状态。这个假设叫做ergodicity。这说明初始状态以及早期的动作都只有暂时的效果,长期来看一个状态的期望反馈只依赖于策略以及MDP的状态转移。Ergodicity保证了上述公式极限的存在。
或许对于不同种类的undiscounted continuing形式的最优方案有细微的差别,但是简单的根据他们每一步的期望反馈来组织策略是足够的。平稳状态分布是一个特殊分布,在这个分布下根据当前策略选择动作,还会依然留在当前分布里。也就是
在平均反馈的设定里,反馈值被定义为奖励值与奖励期望差值的形式:
这种叫做差值反馈,相应的值函数叫做差分值函数。他们具有和之前相似的形式,即,以及,对于相应的最优形式也是一样。他们的贝尔曼等式也是类似,只是移去了discounting系数并且把奖励值替换为奖励与期望奖励的差值。:
同样也有两个差分形式的TD误差:
其中是时间t时对于平均期望的估计。使用这些替代的定义,就可以使用前面大部分的算法以及大部分的理论分析结果而不需要修改。比如对于平均反馈版本的半梯度Sarsa算法,除了使用差分版本的TD误差其他都一样,也就是:
练习10.4 把值更新的部分改写为差分形式。
练习10.5 只需要值更新的时候改变TD error
练习10.6 2/3 -1/3 -1/3
练习10.7 0 0
练习10.8 使用更稳定,因为是非采样形式而是估计的形式。
10.4 Deprecating the Discounted Setting
对于连续问题,discounted的问题设置在表格情形中很有用,这种设置下每个状态的反馈可以被区分并用来平均。但是在函数近似的情形下是否应该使用这种设置是存疑的。
考虑一个无始无终的无限奖励序列,每个状态之间也没法区分。这些状态只用很少的特征向量来表示而且互相之间难以区分。因此真正拥有的是奖励序列和动作。可以评价算法的方式其中之一就是对每个奖励值进行平均。使用discounting就使用系数加权和的形式,除此之外没有别的方法。实际上对于策略使用discounted法得到的平均奖励为,也就是说实际上就是和对奖励值进行平均是一样的。discounted系数实际上并没有起作用。具体的证明如下:
整个证明说明了在使用近似函数的on-policy连续问题里使用discounted形式的反馈和使用平均值是一样的。也可以依然继续使用discounted的形式,但是其参数在这里从问题的参数变成了解决方案的参数。但是这样我们没办法保证得到最优平均奖励值。
使用discounted control设定出现困难的根本原因在于在函数近似里我们失去了policy improvement theorem。在我们改变策略来改进一个状态discounted值的时候并不能保证改进了整体的策略。而这个保证是整个强化学习control问题的根本,因为使用了函数逼近我们失去了它。实际上,policy improvement理论的缺失也是total-episodic和平均奖励设置的理论空白。一旦引入了函数逼近我们就没有办法保证任何设定下对于策略的改进。十三章我们会介绍对于参数化策略的替代类型的强化学习算法以及一个扮演着和policy improvement理论相似角色的理论叫做 policy-gradient 理论。但是对于当前学习动作值的算法还没有一个本地的优化保证。
10.5 Differential Semi-gradient n-step Sarsa
为了泛化为n步自举,我们需要考虑n步版本的TD error,首先把n步反馈写为近似函数的差分形式:
之后n步TD error为:
然后就可以应用到先前的半梯度Sarsa更新中。整个算法的伪代码为:
10.6 Summary
这章我们把参数化函数近似和半梯度下降法延伸到control算法中。对于episodic的情况是很直接的,但是对于continuing的清醒需要引入一个全新的问题设定也就是最大化每一时间步骤的平均奖励。在使用了近似的情形下discounted的形式不能使用到control算法中。在近似函数的情形下大部分策略不能用值函数来表示。对于剩下的需要选择任意策略,使用标量平均反馈可以很容易的做到。
平均奖励的设定引入了新的差分形式的值函数,贝尔曼等式和TD error。但是这些都和老版的形式等同,概念上的变化很小。也有一组新的使用差分形式算法的集合。