【已解决】TD算法超详细解释和实现(Sarsa,n-step Sarsa,Q-learning)一篇文章看透彻!
郑重声明:本系列内容来源 赵世钰(Shiyu Zhao)教授的强化学习数学原理系列,本推文出于非商业目的分享个人学习笔记和心得。如有侵权,将删除帖子。原文链接:https://github.com/MathFoundationRL/Book-Mathmatical-Foundation-of-Reinforcement-Learning
上一节我们讲到,Robbins-Monro Algorithm算法解决了下面的这个求期望的问题,本节我们把问题稍微复杂化一点。

看下边这个期望的计算:

假设我们可以获得随机变量 R , X R,X R,X的样本那么可以定义下面的函数:

其实,也就是是把之前的一个随机变量变成了一个多元随机变量的函数。下面我们展示,这个例子其实和TD算法的表达很相似了。
TD learning of state values
本节所指的TD算法特指用于估测状态价值的经典TD算法。
算法

这个状态价值的期望形式的表示,有时候被称为贝尔曼期望等式,其实是贝尔曼方程的另一种表达,它是设计和分析TD算法的重要工具。那怎么去解这个方程呢?这就用到了我们前面小节讲到的,RM算法以及随机梯度下降的思想。这里需要注意,每次更新是一次更新一个状态的价值。

推导
通过应用RM算法求解贝尔曼方程,我们可以导出TD算法。

在了解了RM算法的前提下,上面的算法并不难理解。另外,RM算法关于状态价值的解,7.5式,有两个假设值得考虑:

显然,假设1)和2)在实践中都无法实现,对于1)是因为实践中的数据都是一个个的episodes,s在其中只是被抽样到的一个,不能确保每一个episodes都是从s开始的;对于2)我们怎么可以在事先知道其他状态的价值呢,要知道每一个状态的价值都是被算法估测出来的。
如何在RM算法中去除这两个假设的约束呢?

也就是说,RM算法中用的数据以s为起点,把第k次抽样 s ′ s^\prime s′ 得到的 s k ′ s_k^\prime sk′ 作为下一个状态,而这样并不能充分利用全局的状态来进行价值的估测,要知道我们得到的数据是一个个episodes,每次只用episodes的开头部分的数据是不可行的。
下面这个地方说明了k和t 的不同:

所以,我们修改了算法使用的序列样本数据的形式为: { ( s t , r t + 1 , s t + 1 ) } \left\{\left(s_t, r_{t+1}, s_{t+1}\right)\right\}

本文详细介绍了TD(TemporalDifference)算法,包括Sarsa、n-stepSarsa和Q-learning。TD算法是强化学习中无模型的近似动态规划方法,主要用于估计状态或动作值。Sarsa是在线学习算法,用于估计状态-动作值,而Q-learning可以直接估计最优动作值,且是离策略的。文章还探讨了不同TD算法的优缺点,以及它们在解决贝尔曼方程和寻找最优策略中的应用。

288

被折叠的 条评论
为什么被折叠?



