强化学习(7)--时序差分方法
说明本系列文章是我在学习了西湖大学赵世钰老师的《Mathematical Foundations of Reinforcement Learning》一书后的学习笔记在B站上有赵老师的完整课程视频。课程视频链接PDF教材链接本文代码链接一、TD算法的基本形式TD0推导首先给出贝尔曼公式的期望值形式既然是期望值那么这本质上就是一个均值估计问题我们回想一下上一章中均值估计的问题和(7.1)形式是否很像再回想一下上一章的RM算法求解形式回顾RM算法的迭代解法带入RM算法有由此可得到需要注意的是:这里的表示的是在时刻t对的一个估计。根据state value的期望值形式定义则是的一个采样。假设action space有5个action只有保证足够的探索性让每个action都被充分采样才能最终准确估计到。该算法TD0是一个model free的算法不知道p(r|s,a),p(s|s)等模型信息所以它只能用来估计给定策略下的state value而无法改进策略。当然在grid world例子中p(r|s,a),p(s|s)是我们心目中已知的但我们需要把它们当做未知来处理。书中有这样一句话等式(7.5)的右侧有而(7.1)中是原因是(7.5)仅仅是对的action value的估计其假设其他的states的action value都是已知的。如果要对所有状态的state value进行估计则就要把(7.5)中的替换成。意思是等式(7.5)只是对单独某个s的迭代过程要对所有的状态空间估计就变成了后面介绍的sarsa对每个state做增量式的采样和估计最终收敛性质分析TD和MC对比TDMConline:边采样边迭代offline:采样完整个episode再估计continuing task:因为是online的epsisodic task:是offline的自举:迭代的对某个state/action value的本次估计依赖上一次的估计值非自举直接根据多次采样估计不依赖之前的值低估计方差估计用的采样长度为1比如对的估计值依赖高估计方差依赖完整的episodeepisode越长方差越大。二、SarsaTD0只能估计state valueSarsa直接估计action value之所以叫sarsa是因为该算法依赖sarsa是一个用随机近似的方法来解给定策略下的actoin value形式贝尔曼方程伪代码从伪代码来看sarsa的形式和值迭代(value iteration)是有点像。都是先update value然后update policy。但他们之间有很大差异这里不展开。三、n-step Sarsa回顾action value的期望值定义我们可以写成显然这里他们只是的不同分解结构。则n-step Sarsa算法四、Q-LearningQ-Learning就是把Sarsa的TD-target部分换成如下形式这里只给出了value update部分没有给出policy update部分请往后看Q-Learning是用随机近似方法解BOE的action value形式五、off-policy和on-policy所有的强化学习算法中我们都可以划分出两个策略一个用来产生数据behavior policy一个用来不断更新到最优策略target policy如果behavior policy就是target policy则该算法是on-policy的如果behavior policy和target policy不是同一个则该算法是off-policy的看如下伪代码可以看到这两个伪代码中(7.2)在初始化部分中只初始化了一个产生数据是following更新策略也是用的都是同一个所以会有出现(7.3)在初始化部分中初始化了产生数据是following更新策略则是用的。而始终没有动过。因此只有(大写T表示target小写t表示t时刻)而没有出现。从on-policy和off-policy的定义以及上面Q-learning的两个伪代码看出是否我们前面学习的所有算法我们都可以改写成on-policy或者off-policy即便可以我想收敛性如何也要另当别论了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2505828.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!