强化学习(五)用时序差分法(TD)求解

    在强化学习(四)用蒙特卡罗法(MC)求解中,我们讲到了使用蒙特卡罗法来求解强化学习问题的方法,虽然蒙特卡罗法很灵活,不需要环境的状态转化概率模型,但是它需要所有的采样序列都是经历完整的状态序列。如果我们没有完整的状态序列,那么就无法使用蒙特卡罗法求解了。本文我们就来讨论可以不使用完整状态序列求解强化学习问题的方法:时序差分(Temporal-Difference, TD)。

    时序差分这一篇对应Sutton书的第六章部分和UCL强化学习课程的第四讲部分,第五讲部分。

1. 时序差分TD简介

    时序差分法和蒙特卡罗法类似,都是不基于模型的强化学习问题求解方法。所以在上一篇定义的不基于模型的强化学习控制问题和预测问题的定义,在这里仍然适用。

    预测问题:即给定强化学习的5个要素:状态集$S$, 动作集$A$, 即时奖励$R$,衰减因子$\gamma$,  给定策略$\pi$, 求解该策略的状态价值函数$v(\pi)$

    控制问题:也就是求解最优的价值函数和策略。给定强化学习的5个要素:状态集$S$, 动作集$A$, 即时奖励$R$,衰减因子$\gamma$, 探索率$\epsilon$, 求解最优的动作价值函数$q_{*}$和最优策略$\pi_{*}$ 

    回顾蒙特卡罗法中计算状态收获的方法是:$$G_t =R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...  \gamma^{T-t-1}R_{T}$$

    而对于时序差分法来说,我们没有完整的状态序列,只有部分的状态序列,那么如何可以近似求出某个状态的收获呢?回顾强化学习(二)马尔科夫决策过程(MDP)中的贝尔曼方程:$$v_{\pi}(s) = \mathbb{E}_{\pi}(R_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_t=s) $$

    这启发我们可以用$R_{t+1} + \gamma v(S_{t+1})$来近似的代替收获$G_t$, 一般我们把$R_{t+1} + \gamma V(S_{t+1})$称为TD目标值。$R_{t+1} + \gamma V(S_{t+1}) -V(S_t)$称为TD误差,将用TD目标值近似代替收获$G(t)$的过程称为引导(bootstrapping)。这样我们只需要两个连续的状态与对应的奖励,就可以尝试求解强化学习问题了。

    现在我们有了自己的近似收获$G_t$的表达式,那么就可以去求解时序差分的预测问题和控制问题了。

2. 时序差分TD的预测问题求解

    时序差分的预测问题求解和蒙特卡罗法类似,但是主要有两个不同点。一是收获$G_t$的表达式不同,时序差分G(t)的表达式为:$$G(t) = R_{t+1} + \gamma V(S_{t+1})$$

    二是迭代的式子系数稍有不同,回顾蒙特卡罗法的迭代式子是:$$V(S_t) = V(S_t)  + \frac{1}{N(S_t)}(G_t -  V(S_t) )$$

    由于在时序差分我们没有完整的序列,也就没有对应的次数$N(S_t)$,一般就用一个[0,1]的系数$\alpha$代替。这样时序差分的价值函数迭代式子是:$$V(S_t) = V(S_t)  + \alpha(G_t -  V(S_t) )$$$$Q(S_t, A_t) = Q(S_t, A_t) +\alpha(G_t -  Q(S_t, A_t) )$$

    这里我们用一个简单的例子来看看蒙特卡罗法和时序差分法求解预测问题的不同。

    假设我们的强化学习问题有A,B两个状态,模型未知,不涉及策略和行为。只涉及状态转化和即时奖励。一共有8个完整的状态序列如下:

    ① A,1,B,1 ②B,1 ③B,1 ④ B,1 ⑤ B,1 ⑥B,1 ⑦B,1 ⑧B,0

    只有第一个状态序列是有状态转移的,其余7个只有一个状态。设置衰减因子$\gamma =1$。

    首先我们按蒙特卡罗法来求解预测问题。由于只有第一个序列中包含状态A,因此A的价值仅能通过第一个序列来计算,也就等同于计算该序列中状态A的收获:$$V(A) = G(A) = R_A + \gamma R_B = 0$$

    对于B,则需要对其在8个序列中的收获值来平均,其结果是6/8。

    再来看看时序差分法求解的过程。其收获是在计算状态序列中某状态价值时是应用其后续状态的预估价值来计算的,对于B来说,它总是终止状态,没有后续状态,因此它的价值直接用其在8个序列中的收获值来平均,其结果是6/8。

    对于A,只在第一个序列出现,它的价值为:$$V(A) = R_A + \gamma V(B) = \frac{6}{8}$$

    从上面的例子我们也可以看到蒙特卡罗法和时序差分法求解预测问题的区别。

    一是时序差分法在知道结果之前就可以学习,也可以在没有结果时学习,还可以在持续进行的环境中学习,而蒙特卡罗法则要等到最后结果才能学习,时序差分法可以更快速灵活的更新状态的价值估计,这在某些情况下有着非常重要的实际意义。

    二是时序差分法在更新状态价值时使用的是TD 目标值,即基于即时奖励和下一状态的预估价值来替代当前状态在状态序列结束时可能得到的收获,是当前状态价值的有偏估计,而蒙特卡罗法则使用实际的收获来更新状态价值,是某一策略下状态价值的无偏估计,这一点蒙特卡罗法占优。

    三是虽然时序差分法得到的价值是有偏估计,但是其方差却比蒙特卡罗法得到的方差要低,且对初始值敏感,通常比蒙特卡罗法更加高效。

    从上面的描述可以看出时序差分法的优势比较大,因此现在主流的强化学习求解方法都是基于时序差分的。后面的文章也会主要基于时序差分法来扩展讨论。

3. n步时序差分

    在第二节的时序差分法中,我们使用了用$R_{t+1} + \gamma v(S_{t+1})$来近似的代替收获$G_t$。即向前一步来近似我们的收获$G_t$,那么能不能向前两步呢?当然可以,这时我们的收获$G_t$的近似表达式为:$$G_t^{(2)} = R_{t+1} + \gamma  R_{t+2} +  \gamma^2V(S_{t+2})$$

    从两步,到三步,再到n步,我们可以归纳出n步时序差分收获$G_t^{(n)}$表达式为:$$G_t^{(n)} = R_{t+1} + \gamma  R_{t+2} + ... + \gamma^{n-1} R_{t+n}  + \gamma^nV(S_{t+n})  $$

    当n越来越大,趋于无穷,或者说趋于使用完整的状态序列时,n步时序差分就等价于蒙特卡罗法了。

    对于n步时序差分来说,和普通的时序差分的区别就在于收获的计算方式的差异。那么既然有这个n步的说法,那么n到底是多少步好呢?如何衡量n的好坏呢?我们在下一节讨论。

4. $TD(\lambda)$

    n步时序差分选择多少步数作为一个较优的计算参数是需要尝试的超参数调优问题。为了能在不增加计算复杂度的情况下综合考虑所有步数的预测,我们引入了一个新[0,1]的参数$\lambda$,定义$\lambda-$收获是n从1到$\infty$所有步的收获乘以权重的和。每一步的权重是$(1-\lambda)\lambda^{n-1}$,这样$\lambda-$收获的计算公式表示为:$$G_t^{\lambda} = (1-\lambda)\sum\limits_{n=1}^{\infty}\lambda^{n-1}G_t^{(n)}$$

    进而我们可以得到$TD(\lambda)$的价值函数的迭代公式:$$V(S_t) = V(S_t)  + \alpha(G_t^{\lambda} -  V(S_t) )$$$$Q(S_t, A_t) = Q(S_t, A_t) +\alpha(G_t^{\lambda}-  Q(S_t, A_t) )$$

    每一步收获的权重定义为$(1-\lambda)\lambda^{n-1}$的原因是什么呢?其图像如下图所示,可以看到随着n的增大,其第n步收获的权重呈几何级数的衰减。当在T时刻到达终止状态时,未分配的权重全部给予终止状态的实际收获值。这样可以使一个完整的状态序列中所有的n步收获的权重加起来为1,离当前状态越远的收获其权重越小。

    从前向来看$TD(\lambda)$, 一个状态的价值$V(S_t) $由$G_t$得到,而$G_t$又间接由所有后续状态价值计算得到,因此可以认为更新一个状态的价值需要知道所有后续状态的价值。也就是说,必须要经历完整的状态序列获得包括终止状态的每一个状态的即时奖励才能更新当前状态的价值。这和蒙特卡罗法的要求一样,因此$TD(\lambda)$有着和蒙特卡罗法一样的劣势。当$\lambda =0 $ 时,就是第二节讲到的普通的时序差分法,当$\lambda =1 $ 时,就是蒙特卡罗法。

    从反向来看$TD(\lambda)$,它可以分析我们状态对后续状态的影响。比如老鼠在依次连续接受了3 次响铃和1 次亮灯信号后遭到了电击,那么在分析遭电击的原因时,到底是响铃的因素较重要还是亮灯的因素更重要呢?如果把老鼠遭到电击的原因认为是之前接受了较多次数的响铃,则称这种归因为频率启发(frequency heuristic) 式;而把电击归因于最近少数几次状态的影响,则称为就近启发(recency heuristic) 式。

    如果给每一个状态引入一个数值:效用(eligibility, E) 来表示该状态对后续状态的影响,就可以同时利用到上述两个启发。而所有状态的效用值总称为效用迹(eligibility traces,ES)。定义为:$$E_0(s) = 0$$$$E_t(s) = \gamma\lambda E_{t-1}(s) +1(S_t=s), \;\;s.t.\; \lambda,\gamma \in [0,1]$$

    此时我们$TD(\lambda)$的价值函数更新式子可以表示为:$$\delta_t = R_{t+1} + \gamma v(S_{t+1}) -V(S_t)$$$$V(S_t) = V(S_t)  + \alpha\delta_tE_t(s)$$

    也许有人会问,这前向的式子和反向的式子看起来不同啊,是不是不同的逻辑呢?其实两者是等价的。现在我们从前向推导一下反向的更新式子。$$\begin{align} G_t^{\lambda} -  V(S_t)  &=  -  V(S_t)  + (1-\lambda)\lambda^{0}(R_{t+1} + \gamma V(S_{t+1})) \\ &+ (1-\lambda)\lambda^{1}(R_{t+1} + \gamma  R_{t+2} +  \gamma^2V(S_{t+2}))  \\ &+  (1-\lambda)\lambda^{2}(R_{t+1} + \gamma  R_{t+2} + \gamma^2  R_{t+3} +  \gamma^3V(S_{t+3})) \\ &+... \\& = -  V(S_t)  +  (\gamma\lambda)^0(R_{t+1} + \gamma V(S_{t+1}) - \gamma\lambda V(S_{t+1}) )  \\ & + (\gamma\lambda)^1(R_{t+2} + \gamma V(S_{t+2}) - \gamma\lambda V(S_{t+2}) ) \\ & + (\gamma\lambda)^2(R_{t+3} + \gamma V(S_{t+3}) - \gamma\lambda V(S_{t+3}) ) \\ &+...  \\ & =  (\gamma\lambda)^0(R_{t+1} + \gamma V(S_{t+1}) - V(S_t)) \\ & +  (\gamma\lambda)^1(R_{t+2} + \gamma V(S_{t+2}) - V(S_{t+1}))   \\ & +  (\gamma\lambda)^2(R_{t+3} + \gamma V(S_{t+3}) - V(S_{t+2})) \\ & + ... \\ & = \delta_t + \gamma\lambda \delta_{t+1} +   (\gamma\lambda)^2 \delta_{t+2} + ... \end{align}$$

    可以看出前向TD误差和反向的TD误差实际上一致的。

5.  时序差分的控制问题求解

    现在我们回到普通的时序差分,来看看它控制问题的求解方法。回想上一篇蒙特卡罗法在线控制的方法,我们使用的是$\epsilon-$贪婪法来做价值迭代。对于时序差分,我们也可以用$\epsilon-$贪婪法来价值迭代,和蒙特卡罗法在线控制的区别主要只是在于收获的计算方式不同。时序差分的在线控制(on-policy)算法最常见的是SARSA算法,我们在下一篇单独讲解。

    而除了在线控制,我们还可以做离线控制(off-policy),离线控制和在线控制的区别主要在于在线控制一般只有一个策略(最常见的是$\epsilon-$贪婪法)。而离线控制一般有两个策略,其中一个策略(最常见的是$\epsilon-$贪婪法)用于选择新的动作,另一个策略(最常见的是贪婪法)用于更新价值函数。时序差分的离线控制算法最常见的是Q-Learning算法,我们在下下篇单独讲解。

6. 时序差分小结

    时序差分和蒙特卡罗法比它更加灵活,学习能力更强,因此是目前主流的强化学习求解问题的方法,现在绝大部分强化学习乃至深度强化学习的求解都是以时序差分的思想为基础的。因此后面我们会重点讨论。

    下一篇我们会讨论时序差分的在线控制算法SARSA。

(欢迎转载,转载请注明出处。欢迎沟通交流: [email protected])

原文地址:https://www.cnblogs.com/pinard/p/9529828.html

时间: 2024-10-29 19:05:56

强化学习(五)用时序差分法(TD)求解的相关文章

强化学习(四)用蒙特卡罗法(MC)求解

在强化学习(三)用动态规划(DP)求解中,我们讨论了用动态规划来求解强化学习预测问题和控制问题的方法.但是由于动态规划法需要在每一次回溯更新某一个状态的价值时,回溯到该状态的所有可能的后续状态.导致对于复杂问题计算量很大.同时很多时候,我们连环境的状态转化模型$P$都无法知道,这时动态规划法根本没法使用.这时候我们如何求解强化学习问题呢?本文要讨论的蒙特卡罗(Monte-Calo, MC)就是一种可行的方法. 蒙特卡罗法这一篇对应Sutton书的第五章和UCL强化学习课程的第四讲部分,第五讲部分

强化学习(八)价值函数的近似表示与Deep Q-Learning

在强化学习系列的前七篇里,我们主要讨论的都是规模比较小的强化学习问题求解算法.今天开始我们步入深度强化学习.这一篇关注于价值函数的近似表示和Deep Q-Learning算法. Deep Q-Learning这一篇对应Sutton书的第11章部分和UCL强化学习课程的第六讲. 1. 为何需要价值函数的近似表示 在之前讲到了强化学习求解方法,无论是动态规划DP,蒙特卡罗方法MC,还是时序差分TD,使用的状态都是离散的有限个状态集合$\mathbb{S}$.此时问题的规模比较小,比较容易求解.但是假

【基础知识十六】强化学习

一.任务与奖赏 我们执行某个操作a时,仅能得到一个当前的反馈r(可以假设服从某种分布),这个过程抽象出来就是“强化学习”. 强化学习任务通常用马尔可夫决策过程MDP来描述: 强化学习任务的四要素 E = <X, A, P, R> E:机器处于的环境 X:状态空间 A:动作空间 P:状态转移概率 R:奖赏函数 学习目的: “策略”:机器要做的是不断尝试学得一个“策略” π,根据状态x就能得到要执行的动作 a = π(x) 策略的评价: 长期累积奖赏,常用的有“T步累积奖赏” 强化学习与监督学习的

深度强化学习(Deep Reinforcement Learning)入门:RL base &amp; DQN-DDPG-A3C introduction

转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应用DRL前,阶段性的整理下相关知识点.本文集中在DRL的model-free方法的Value-based和Policy-base方法,详细介绍下RL的基本概念和Value-based DQN,Policy-based DDPG两个主要算法,对目前state-of-art的算法(A3C)详细介绍,其他

David Silver强化学习Lecture2:马尔可夫决策过程

课件:Lecture 2: Markov Decision Processes 视频:David Silver深度强化学习第2课 - 简介 (中文字幕) 马尔可夫过程 马尔可夫决策过程简介 马尔可夫决策过程(Markov Decision Processes, MDPs)形式上用来描述强化学习中的环境. 其中,环境是完全可观测的(fully observable),即当前状态可以完全表征过程. 几乎所有的强化学习问题都能用MDPs来描述: 最优控制问题可以描述成连续MDPs; 部分观测环境可以转

CS229 - MachineLearning - 12 强化学习笔记

Ng的机器学习课,课程资源:cs229-课件    网易公开课-视频 问题数学模型: 五元组{S.a.Psa.γ.R},分别对应 {状态.行为.状态s下做出a行为的概率.常数.回报}. 优化目标: 选择一个policy以获得最佳报酬:E[R(s0)+γR(s1)+γ2R(s2)+......],常数γ的存在可以保证尽量快地获得收益. 优化函数: 根据贝尔曼方程, R(s)表示执行此策略获得的直接收益,后面那一堆是执行了此策略以后再后面的行为获得的收益. 最优策略满足: 那么在s状态下的最有策略是

深度强化学习泡沫及路在何方?

一.深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在<自然>杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现.自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速

强化学习第七章

1.策略迭代.价值迭代.泛化迭代的前提条件:智能体知道环境的状态转移概率,即是基于模型的问题 2.蒙特卡洛方法采样:随机采样估计期望值,通过样本序列逼近真实的期望值.  成立原因:大数定理. 3.探索和利用,探索指的是不拘于当前的表现,选择不同于当前策略的行动:利用是持续使用当前的最优策略,尽可能的获得更多的回报. 4.蒙特卡洛方法的缺点:估计值的方差大.估计值方差大则均值收敛需要更长时间.方差大的原因:每次掷骰子的数字都不同,采样频率的问题,会多次出现同一个状态,在计算的过程中没有区分第一次到

【强化学习】阶段总结

马尔可夫决策过程 MDP 基于模型的动态规划方法(Model-Based,DP) 策略搜索 策略迭代 值迭代 无模型的强化学习方法(Model-Free) 蒙特卡洛方法(MC):效率不高,但是能够展现 model-free 类算法的特性: 时序差分方法(TD,Important):直接从 episode 学习,不需要了解模型本身,即 model-free:可以学习不完整的 episode,通过自身的引导(bootstrapping),猜测 episode 的结果,同时持续更新这个猜测: TD v