Reinforcement learning——an introduction强化学习翻译1.5节

1.5 An Extended Example: Tic-Tac-Toe

​ 为了说明强化学习的一般思想,并将其与其他方法进行对比,我们接下来考虑一个单独的例子。

​ 以我们熟悉的儿童游戏井字游戏为例。两个玩家轮流在一块3乘3的棋盘上玩。一个玩家玩Xs和另一个Os,直到其中一个玩家通过水平、垂直或对角线排列三个标记而获胜,就像游戏中X玩家所做的那样。如果棋盘上没有一个玩家连续得到3,那么游戏就是平局。因为一个熟练的玩家可以永远不输,让我们假设我们是在与一个不完美的玩家比赛,他的游戏有时是不正确的,但允许我们赢。事实上,现在让我们把提款和赔款对我们来说都是一样不好的。我们该如何培养一个能够发现对手游戏中的缺陷并学会最大化获胜机会的玩家呢?

image-20200630182913638

​ 虽然这是一个简单的问题,但它不能轻易地通过传统技术以令人满意的方式解决。例如,博弈论中经典的“极大极小”解在这里是不正确的,因为它假设了对手的一种特殊玩法。例如,一个极大极小玩家永远不会达到一个可能会输的游戏状态,即使事实上,由于对手的错误游戏,他总是会赢。序列决策问题的经典优化方法,如动态规划,可以计算任何对手的最优解,但需要输入该对手的完整说明,包括对手在每个棋盘状态下的每一步棋的概率。让我们假设这一信息对这个问题来说不是先验的,因为它对大多数实际感兴趣的问题来说不是。另一方面,这些信息可以从经验中估计,在这种情况下,通过与对手玩很多游戏。关于这个问题,最好的办法是首先学习对手的行为模型,达到一定程度的自信,然后应用动态规划来计算一个给定近似对手模型的最优解。最后,这与我们在本书后面要研究的一些强化学习方法并没有什么不同。

​ 应用于此问题的进化方法将直接在可能的策略空间中寻找一个对对手取胜概率高的策略。在这里,策略是一种规则,它告诉玩家对于游戏的每一种状态应该采取什么行动——在3×3的棋盘上Xs和Os的每一种可能配置。对于所考虑的每一种策略,其获胜概率的估计将通过与对手进行一定数量的博弈来获得。这种评估将指导下一步考虑哪个或哪个政策。一种典型的进化方法是在政策空间中进行爬山,依次生成和评估政策以获得增量的改进。或者,也许可以使用遗传类型的算法来维护和评估策略的总体。可以应用数百种不同的优化方法。

​ 下面是如何使用值函数的方法来处理井字游戏问题。首先,我们将建立一个数字表,每个数字代表游戏的可能状态。每个数字都将是我们在那个州获胜概率的最新估计。我们把这个估计值当作状态值,整个表就是学习过的值函数。状态值高于状态B,或被认为是比状态B“更好”,如果当前的概率的估计我们赢得来自一个高于B .假设我们总是玩x,然后连续所有州有三个Xs获胜的概率是1,因为我们已经赢了。类似地,对于所有连续有三个Os的状态,或者所有已经填满的状态,正确的概率是0,因为我们不可能赢。我们把所有其他状态的初始值设为0.5,表示我们有50%机会获胜的猜测。

​ 然后我们和对手玩了很多游戏。为了选择我们的步,我们检查每一个可能的步(棋盘上的每一个空格)可能产生的状态,并在表中查找它们的当前值。大多数情况下,我们都贪得无失,选择能够带来最大价值的那一步棋,也就是说,最有可能获胜的那一步棋。然而,偶尔我们会从其他的移动中随机选择。这些被称为探索性移动,因为它们使我们体验到我们可能从未见过的状态。在一场比赛中所采取的一系列行动可以如图1.1所示。

当我们在玩游戏时,我们会改变我们在游戏中所处状态的值。我们试图让他们更准确地估计获胜的可能性。为此,我们将每次贪婪移动之后的状态值“备份”到移动之前的状态,如图1.1中的箭头所示。更准确地说,较早状态的当前值被更新为更接近于较晚状态的值。这可以通过将较早状态的值向较晚状态的值移动一小部分来实现。令st表示贪心移动前的状态,令St+1表示贪心移动后的状态,则更新到St的估计值V (St),

image-20200630224032755

图1.1: tic-tac-toe动作序列。实心的黑线表示游戏中的移动;虚线表示我们(我们的强化学习玩家)考虑过但没有进行的移动。*表示当前估计的最佳移动。我们的第二步是一个探索性的举措,这意味着即使是另一个兄弟公司的举措,导致e *排名更高。探索性的移动不会导致任何学习,但是我们的其他每个移动都会导致更新,如红色箭头所示,其中估计值会在树上从后面的节点移动到前面的节点,如本文中所述。

可以写成

image-20200630225653299,

其中a是一个小的正分数,称为步长参数,它影响学习速度。这个更新规则是时间差分学习方法的一个例子,之所以这么叫是因为它的变化是基于两个连续时间的估计值之间的差值V(St+1)-V(St)。

​ 上面描述的方法在这个任务上执行得很好。例如,如果步长参数随时间适当减小,那么对于任何固定的对手,该方法将收敛到我们的玩家给定的最佳发挥的每个状态下的真实获胜概率。此外,随后采取的招式(除了试探性的招式)实际上是对付这个(不完美)对手的最佳招式。换言之,该方法收敛到一个与此对手博弈的最优策略。如果步长参数没有随着时间的推移一直减小到零,那么这个玩家也能很好地对抗那些慢慢改变打法的对手。

​ 这个例子说明了进化方法和学习值函数的方法之间的区别。为了评估一个策略,进化方法保持策略不变,并与对手进行多次博弈,或者使用对手的模型模拟多个博弈。获胜频率给出了该策略获胜概率的无偏估计,并可用于指导下一个策略选择。但每次政策变动都是在多次博弈之后才做出的,而且只使用每一场博弈的最终结果:游戏期间发生的事情被忽略了。例如,如果玩家赢了,那么它在游戏中的所有行为都会得到信任,而不管具体的动作对胜利有多重要。信用甚至给予从未发生过的行动!相反,值函数方法允许对单个状态进行评估。最后,进化方法和价值函数方法都在搜索策略的空间,但是学习一个价值函数会利用游戏过程中可用的信息。

​ Tic-tac-toe有一个相对较小的、有限的状态集,而当状态集非常大,甚至无穷大时,可以使用强化学习。例如,Gerry Tesauro(1992年、1995年)将上述算法与人工神经网络相结合,学习玩大约10^20个状态的双陆棋。有了这么多的州,我们不可能再经历其中的一小部分。Tesauro的项目学习了比以前任何项目都要好得多的游戏,最终也比世界上最好的人类玩家更好(见第16.1节)。人工神经网络为程序提供了从经验中进行归纳的能力,以便在新的状态下,它根据网络确定的过去所面临的类似状态保存的信息来选择动作。强化学习系统在具有如此大的状态集的问题中能发挥多大的作用,与它能从过去的经验中恰当地进行归纳密切相关。正是在这个角色中,我们最需要强化学习中的监督学习方法。人工神经网络和深度学习(第9.7节)并不是唯一的,或者说是最好的方法。

​ 在这个tic-tac-toe的例子中,学习开始时没有超出游戏规则的先验知识,但是强化学习绝不意味着学习和智力的表格形式。相反,先前的信息可以通过各种方式纳入强化学习中,这些方法对早期学习至关重要(例如,见第9.5、17.4和13.1节)。我们也可以在tic-tac-toe示例中访问真实状态,而强化学习也可以在部分状态被隐藏或不同状态对学习者来说是相同的情况下应用。

​ 最后,tic-tac-toe玩家能够向前看,并且知道每一个可能的动作会产生什么状态。要做到这一点,它必须有一个游戏模型,让它能够预见到它的环境会如何变化,以应对它可能永远不会采取的行动。许多问题都是这样的,但在其他问题中,甚至缺乏一个短期的行动要素模型。强化学习在任何一种情况下都可以应用。模型不是必需的,但如果模型可用或可以学习,则可以很容易地使用(第8章)。

​ 另一方面,有一些强化学习方法根本不需要任何环境模型。无模型系统甚至无法考虑环境将如何变化,以响应一个单一的行动。从这个意义上说,井字游戏机相对于它的对手来说是无模型的:它没有任何类型的对手模型。由于模型必须相当精确才能有用,因此,当解决问题的真正瓶颈是构造一个高度精确的环境模型时,无模型方法比更复杂的方法更具优势。无模型方法也是基于模型的方法的重要组成部分。在这本书中,在讨论如何将无模型方法用作更复杂的基于模型的方法的组件之前,我们将用几个章节来讨论无模型方法。

​ 强化学习可以在系统的高水平和低水平上使用。虽然tic-tac-toe玩家只学习游戏的基本动作,但是没有什么能阻止强化学习在更高的层次上发挥作用,因为每一个“动作”本身都可能是一个复杂的问题解决方法的应用。在分层学习系统中,强化学习可以在多个层次上同时工作。练习1.1:自演假设上面描述的强化学习算法不是和随机的对手比赛,而是在双方都学习的情况下对自己进行比赛。你认为在这种情况下会发生什么?它会学习不同的招式选择策略吗?

​ 练习1.2:对称性许多tic-tac-toe位置看起来不同,但实际上是一样的,因为对称性。我们应该如何修改上述学习过程来利用这一点?在这个过程中,学习方式会有哪些改进?现在再想想。假设对手没有利用对称性。那样的话,我们应该吗?那么,对称相等的位置必然具有相同的值,这是真的吗?

​ 练习1.3:贪心的游戏假设强化学习玩家是贪婪的,也就是说,它总是把它带到它认为最好的位置。它能学会比一个不贪婪的人玩得更好,还是更糟?可能会出现什么问题?

​ 练习1.4:从探索中学习假设学习更新发生在所有动作之后,包括探索性动作。如果步长参数随时间适当减小(但不是探索的趋势),则状态值将收敛到不同的概率集。从概念上讲,当我们从探索性动作中学到什么(概念上)两组概率是计算出来的?假设我们继续进行探索性的行动,那一组概率可能更适合学习?那会导致更多的胜利?

​ 练习1.5:其他改进你能想出其他方法来提高强化学习的能力吗?你能想出更好的方法来解决摆姿势时的井字游戏问题吗?

猜你喜欢

转载自blog.csdn.net/wangyifan123456zz/article/details/107381062
今日推荐