强化学习 时序差分学习(Temporal-Difference Learning)

目录

基本概念

TD(0)

n-step TD

TD(λ)

总结


基本概念

     先看差分的定义:强化学习 时序差分学习(Temporal-Difference Learning)_第1张图片

       差分表示一种差异,小区间上的增量,可以类比于函数中的导数,度量变化的一个指标;

       直觉上,当系统趋于稳定时,自变量的变化引起的函数值的变化趋近于0.

       在强化学习中,差分是指

                                     \Delta V = V(S;\theta_{new}) - V(S;\theta_{old})

      我们希望它越小越好,使系统趋于稳定。

       那时序又是指什么? 在强化学习场景下,Agent不断地与环境交互,产生数据,本身就是时序的,这是大背景。

       时序差分还有更重要的特性:

      时序的另一层含义是自举(bootstrap)是基于时序的,自举可以简单地理解为真实分布采样数据基础之上,进行局部重采样,以衡量真实分布采样数据的感兴趣的统计量特性(比如均值),自举之后,方差更小;对于强化学习来说,局部的小序列使学习变得更简单可行;基于时序的自举示意图如下(摘自Efron的),黑点代表原始数据,圆圈序列代表自举之后的block:

强化学习 时序差分学习(Temporal-Difference Learning)_第2张图片

           block的大小也就对应于one-step, n-steps. 自举之后的小序列用于评估期望奖赏(Expected Return),最终差分的形式如下:

                                             \Delta V = V(S;\theta_{new}) - V(S;\theta_{old}) = \alpha (G - V(S;\theta_{old})) 

           我们的目标就是找到最好的θ,使差分趋近于0,从机器学习的角度,G是V(s)的Ground Truth/Label.  这个学习过程无需对p(•|s,a)建模即Model-Free。       

TD(0)

        one-step Temporal-Difference,过程如下:强化学习 时序差分学习(Temporal-Difference Learning)_第3张图片

    one step 是针对Excepted Return的估计来说的,只考虑当前Action的Reward,未来的Rewards由V近似。

    以上是个示意流程,采用深度机器学习的话,会先采样数据,然后批量梯度更新,最优化方法采用最小二乘法,G为Label。

n-step TD

        可以参照时序自举采样的示意图来理解, n越大,block的序列越长,G考虑的累计future rewards越长;采用深度学习批量梯度下降方法,更新方式与one-step一致。

TD(λ)

       

        λ-return是对n-step的G进行了加权平均,同时为了保证权重之和为1,乘以1-λ,可以通过对等比数列的求和公式求极限推导。 

总结

      时序差分学习是一种通过时序自举(bootstrap)的方式采样数据,通过最小化差分更新参数的一种model-free学习方法。根据Expected Return的不同近似方法,分为one-step、n-step、TD(λ)、蒙特卡洛方法等,参数更新形式可以统一起来:

      V(S;\theta_{new}) = V(S;\theta_{old}) + \alpha (G - V(S;\theta_{old}))

以上英文图片摘自Richard S. Sutton and Andrew G. Barto的《Reinforcement Learning: An Introduction》.

你可能感兴趣的:(强化学习)