Reinforcement learning:an introduction-学习笔记-chapter1
此笔记用于记录个人的学习内容,可能有些地方理解错误,希望大家多多指出,我也会及时修改。
个人背景:在读研究生,研究方向机器人运动学算法。
本书的原版可以点进主页下载
1 Introduction
1.1 强化学习
- 强化学习是一种在互动中进行学习的方法,更注重的是与环境的交互。
- 强化学习的目的使最大回报,要以发展的眼光看待回报,这一时刻的回报可能小于其他的方案,但是它的累积回报有可能是最大的,即最优策略。
- 强化学习的主要思想是对马尔科夫决策过程的最优控制。
- 强化学习与监督学习不同的是,监督学习是静态学习的过程,而强化学习是动态的过程,agent从自己的经验中学习;强化学习与无监督学习也有区别,无监督学习通常是寻找在未标记数据集合中的结构。本书的作者Sutton认为强化学习是第三种的机器学习范式。
- 强化学习的另一个关键特征是,它明确地考虑了目标导向的agent与不确定环境交互的整个问题。所有的强化学习主体都有明确的目标,能够感知环境的各个方面,并能够选择影响环境的行动。当强化学习涉及到规划时,它必须解决规划和实时行动选择之间的相互作用,以及如何获取和改进环境模型的问题。
1.2 举例
- 象棋大师在走每一步棋时,是通过对下一步可能出现的情况的预测,通过对特定位置好和移动的可能性的判断,来告知自己这一步该如何下棋。
- 一个移动机器人决定是进入一个新房间寻找更多的垃圾来收集,还是开始寻找返回其电池充电站的路。它根据电池当前的充电水平,以及过去能多快、多容易地找到充电器来做出决定。
在这两个例子中,agent都可以使用其经验随着时间的推移来改进性能,棋手改进下棋位置,提升了棋艺,机器人根据之前的经验判断电量是否足够下一步的任务,以便做出最佳的选择。
1.3 强化学习的元素
- 除了之前提到的agent和environment之外,强化学习系统还包括四个主要子元素:策略policy 、奖励信号reward signal 、值函数value function 以及环境的模型(可选)。
- 策略定义的是强化学习过程中agent在给定时间内的行为,通俗的讲,策略是从环境的感知状态到在这些状态下要采取的行动的映射。策略是强化学习的核心,它本身就是决定做出什么样的行为,一般来说,策略是随机的。
- 奖励信号定义了强化学习的目标,在一个时间步内,环境会向agent发送一个数字,即奖励。agent的最终目标是使总的汇报最大,因此奖励反应的是什么事件对于agent是好的,什么是坏的,我们可以理解为奖励与惩罚。奖励是策略改变的主要依据,如果策略选择的行为所带来的奖励值较低,那么策略就有可能发生改变,在未来选择其他的行为,一般来说,奖励是环境状态state和所采取动作action的随机函数。
- 奖励信号是指直接意义上的好坏,而值函数指的是长期意义上的好。换句话说,一个状态的价值是指一个agent从这个state开始,它的报酬总额在未来的期望累积。举个例子,回报有点像快乐(如果高)和痛苦(如果低),而价值则对应于一个更准确和远见的判断,即我们的环境处于一个特定的状态时,我们是多么高兴或不高兴。
- 从某种意义上说,奖励是首要的,而价值,作为对奖励的预测,是次要的。没有奖励就没有价值,评估价值的唯一目的就是获得更多的奖励。然而,在做决定和评估决定时,我们最关心的是价值。动作的选择是基于价值判断做出的。我们寻找的action能带来最高value的state,而不是最高的reward,因为从长远来看,这些行动能给我们带来最大的reward。不幸的是,确定价值要比确定奖励难得多。奖励基本上是由环境直接给予的,但是价值必须通过一个agent在其整个序列中进行的一系列观察来评估和重新评估。事实上,我们所考虑的几乎所有强化学习算法中最重要的组成部分是一种有效估计值的方法。价值评估的核心作用可以说是过去60年来关于强化学习的最重要的知识。
- 环境模型是一种模仿环境的东西,或者更普遍地说,它允许对环境的行为进行推断。
1.4 局限与范围
强化学习在很大程度上依赖于状态|作为策略和值函数的输入,以及作为模型的输入和输出的概念。我们关心的不是设计的状态,而是决定采取什么样的动作action作为函数,无论获得了什么样的状态信号。
Sutton的书中考虑的大多数强化学习方法都是围绕估计值函数来构建的,但并不是严格必须这样做才能解决强化学习问题。例如,遗传算法、遗传规划、模拟退火等优化方法从不估计值函数。这些方法应用多个静态策略,每个策略在较长时间内与环境的一个单独实例交互。获得最多回报的政策,以及这些政策的随机变化,会被延续到下一代政策中,这个过程会重复。
我们所强调的强化学习方法,是在与环境交互的过程中学习,这是上面所提到的进化方法所做不到的。我们并不认为进化方法本身特别适合于强化学习问题,因此,我们不在本书中讨论它们。
1.5 扩展实例:井字游戏
为了说明强化学习的一般概念,并将其与其他方法进行比较,接下来我们将更详细地考虑一个示例。
规则:两位玩家在3x3的棋盘上玩游戏,一人使用X,一人用O,如果其中一名玩家通过在水平、垂直或对角线上连续放置三个标记,即获胜。如果都没达到就是平局。
这里我们把平局或者输掉都看作是负面影响的,那么我们如何构建一个机器人,使它可以发现对手的不足,然后使我们的获胜机会最大呢。
看起来是个简单的问题,但是经典的技术很难解决,例如博弈论中的经典极大极小解在这里是不正确的,因为它假定对手以一种特定的方式进行博弈。
关于这个问题,最好的办法是先学习对手的行为模型,达到一定的置信度,然后运用动态规划计算出给定近似对手模型的最优解。最后,这与本书后面介绍的一些强化学习方法并没有太大的不同。
现在我们使用值函数来处理这个问题。
首先设置一个数字表格,每个数字代表游戏的每个可能的状态,每个数字都是这个状态下我们赢的概率的最新估计,我们把这个估计值看作状态s值,整个表就是学习值函数。如果当前估计我们从A中获胜的概率高于从B中获胜的概率,那么A的状态值比B要高,或者说A比B表现的要好。假设我们总是玩X,那么对于连续三个X的所有状态,获胜的概率是1,因为我们已经赢了。同样地,对于所有连续有三个O或者“填满”的状态,正确的概率是0,因为我们不能从中取胜。我们将所有其他州的初始值设置为0.5,这表示我们有50%的机会获胜。
当我们玩的时候,我们会改变我们在游戏中所处状态的value。我们试图让他们更准确地估计获胜的可能性。为了做到这一点,我们按照图1.1中的箭头所示,在每次贪婪地移动到移动前的状态后备份“状态值”。更准确地说,早期状态的当前值将更新为更接近于后期状态的值。这可以通过将早期状态的值朝着后期状态的值移动一小部分来完成。如果我们让s表示贪婪移动之前的状态,并让s‘表示移动之后的状态,那么对s的估计值(表示为v(s))的更新可以写为:
在α是一个微小的正数称为步长参数,影响学习的速度。这个更新规则是时间差学习方法的一个例子,之所以称为时间差学习方法,是因为它的更改是基于两个不同时间估计值之间的差异V (s‘) − V (s)。
上面描述的方法在这个任务上执行得相当好。例如,如果步长参数随时间适当减小,那么对于任何固定的对手,该方法将收敛到我们的玩家给定的最佳游戏的每个状态的真实获胜概率。此外,随后采取的行动(探索性的行动除外)实际上是对抗这个(不完美的)对手的最佳行动。换言之,该方法收敛到对该对手进行比赛的最优策略。如果步长参数没有随着时间的推移一直减少到零,那么这个玩家也能很好地对抗那些缓慢改变其游戏方式的对手。
这个例子说明了演化方法和学习值函数的方法之间的区别。为了评估策略,进化方法将策略固定下来,并与对手进行多次博弈,或者使用对手的模型模拟多次博弈。获胜的频率给出了该策略获胜概率的无偏估计,并可用于指导下一个策略选择。但是,每次政策变更都是在许多游戏之后才会做出的,并且只使用每个游戏的最终结果:忽略游戏期间发生的事情。例如,如果玩家赢了,那么他在游戏中的所有行为都将得到奖励,而不受特定的动作对获胜的影响。甚至可以把功劳归于从未发生过的动作!相反,值函数方法允许计算单个状态。最后,进化方法和价值函数方法都是在策略空间中进行搜索,而学习价值函数则是利用博弈过程中获得的信息。
这个简单的例子说明了强化学习方法的一些关键特征。首先,在与环境的互动中强调学习,在这种情况下是与对手玩家互动。其次,有一个明确的目标,正确的行为需要计划或远见,考虑到一个人的选择的延迟影响。例如,简单的强化学习玩家会学习忽视的对手设置多步的陷阱。强化学习解决方案的一个显著特点是,它可以在不使用对手模型、不对未来状态和动作的可能序列进行显式搜索的情况下,实现规划和展望的效果。
井字游戏的一系列动作。实线表示游戏中所采取的动作;虚线表示我们(我们的强化学习玩家)考虑过但没有采取的行动。我们的第二步是探索性的一步,这意味着即使另一个人的移动,导致e的移动,排名更高。探索性的移动不会导致任何学习,但是我们的其他每个移动都会导致更新,就像文本中详细描述的那样,通过曲线箭头将估估值从树的较晚的节点向上移动到较早的节点一样。
井字游戏者能够向前看,并知道每一个可能的移动会导致什么状态。要做到这一点,它必须有一个游戏模型,让它能够预测其环境将如何变化,以应对它可能永远不会采取的行动。许多问题都是这样的,但在另一些问题中,甚至缺乏行动效果的短期模型。强化学习可以应用于任何一种情况。不需要模型,但是如果模型可用或可以学习,则可以很容易地使用(第8章)。
1.6 总结
强化学习是一种计算方法,用于理解和自动化目标导向的学习和决策。它与其他计算方法的区别在于,它强调从与环境的直接交互中学到的知识,而不依赖于模范的监督或环境的完整模型。在我们看来,为了实现长期目标,强化学习是第一个认真解决与环境交互学习中出现的计算问题的领域。
强化学习使用马尔可夫决策过程的形式化框架,根据状态、行为和奖励来定义学习代理与其环境之间的交互。该框架旨在作为一种简单的方法来表示人工智能问题的基本特征。这些特征包括因果感、不确定性和非决定论,以及明确目标的存在。
价值和价值函数的概念是我们在本书中考虑的大多数强化学习方法的关键。我们认为,在策略空间中,值函数对于有效搜索是非常重要的。价值函数的使用将强化学习方法与进化方法区分开来,进化方法直接在政策空间中搜索,由对整个政策的标量评估指导。