强化学习8.10

8.10推出算法
推出算法是基于应用于模拟轨迹的蒙特卡罗控制的决策时间规划算法,所有模拟轨迹都在当前环境状态下开始。他们通过平均从每个可能的行动开始的许多模拟轨迹的返回值然后遵循给定的策略来估计给定策略的行动值。当动作值估计被认为足够准确时,执行具有最高估计值的动作(或动作之一),之后从所得到的下一状态重新执行该过程。正如Tesauro和Galperin(1997)所解释的那样,他们尝试使用推出算法来玩步步高游戏,“推出”一词来自于估计步步高位置的价值,通过多次播放(即“推出”)位置来估计步步高位置的值。游戏结束随机生成的骰子卷序列,其中两个玩家的移动都是由一些固定的政策制定的。
与第5章中描述的蒙特卡洛控制算法不同,推出算法的目标不是为给定的策略π估计完整的最优动作值函数q*或完整的动作值函数qπ。相反,它们仅针对每个当前状态以及通常称为推出策略的给定策略生成蒙特卡罗对动作值的估计。作为决策时间规划算法,推出算法立即使用这些行动价值估计,然后丢弃它们。这使得推出算法的实现相对简单,因为不需要为每个状态-动作对采样结果,并且不需要在状态空间或状态动作空间上近似函数。
那么推出算法会做什么?第4.2节中描述的政策改进定理告诉我们,给定任何两个政策π和π’相同,除了π’(s)= a≠π(s)。对于某些状态s,如果qπ(s,a)≥vπ(s),则政策π’与π一样好或更好。而且,如果不平等是严格的,那么π’实际上比π更好。这适用于推出算法,其中s是当前状态,π是推出策略。平均模拟轨迹的返回产生每个动作a’ϵA(s)的qπ(s,a’)的估计。然后,在s中选择一个最大化这些估计值的行动的策略,此后遵循π是一个改进超过π的策略的良好候选者。结果类似于4.3节中讨论的动态规划的策略迭代算法的一个步骤(尽管它更像是第4.5节中描述的异步值迭代的一个步骤,因为它仅改变当前状态的动作)。
换句话说,推出算法的目的是改进推出策略;不要找到最优政策。经验表明,推出算法可以令人惊讶地有效。例如,Tesauro和Galperin(1997)对通过推出方法产生的步步高游戏能力的显着改善感到惊讶。在某些应用程序中,即使推出策略完全随机,推出算法也可以产生良好的性能。但改进政策的表现取决于推广政策的属性以及蒙特卡罗价值估计产生的行动的排名。直觉表明推出政策越好,价值估计越准确,推出算法产生的政策可能就越好(但参见Gelly和Silver,2007)。
这涉及重要的贸易,因为更好的推广政策通常意味着需要更多的时间来模拟足够的轨迹以获得良好的价值估计。作为决策时间规划方法,推出算法通常必须满足严格的时间限制。推出算法所需的计算时间取决于每个决策必须评估的操作数量,获取有用样本返回所需的模拟轨迹中的时间步数,推出策略制定决策所需的时间,以及获得良好的蒙特卡罗行动值估计所需的模拟轨迹的数量。
平衡这些因素对于推出方法的任何应用都很重要,尽管有几种方法可以缓解挑战。由于蒙特卡罗试验是相互独立的,因此可以在不同的处理器上并行进行多次试验。另一种方法是截断完整剧集之外的模拟轨迹,通过存储的评估函数来纠正截断的返回(这使得我们所说的关于前面章节中的截断返回和更新的所有内容都发挥作用)。正如Tesauro和Galperin(1997)所建议的那样,也有可能监控蒙特卡罗模拟并修剪掉那些不太可能变得最好的候选行动,或者其价值足够接近当前最佳选择的行动。相反,它们不会产生任何真正的差异(尽管Tesauro和Galperin指出这会使并行实现复杂化)。
我们通常不会将推出算法视为学习算法,因为它们不会保留对值或策略的长期记忆。但是,这些算法利用了我们在本书中强调的强化学习的一些特性。作为蒙特卡洛控制的实例,他们通过平均样本轨迹集合的回归来估计行动值,在这种情况下,模拟与环境的样本模型的交互的轨迹。通过这种方式,它们就像强化学习算法一样,通过轨迹采样避免了动态规划的彻底扫描,并且通过依赖于样本而不是预期的更新来避免对分布模型的需求。最后,推出算法通过对估计的动作值贪婪地行动来利用策略改进属性。

8.11蒙特卡洛树搜索
蒙特卡罗树搜索(MCTS)是最近一个非常成功的决策时间规划示例。在其基础上,MCTS是如上所述的推出算法,但是通过添加用于累积从蒙特卡罗模拟获得的值估计的装置来增强,以便连续地将模拟引导到更高回报的轨迹。 MCTS主要负责将计算机从2005年的弱业余水平提升到2015年的大师级(6人或以上)。基本算法的许多变体已经开发出来,包括我们在16.6节讨论的变体。这对于2016年令人惊叹的AlphaGo计划在18届世界冠军Go球员中的胜利至关重要。 MCTS已被证明在各种竞争环境中都很有效,包括一般游戏(例如,参见Finnsson和Bj¨ornsson,2008; Genesereth和Thielscher,2014),但它不仅限于游戏;如果存在一个足够简单的环境模型用于快速多步模拟,那么它对于单代理顺序决策问题是有效的。
在遇到每个新状态后执行MCTS以选择代理对该状态的动作;它会再次执行以选择下一个状态的操作,依此类推。与推出算法一样,每次执行都是一个迭代过程,它模拟从当前状态开始并运行到终端状态的许多轨迹(或直到折扣使得任何进一步的奖励可以忽略不计作为对回报的贡献)。 MCTS的核心思想是通过扩展已经从早期模拟中获得高评价的轨迹的初始部分,从当前状态开始连续聚焦多个模拟。 MCTS不必保留从一个动作选择到下一个动作选择的近似值函数或策略,但在许多实现中,它保留了可能对其下一次执行有用的选定动作值。
在大多数情况下,模拟轨迹中的操作是使用简单策略生成的,通常称为转出策略,因为它适用于更简单的转出算法。当推出策略和模型都不需要大量计算时,可以在短时间内生成许多模拟轨迹。与任何表格蒙特卡罗方法一样,状态-动作对的值被估计为该对的(模拟)返回的平均值。蒙特卡洛值估计仅针对最有可能在几个步骤中达到的状态-动作对的子集维持,这些步骤形成以当前状态为根的树,如图8.10所示。 MCTS通过添加表示基于模拟轨迹的结果看起来很有希望的状态的节点来递增地扩展树。任何模拟的轨迹都将通过树,然后在某个叶节点处退出。在树之外和叶节点处,推出策略用于操作选择,但是在树内的状态下,可能更好。对于这些状态,我们至少对某些行动进行了估值,因此我们可以使用一种称为树政策的知情政策来挑选它们,以平衡勘探和开发。例如,树策略可以使用ε-greedy或UCB选择规则(第2章)选择操作。
在这里插入图片描述
更详细地说,MCTS基本版本的每次迭代都包含以下四个步骤,如图8.10所示:
1.选择。从根节点开始,基于附加到树的边缘的动作值的树策略遍历树以选择叶节点。
2.扩展。在一些迭代(取决于应用程序的细节)上,通过添加从所选节点通过未探测的动作到达的一个或多个子节点,从所选叶子节点扩展树。
3.模拟。从所选节点或其新添加的子节点之一(如果有),使用推出策略选择的操作运行完整剧集的模拟。结果是蒙特卡罗试验,其中首先由树策略选择操作,并通过推出策略在树之外选择操作。
4.备份。模拟剧集生成的返回被备份以更新或初始化附加到MCTS迭代中树策略所遍历的树的边缘的动作值。没有为树之外的转发策略访问的状态和操作保存任何值。图8.10通过显示从模拟轨迹的终端状态直接到树中的状态 - 动作节点的备份来说明这一点,其中所述推出策略开始(尽管通常,模拟轨迹上的整个返回被备份到此状态-动作节点)。
MCTS继续执行这四个步骤,每次从树的根节点开始,直到不再剩下时间,或者某些其他计算资源耗尽。然后,最后,根据依赖于树中累积的统计信息的某种机制,选择来自根节点的动作(其仍表示环境的当前状态);例如,它可以是具有从根状态可用的所有动作的最大动作值的动作,或者可能是具有最大访问计数的动作以避免选择异常值。这是MCTS实际选择的动作。在环境转换到新状态之后,再次运行MCTS,有时从表示新状态的单个根节点的树开始,但通常从包含此节点的任何后代的树开始,该节点由前一个构建的树留下。执行MCTS;将丢弃所有剩余节点以及与其关联的操作值。
MCTS首先被提议用于选择参加双人竞技游戏的节目,例如Go。对于游戏,每个模拟的剧集是游戏的一个完整游戏,其中两个玩家通过树和推出策略选择动作。第16.6节描述了AlphaGo程序中使用的MCTS的扩展,它将MCTS的蒙特卡罗评估与深度人工神经网络通过自学游戏强化学习学习的动作值相结合。
将MCTS与我们在本书中描述的强化学习原则相关联,可以深入了解它如何实现如此令人印象深刻的结果。在其基础上,MCTS是一种基于蒙特卡罗控制的决策时间规划算法,应用于从根状态开始的模拟;也就是说,它是一种推出算法,如上一节所述。因此,它受益于在线,增量,基于样本的价值评估和政策改进。除此之外,它还可以保存附加到树边缘的动作值估计值,并使用强化学习的示例更新来更新它们。这具有将蒙特卡罗试验聚焦在轨迹上的效果,其初始段与先前模拟的高回程轨迹相同。此外,通过递增地扩展树,MCTS有效地增长查找表以存储部分动作值函数,其中存储器被分配给在高产量样本轨迹的初始段中访问的状态 - 动作对的估计值。因此,MCTS避免了全局逼近动作 - 值函数的问题,同时它保留了使用过去的经验来指导探索的好处。
MCTS决策时间规划取得的巨大成功深刻影响了人工智能,许多研究人员正在研究用于游戏和单一代理应用程序的基本程序的修改和扩展。

8.12本章总结
规划需要环境模型。分布模型包括下一个状态的概率和可能的行动的奖励;样本模型根据这些概率生成单个转换和奖励。动态编程需要一个分布模型,因为它使用预期的更新,这涉及计算所有可能的下一个状态和奖励的期望。另一方面,样本模型是模拟与环境交互所需的,在此期间可以使用样本更新,如许多强化学习算法所使用的那样。样本模型通常比分布模型更容易获得。
我们提出了一个观点,强调规划最优行为和学习最优行为之间令人惊讶的密切关系。两者都涉及估计相同的值函数,并且在两种情况下,在一系列小型备份操作中逐渐更新估计值是很自然的。这使得简单地通过允许两者更新相同的估计值函数来直接集成学习和计划过程。此外,任何学习方法都可以简单地通过将它们应用于模拟(模型生成)体验而不是真实体验来转换为计划方法。在这种情况下,学习和计划变得更加相似;它们可能是在两种不同经验来源上运行的相同算法。
将增量计划方法与表演和模型学习相结合是很简单的。规划,表演和模型学习以循环方式相互作用(如第162页的图表所示),每个都产生了另一个需要改进的东西;他们之间不需要或禁止其他互动。最自然的方法是让所有进程异步并行地进行。如果进程必须共享计算资源,那么几乎可以任意处理除法 - 任何组织对于手头的任务最方便和有效。
在本章中,我们已经触及了状态空间规划方法中的许多变化维度。一个方面是更新大小的变化。更新越小,规划方法的增量就越多。最小的更新包括一步样本更新,如Dyna。另一个重要方面是更新的分布,即搜索焦点。优先清扫的重点是最近价值观发生变化的国家的前身。在策略轨迹采样侧重于代理在控制其环境时可能遇到的状态或状态 - 动作对。这可以允许计算跳过与预测或控制问题无关的状态空间的部分。实时动态编程是价值迭代的政策轨迹采样版本,说明了该策略相对于传统的基于扫描的策略迭代的一些优势。
规划还可以从相关状态向前聚焦,例如在代理 - 环境交互期间实际遇到的状态。最重要的形式是在决策时进行规划,即作为行动选择过程的一部分。在人工智能中研究的经典启发式搜索就是一个例子。其他示例是推出算法和蒙特卡罗树搜索,它们受益于在线,增量,基于样本的价值评估和政策改进。

8.13第一部分总结:尺寸
本章总结了本书的第一部分。在其中,我们试图将学习呈现为不是单个方法的集合,而是作为跨越方法的一系列连贯的思想。每个想法都可以被视为方法变化的维度。这组尺寸跨越了大量可能的方法。通过在维度层面探索这个空间,我们希望获得最广泛和最持久的理解。在本节中,我们使用方法空间中维度的概念来概括本书到目前为止开发的强化学习的观点。
到目前为止,我们在本书中探讨的所有方法都有三个共同的主要观点:首先,它们都试图估计价值函数;第二,它们都通过沿实际或可能的状态轨迹备份值来运行;第三,它们都遵循广义策略迭代(GPI)的一般策略,这意味着它们保持近似值函数和近似策略,并且它们不断尝试在另一个的基础上改进每个策略。这三个想法是本书所涉及主题的核心。我们建议价值函数,备份价值更新和GPI是强有力的组织原则,可能与任何智能模型相关,无论是人工还是自然。
图8.11显示了方法变化的两个最重要的维度。这些维度与用于改进价值功能的更新类型有关。水平维度是它们是样本更新(基于样本轨迹)还是预期更新(基于可能轨迹的分布)。预期的更新需要分布模型,而样本更新只需要样本模型,或者可以根据实际经验完成,根本没有模型(变异的另一个维度)。图8.11的垂直维度对应于更新的深度,即对应的自举程度。空间的四个角中有三个是估算值的三种主要方法:动态规划,TD和蒙特卡罗。沿着空间的左边缘是样本更新方法,从一步TD更新到完全返回蒙特卡洛更新。在这些之间是包括基于n步更新的方法的谱(在第12章中,我们将其扩展为n步更新的混合,例如“由资格痕迹实现的λ-更新”)。
动态编程方法显示在空间的最右上角,因为它们涉及一步预期的更新。右下角是预期更新的极端情况,它们一直运行到终端状态(或者,在持续的任务中,直到折扣将任何进一步奖励的贡献减少到可忽略的水平)。这是穷举搜索的情况。沿着这个维度的中间方法包括启发式搜索和相关方法,这些方法可能有选择地搜索和更新到有限的深度。还存在沿水平维度中间的方法。这些方法包括混合预期更新和样本更新的方法,以及在单个更新中混合样本和分布的方法的可能性。填充正方形的内部以表示所有这些中间方法的空间。
在这里插入图片描述
我们在本书中强调的第三个方面是on-policy和off-policy方法之间的二元区别。在前一种情况下,代理人学习当前所遵循的政策的价值函数,而在后一种情况下,它学习不同政策的政策的价值函数,通常是代理人当前认为最好的政策。由于需要探索,策略生成行为通常与当前认为最佳的行为不同。该第三维可能被视为垂直于图8.11中页面的平面。
除了刚才讨论的三个维度之外,我们还在本书中确定了其他一些方面:
返回的定义 任务是连续的还是持续的,打折的还是未打折的?
行动价值vs状态价值vs后期价值 应该估算什么样的价值?如果仅估计状态值,则行动选择需要模型或单独的策略(如在演员批评方法中)。
行动选择/探索 如何选择行动以确保在勘探和开采之间进行适当的贸易?我们只考虑了最简单的方法:ε-greedy,值的乐观初始化,soft-max和上限置信度。
同步与异步 所有状态的更新是同时执行还是按某种顺序逐个执行?
真实与模拟 应该根据实际经验或模拟经验进行更新?如果两者兼而有之,多少?
更新的位置 应更新哪些状态或状态-行动对? Modelfree方法只能选择实际遇到的状态和状态-动作对,但基于模型的方法可以任意选择。这里有很多种可能性。
更新时间 是否应该在选择操作时进行更新,或者仅在之后进行更新?
更新内存 保留更新值需要多长时间?它们应该永久保留,还是仅在计算动作选择时保留,如启发式搜索?
当然,这些方面既不详尽也不相互排斥。个别算法也以许多其他方式存在,并且许多算法存在于几个维度的几个位置。例如,Dyna方法使用真实和模拟经验来实现相同的值函数。保持以不同方式或不同状态和动作表示计算的多个值函数也是完全合理的。然而,这些维度确实构成了一套连贯的思想,用于描述和探索广泛的可能方法。
这里没有提到的最重要的维度,也没有在本书的第一部分中介绍,是函数逼近的维度。函数逼近可以被视为正交的可能性范围,从一个极端的表格方法到状态聚合,各种线性方法,然后是一组不同的非线性方法。第二部分探讨了这个方面。

书目和历史评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值