时序差分学习通常泛指一大类强化学习算法。例如,本章介绍的所有算法都属于时序差分学习的范畴。但本节所讨论的时序差分学习特指一种用于估计状态值的经典算法。TD 方法的一个特点是,它在每个时间步更新其值估计,而 MC 方法则要等到回合结束才更新

  TD 算法主要内容

  • TD(0):估计状态价值函数 (State-Value Function) V(s)。

  • Sarsa:估计同轨策略动作价值函数 (On-policy Action-Value Function) Q(s, a)

  • Expected Sarsa:估计期望形式的动作价值函数 (Expected Action-Value Function)

  • n-step Sarsa:通过n步采样回报估计动作价值函数 Q(s, a)

  • Q-learning:直接估计最优动作价值函数 (Optimal Action-Value Function) Q*(s, a)


目录:

  1.    Robbins-Monro(RM) 算法例子
  2.    TD(0)  算法描述
  3.    TD算法 性质分析


一 Robbins-Monro(RM) 算法例子

     下面通过三个例子,介绍一下前面学习的RM算法和后面学习的Temporal-Dierence Methods联系

     1.1 mean  estimation

        w=E(S)

       S代表随机变量,可观测的值为 idd samples \begin{Bmatrix} s \end{Bmatrix} of \, \, S

     解:

           转换为 root-finding problem

           g(w)=w-E(S)

          含噪声的实际测量值:   

          \tilde{g}(w,\eta)=w-s

                        = (w-E(S))+(E(S)-s)

                        =g(w)+\eta               

          迭代公式为:

              w_{k+1}=w_k-\alpha_k \tilde{g}(w_k,\eta_k)

                         =w_k-\alpha_k(w_k-s_k)

1.2 状态值v(S)

                w=E[v(S)], 观测值 based on iid samples \begin{Bmatrix} s \end{Bmatrix} of S

            解:

               转换为 root-finding problem

                g(w)=w-E[v(S)]

              实际样本测量值

              \tilde{g}(w,\eta)=w-v(s)(小写的s是实际采样的值

                             =w-E[v(s)]+E[v(S)]-v(s)

                            =g(w)+\eta

              迭代公式:

                      w_{k+1}=w_k-\alpha_k \tilde{g}(w_k,\eta_k)

                                  =w_k-\alpha_k(w_k-v(s_k))

1.3  bellman 公式v(S)=R+\gamma v(S)

          w=E[R+\gamma v(S)],

          观测值 based on iid samples \begin{Bmatrix} s \end{Bmatrix} of S

           R,S are random variables,  \gamma is a constant ,v(.) is a function

   obation \begin{Bmatrix} s \end{Bmatrix} ,\begin{Bmatrix} r \end{Bmatrix} of  S,R

            转换为 root-finding problem 

                    g(w)=w-E[R+\gamma V(S)]

     实际样本测量值:

                   \tilde{g}(w,\eta)=w-(r+\gamma v(s))

                                 =w-E[R+\gamma v(S)]+E[R+\gamma v(S)]-(r+\gamma v(s))

                                 =g(w)+\eta

    迭代公式:

                                  w_{k+1}=w_k-\alpha_k(w_k-(r_k+\gamma v(s_k)))


二  TD(0)  算法描述

      

     给定策略\pi,我们的目标是估计所有状态s \in S对应的V_{\pi}(s)。假设我们拥有遵循策略π生成的经验样本s_0,r_1,s_1,....s_t, r_{t+1},s_{t+1},其中t表示时间步。以下时序差分算法可利用这些样本估计状态值:

  

    其中t=0,1,2,....这里v_t(s_t)表示t时刻按照策略\piv_{\pi}(s_t)的估计值,\alpha_t(s_t)表示t时刻状态s_t对应的学习率。

      需特别注意,在t时刻仅更新被访问状态s_t的估值,如式(7.2)所示未访问状态s=s_t的估值保持不变。为简洁起见,式(7.2)常被省略,但必须意识到若缺少该式,算法在数学上将不完整。

  

三  TD算法 性质分析

   我们主要要理解两个问题

  1.     why \bar{v_t}  is called  TD target?
  2.     What is the interpretation of the TD error?

   式(7.1)可描述为:

其中

TD target:  \bar{v_t}=r_{t+1}+\gamma v_t(s_{t+1})

TD error \delta_t=v_t(s_t)-\bar{v_t}

3.1   why \bar{v_t}  is called  TD target?


       因为\bar{v_t}是算法试图驱使v(s_t)逼近的目标值。

       将式(7.6)两边同时减去\bar{v_t}可得:

      

    取等式两边的绝对值:

由于\alpha_t(s)是较小的正数,有0<1 -\alpha_t(s)<1,因此:

   该不等式具有重要意义,它表明新值v_{t+1}(s_t)比旧值v(s_t) 更加接近\bar{v_t}。这就是\bar{v_t}被称为TD目标值的原因。

2 What is the interpretation of the TD error?
    首先,该误差之所以称为"时序差分",是因为

    \delta_t= v_t(s_t)-(r_{t+1}+\gamma v_t(s_{t+1}))

   反映了时间步t与t+1之间的差异。

   其次,它反应了v_tv_{\pi}之间的误差

  当v_t=v_{\pi}时,TD误差的期望值为:

因此,TD误差不仅反映两个时间步之间的差异,更重要的是反映了估计值v_t与真实状态值v_{\pi}之间的差异。

innovation

    TD误差可解释为innovation

       表示从经验样本\begin{Bmatrix} s_t,r_{t+1},s_{t+1} \end{Bmatrix}中获取的新信息。TD学习的核心思想是基于新获得的信息来修正当前对状态值的估计。innovation在许多估计问题(如卡尔曼滤波[33,34])中都具有基础性地位。

       其次,式(7.1)中的TD算法仅能估计给定策略的状态值。为寻找最优策略,我们仍需进一步计算动作值并进行策略改进,这将在7.2节介绍。尽管如此,本节介绍的TD算法非常基础,对理解本章其他算法至关重要。

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐