首页 > 其他分享 >强化学习(六):时序差分方法

强化学习(六):时序差分方法

时间:2022-12-21 14:04:25浏览次数:37  
标签:状态 差分 TD SARSA 蒙特卡洛 时序 强化


强化学习(六):时序差分方法

  时序差分(TD)方法结合了动态规划与蒙特卡洛的思想,其可以像蒙特卡洛方法一样直接从智能体与环境互动的经验中学习,而不需要知道环境的模型,其又可以像动态规划一样无须等待交互的结果,可以边交互边学习。总的来说,时序差分是基于已得到的其他状态的估计值来更新当前状态的价值函数。如果没有学习动态规划部分,可以浏览博文​​强化学习(四):基于表格型动态规划算法的强化学习​​,如果没有学习蒙特卡洛方法,则可以浏览博文​​强化学习(五):蒙特卡洛采样方法​​。


  我们知道,蒙特卡洛是基于采样的学习,从与环境的互动过程中所得到的经验作为求解贝尔曼方程的方法,然而,蒙特卡洛以及较强的分幕式设定在某些场景下并不适合,例如采样序列无限长,或者幕与幕之间没有明确的分界等情况。时序差分则结合动态规划的自举思想和蒙特卡洛的采样思想,使得其边采样边自举,不仅加快了学习的速度,也能适应诸多场景。本文将主要介绍TD(0)算法,即在采样期间,只将相邻的下一时刻状态估计值更新当前的价值函数,也就是说借用的估计值所处的时刻与目标更新的时刻差为1,亦称单步TD。在后续章节也会介绍TD(n),即多步TD。

一、TD误差

  我们已经非常熟悉强化学习的价值更新公式以及GPI思想,例如动态规划的策略预测:

强化学习(六):时序差分方法_差分

蒙特卡洛的策略控制:

强化学习(六):时序差分方法_动态规划_02

强化学习(六):时序差分方法_动态规划_03

事实上,我们可以将这一类的更新公式写成一个通用的格式:

(1)策略预测更新公式:

强化学习(六):时序差分方法_强化学习_04

(2)策略控制更新公式:

强化学习(六):时序差分方法_强化学习_05

其中强化学习(六):时序差分方法_动态规划_06表示强化学习(六):时序差分方法_动态规划_07时刻状态强化学习(六):时序差分方法_强化学习_08的状态价值预测值,强化学习(六):时序差分方法_动态规划_09表示在状态强化学习(六):时序差分方法_强化学习_08下执行动作强化学习(六):时序差分方法_差分_11的动作价值预测值,强化学习(六):时序差分方法_强化学习_12是一个很小的数,在之前我们知道其表示所有经过状态强化学习(六):时序差分方法_强化学习_08强化学习(六):时序差分方法_差分_14二元组的次数的倒数来表示取平均,因为往往在蒙特卡洛采样过程中都是上万次,因此完全可以用一个预设的很小的超参数来描述它。强化学习(六):时序差分方法_强化学习_15则表示实际的价值,在蒙特卡洛方法中,其确实表示实际的价值,因为蒙特卡洛需要执行完整个流程,而在时序差分TD(0)中,其可以表示为下一个时刻的价值估计值来替代实际值,强化学习(六):时序差分方法_动态规划_16强化学习(六):时序差分方法_强化学习_17 被称为时序差分误差(TD误差),如果是在蒙特卡洛方法中,则被称为蒙特卡洛误差(MC误差)。带有强化学习(六):时序差分方法_强化学习_12的TD误差则可以衡量当前波动值对更新当前价值的影响程度,这个强化学习(六):时序差分方法_强化学习_12自然而然的充当起学习率的角色,事实上仔细观察,上述的两个式子非常类似梯度下降的更新公式。

二、时序差分TD(0)预测

  上述已经介绍了时序差分的内容,根据GPI思想,我们先引入TD(0)预测算法。
在TD(0)预测中,其是通过将下一时刻的状态价值带有折扣的与当前时刻的收益的和作为实际值调整当前的预测值,形式化的描述如下:

强化学习(六):时序差分方法_强化学习_20

强化学习(六):时序差分方法_差分_21 这一项就是所谓的将下一时刻的状态价值带有折扣的与当前时刻收益的和作为估计的实际价值,对比蒙特卡洛,这一部分则是需要累加所有的收益,而TD(0)只需要自举的将相邻的下一步作为估计,融合动态规划思想。TD(0)预测的算法流程如下:

强化学习(六):时序差分方法_强化学习_22


首先根据一个确定的策略强化学习(六):时序差分方法_动态规划_23,初始化相关价值函数,对于某一幕,初始化一个采样序列,在执行某一步时,根据当前的策略,在状态强化学习(六):时序差分方法_强化学习_08下执行一个动作强化学习(六):时序差分方法_差分_11,并观察下一时刻的状态强化学习(六):时序差分方法_强化学习_08以及收益强化学习(六):时序差分方法_动态规划_27,然后更新上述公式强化学习(六):时序差分方法_差分_28。其迭代过程中,是不断地将相邻的下一个时刻的带折扣价值与局部收益来调整当前预测的价值,类似动态规划,但区别于动态规划的是,其更新过程中下一时刻的状态只有一个,而不是所有。

强化学习(六):时序差分方法_强化学习_29

强化学习(六):时序差分方法_强化学习_30

强化学习(六):时序差分方法_动态规划_31

比较上述三个等式,第一个等式则表示蒙特卡洛方法,第二行表示动态规划法,第三行则表示时序差分法,时序差分也是动态规划与蒙特卡洛的一种结合。

  我们通过Sutton书上的一个示例来理解:

一个驾驶员开车回家,6点离开办公室时预估到家时间为半小时,但花费5分钟时间到达车库时发现外面下雨了,于是临时觉得到家得6:35。但幸运的是在高速路上一路畅通,6:20时刻很快下了高速路,觉得应该还有一刻钟到家,可是在行驶普通道路时,由于路况不好降低了车速,导致6:40才到家门口,3分钟后采回到家。相关记录表如图所示:

强化学习(六):时序差分方法_动态规划_32

  在这个例子中,离开办公室,到达车库,离开高速路,行驶在普通公路,到达家门口和到家等都是状态,其实我们发现,驾驶员并不是到了家(最终状态)之后才对之前的每一个状态进行预估,在真实情况下也的确不现实,而驾驶员是在每一个状态之后,根据当前状态的情况,做出的临时预测,这一个过程就是时序差分的思想

强化学习(六):时序差分方法_差分_33


如上图,每一个状态下的预测时间,与实际时间的对比,虚线为实际时间,实线为预测时间。左图是蒙特卡洛的预测过程,其只有回到家之后才知道之前每个状态下的时间(相当于价值),右图则是根据下一个状态的时间预测当前状态的时间。

三、时序差分策略控制

  在GPI的策略控制阶段,我们依然分别通过同轨和离轨来讨论。

3.1 时序差分同轨策略控制——SARSA

  在同轨策略控制过程中,行动策略与目标策略是一致的,更新公式如下:

强化学习(六):时序差分方法_动态规划_34

与策略预测一样,只是将状态价值换为动作价值,其执行过程中,回溯图表现的就是一条单一的直线:

强化学习(六):时序差分方法_强化学习_35


其中黑点表示状态动作二元组,白点表示状态。这一过程也被称为SARSA(State Action Reward State Action),字面意义上可知其需要执行相邻的两个动作,到达相邻的两个状态以及期间的一次收益。算法流程如下所示:

强化学习(六):时序差分方法_动态规划_36


控制过程中,也采用强化学习(六):时序差分方法_差分_37贪心策略保证开发与探索之间的矛盾。

3.2 时序差分离轨策略控制——Q-Learning

  Q学习是另一种TD(0)控制,也被称为离轨策略下的策略控制,其更新公式如下:

强化学习(六):时序差分方法_强化学习_38

其相比SARSA不同的地方在于TD误差的不同,SARSA的TD误差是 强化学习(六):时序差分方法_强化学习_39 ,而Q学习的TD误差是 强化学习(六):时序差分方法_强化学习_40。Q学习描述的是将下一个时刻到达的状态强化学习(六):时序差分方法_强化学习_41,以及在这个状态下执行所有可能的动作所产生的一系列状态动作二元组中,取最大的动作价值作为估计值(带折扣的与局部收益的和)。回溯图如图所示:

强化学习(六):时序差分方法_强化学习_42

通过回溯图,可以很清晰的理解Q学习的工作过程。另外之所以称之为离轨策略,是因为这里的行动策略是基于强化学习(六):时序差分方法_差分_37贪心的强化学习(六):时序差分方法_动态规划_23策略进行的采样序列,而目标策略则是在所有可能的状态动作二元组中取最大的贪心策略,二者没有关联性。

强化学习(六):时序差分方法_强化学习_45


需要注意的是,SARSA需要在当前状态强化学习(六):时序差分方法_强化学习_08下执行动作强化学习(六):时序差分方法_差分_11,获得收益强化学习(六):时序差分方法_差分_48后到达状态强化学习(六):时序差分方法_强化学习_41,还要再执行动作强化学习(六):时序差分方法_强化学习_50之后才能执行SARSA回溯。而Q学习则只需要在状态强化学习(六):时序差分方法_强化学习_08下执行动作强化学习(六):时序差分方法_差分_11,获得收益强化学习(六):时序差分方法_差分_48到达状态强化学习(六):时序差分方法_强化学习_41后,只需要观察按照策略强化学习(六):时序差分方法_动态规划_23所有可能的动作强化学习(六):时序差分方法_差分_11与状态强化学习(六):时序差分方法_强化学习_41的二元组,无须执行。

3.3 期望SARSA

  另外再介绍一个策略控制方法——期望SARSA,其所描述的则是下一时刻的所有(状态-动作)二元组的期望值作为估计值,其回溯图如图:

强化学习(六):时序差分方法_差分_58


更新公式如下:

强化学习(六):时序差分方法_强化学习_59

我们结合SARSA和Q学习一起来看这三个算法的性能:

强化学习(六):时序差分方法_差分_60


事实上,在同一个强化学习(六):时序差分方法_强化学习_12下,期望SARSA表现的更出色。

  最后总结一下三个控制策略的一些区别,SARSA是将遵循同一个策略,下一时刻的状态动作二元组的动作价值函数作为当前的估计值;Q学习则是在行动策略下的采样,用最大贪心策略对应的最大动作价值函数作为当前的估计值;期望SARSA则是将下一时刻所有的状态动作二元组的动作价值的期望值作为当前的估计值。从性能的排序来看,从长远性能来看,期望SARSA > Q > SARSA,从短期性能角度看,期望SARSA > SARSA > Q。因此说期望SARSA更优。

四、最大化偏差与双学习

  我们知道蒙特卡洛是无偏估计,而时序差分是一个有偏估计。因为时序差分是建立在对价值函数估计的基础上来预测,换句话说,本身执行采样的过程就是一种预测过程,而实际价值使用估计值则又是一个近似的过程,所以说时序差分是包含两次估计的方法,会产生一定的正偏差,也叫做最大化偏差。
  解决这样的办法是采用双学习,我们以双Q学习为例,其算法流程如下所示:

强化学习(六):时序差分方法_强化学习_62


我们首先将所有采样序列(相当于样本)划分为两个子集,并基于两个子集分别训练两个Q值 强化学习(六):时序差分方法_动态规划_63,在迭代过程中,更新强化学习(六):时序差分方法_差分_64时使用的样本是强化学习(六):时序差分方法_差分_64对应的样本,但采用的估计值是强化学习(六):时序差分方法_动态规划_66;同理更新强化学习(六):时序差分方法_动态规划_66时使用的样本是强化学习(六):时序差分方法_动态规划_66对应的样本,但采用的估计值是强化学习(六):时序差分方法_差分_64;这样交叉进行。双学习才一定程度上可以缓解最大化偏差,防止同在一个样本上出现的问题。

五、总结

  时序差分法是结合了动态规划和蒙特卡洛两者思想,使用蒙特卡洛的采样方法,在经验中学习。但在每一步执行过程中,并不是等待完整的序列,而是边采样边学习。本文描述的是TD(0)单步法,其自举的范围只有一步,其实只自举一步未免显得智能体的眼光很短钱,事实上,蒙特卡洛也是一种特殊的时序差分,只不过其自举的是整个序列,虽然眼光最长远,但很耗时间。那有没有介于两个极端之间的呢?有!它就是TD(n),叫做n步自举法,也叫做多步引导法,其描述的则是多个步之后的价值作为当前时刻的估计值,简单的理解则是估计的范围不长也不短,眼光恰当正好,在一般情况下,我们也比较推荐使用TD(0)和TD(n)。


标签:状态,差分,TD,SARSA,蒙特卡洛,时序,强化
From: https://blog.51cto.com/u_15919249/5959878

相关文章

  • 强化学习(四):基于表格型动态规划算法的强化学习
    强化学习(四):基于表格型动态规划算法的强化学习​  在有限马尔可夫决策过程中,智能体在某个状态进行决策的过程中,始终满足价值函数和动作函数的贝尔曼方程,事实上,这就是一种动......
  • 强化学习(三):有限马尔可夫决策与贝尔曼方程
    强化学习(三):有限马尔可夫决策与贝尔曼方程​1、有限马尔可夫决策过程  有限马尔可夫决策过程(MDP)是强化学习的主要思想,也是后续多个解决强化学习目标的基本假设。  我们......
  • Verilog的时序控制
    关键词:时延控制,事件触发,边沿触发,电平触发Verilog提供了2大类时序控制方法:时延控制和事件控制。事件控制主要分为边沿触发事件控制与电平敏感事件控制。时延控制基于时延......
  • 797差分
    原题链接定义差分数组b[],其中\(b[i]=a[i]-a[i-1]\)\(a_{x}=\sum_{i=1}^{x}b_{i}\)更改\(a[l~r]\),只要更改\(b[l-1]\)和\(b[r]\)即可,最后要对\(b[]\)数组做......
  • 时序数据库 TDengine 3.0.2.0 版本正式发布
    近日,TDengine3.0.2.0正式发布了。这是自今年8月份TDengine3.0发布以来的第一个重要改进版本。:::hljs-center:::TDengine3.0带来了几大核心特性,包括云原生架......
  • 时序数据库 TDengine 3.0.2.0 版本正式发布
    近日,TDengine 3.0.2.0正式发布了。这是自今年8月份TDengine3.0发布以来的第一个重要改进版本。TDengine3.0带来了几大核心特性,包括云原生架构、流式计算,还增强......
  • 强化学习的基础知识和6种基本算法解释
    强化学习的基础知识和概念简介(无模型、在线学习、离线强化学习等)机器学习(ML)分为三个分支:监督学习、无监督学习和强化学习。监督学习(SL):关注在给定标记训练数据的情......
  • 时序电路的描述之米利模型、摩尔模型、状态转换图、状态转换表、两种基本模型的转换
    时序逻辑电路:有记忆功能,输出不仅取决于当前的输入,还与信号历史有关的一类电路同步时序逻辑电路:①状态变化在一个统一的内部时钟信号下发生②系统工作按时钟节拍进行(故又......
  • 基于Qlearning强化学习的机器人路线规划仿真
    1.算法概述假设我们的行为准则已经学习好了,现在我们处于状态s1,我在写作业,我有两个行为a1,a2,分别是看电视和写作业,根据我的经验,在这种s1状态下,a2写作业......
  • 基于Qlearning强化学习的机器人路线规划仿真
    1.算法概述       假设我们的行为准则已经学习好了,现在我们处于状态s1,我在写作业,我有两个行为a1,a2,分别是看电视和写作业,根据我的经验,在这种s1状......