图解强化学习(第1部分):基本概念和术语简介
入门,直观的强化学习系列
用简单的英语应用马尔可夫决策过程的温和指南
自从使用强化学习训练的AlphaGo模型在复杂的围棋比赛中击败当时的卫冕世界冠军以来,您震惊了世界。
在一系列文章中,我将介绍强化学习(RL)的基础知识以及用于解决RL问题的一些最受欢迎的算法和深度学习架构。 我们将尽量集中精力以尽可能直观的方式理解这些原理,而不必过多地研究数学理论。 在第一篇文章中,我将介绍RL的许多基本概念和术语,以便在以下文章中我们可以使用它们来构建解决方案。
RL概述
RL在机器学习领域中适合什么地方?
通常,当人们提供ML概述时,他们首先要解释的是,它可以分为两类,监督学习和无监督学习。但是,存在第三类,即。RL,尽管没有像它的另外两个迷人兄弟姐妹那样经常被提及。
> Machine Learning can be categorized as Supervised Learning, Unsupervised Learning and Reinforcement Learning (Image by Author)
监督学习使用标记的数据作为输入,并预测结果。 它从充当'主管'的损失功能接收反馈。
无监督学习使用未标记的数据作为输入,并检测数据中的隐藏模式,例如聚类或异常。 它没有收到主管的反馈。
强化学习通过与外界互动来收集输入并接收反馈。它输出与世界互动时需要采取的最佳行动。
RL与有监督(或无监督)学习有何不同?
· 没有主管来指导训练
· 您无需使用大型(标签或未标签)预先收集的数据集进行训练。相反,您的'数据'是通过与您互动的现实环境中的反馈动态地提供给您的。
· 您可以按照一系列时间步长反复进行决策,例如。在分类问题中,您对数据输入运行一次推断以产生输出预测。使用强化学习,您可以反复运行推理,并在实际环境中导航。
RL解决了哪些问题?
RL不是典型的ML问题(例如分类,回归,聚类等),而是最常用于解决不同类别的实际问题的,例如控制任务或决策任务,您可以在其中操作与之交互的系统现实世界。
· 例如。 机器人或无人机必须学习从一个盒子中拾取设备并将其放入容器的任务
它对各种应用程序很有用,例如:
· 操作无人机或自动驾驶汽车
· 操纵机器人来导航环境并执行各种任务
· 管理投资组合并做出交易决策
· 玩围棋,国际象棋,视频游戏等游戏
通过反复试验进行强化学习
使用RL,学习是通过反复试验的经验进行的,类似于人类。 婴儿可以接触火或牛奶,然后从负面或正面强化中学习。
· 婴儿采取一些行动
· 从环境接收有关该操作结果的反馈
· 重复此过程,直到了解哪些操作产生了良好的结果以及哪些操作产生了不利的结果。
> A baby learns from positive and negative reinforcement (Image by Author)
要使用RL,请将您的问题构造为马尔可夫决策过程
假设您想训练机器人。 您将如何使用RL解决此类问题?
要应用RL,第一步是将问题构造为称为Markov决策过程(MDP)的东西。如果您以前从未使用过RL,则很可能您对MDP唯一了解的就是听起来很吓人。
因此,让我们尝试了解什么是MDP。一个MDP有五个组件,它们以明确的方式协同工作。
代理商:这是您所使用的系统,例如 机器人。 这是您要使用RL构建和训练的模型。
环境:代理在其操作过程中与之交互的现实环境。 例如。 机器人必须导航的地形,其周围环境,风,摩擦,光照,温度等因素。
> An MDP has an Agent, Environment, States, Actions and Rewards (Image by Author)
状态:在任何时候都代表当前的'世界状态'。 例如。 它可以捕获机器人相对于其地形的位置,周围物体的位置以及风的方向和速度。
可能存在一组有限或无限的状态。
动作:这些是代理与环境交互所采取的动作。例如。机器人可以向右,向左,向前,向后,弯曲,举起手等等。
可能存在有限或无限的可能动作集。
奖励:是代理商因其行动而从环境中获得的正面或负面的强化。这是一种评估特定动作的'好'或'坏'的方法。
例如。如果沿特定方向移动会导致机器人撞墙,那将带来负面的回报。另一方面,如果向左转使机器人找到需要拾取的对象,它将获得积极的回报。
定义MDP时应牢记什么?
代理和环境:显然,第一步是确定代理的角色和范围以及要解决的问题的环境。
状态:接下来,您必须定义状态包含的数据点以及它们的表示方式。
重要的是,它可以捕获代表问题的所有信息以代表当前的世界情况,以便业务代表可以对未来进行推理,而无需有关过去的信息或任何其他知识。
换句话说,状态的定义应该是独立的。 因此,例如,如果您需要了解有关如何到达此状态的某些信息,则应将历史记录封装在状态定义本身中。
行动:您的代理可以采取哪些潜在行动?
奖励:这是代理从经验中学习的方式。因此,这是您需要深思熟虑的事情,因为至关重要的是,以一种能够真实反映您希望代理学习的行为的方式来定义奖励。
MDP如何工作?
现在我们已经了解了什么是MDP,接下来我们将介绍它的工作原理。让我们以井字游戏(又名Noughts and Crosss)为例。两个玩家通过将令牌放置在3x3网格上来玩游戏。一个玩家放置Nought(甜甜圈形状),而其他玩家放置Crosss。目的是通过将您的三个代币排成一行来赢得比赛。
> (Image by Author)
您可以如下定义MDP:
· 代理与环境竞争,因此环境充当其对手。
· 状态在任何时候都是代理人和环境中所有令牌在板上的当前位置。
· 代理可以将其令牌放置在网格中9个可用正方形中的每个正方形上,有9种可能的操作。
· 如果代理获胜,则获得+10分的正奖励;如果代理获胜,则将获得-10分的负奖励。每个中间步伐给出0分的中性奖励。
现在让我们来看一下MDP在玩游戏时的操作。
代理在一系列时间步骤中与其环境进行交互。 在每个时间步中都会发生一组设定的操作流程,然后在每个时间步中重复该流程。
该序列以初始状态开始,初始状态变为当前状态。 例如,您的对手,环境已将其令牌放置在特定位置,这就是游戏的开始状态。
> How the MDP works (Image by Author)
现在,从第一个时间步开始,在每个时间步上执行以下步骤:
· 环境的当前状态已输入到代理。
· 代理使用该当前状态来决定应采取的措施。 它不需要记忆所有之前的状态和动作的历史。 代理决定将其令牌放置在某个位置。 有许多可能的动作可供选择,那么它如何决定要采取的动作呢? 这是一个非常重要的问题,我们稍后再讨论。
· 该动作作为输入传递到环境。
· 环境使用当前状态和选定的动作并输出两件事-将世界过渡到下一个状态,并提供一些回报。例如,它通过将令牌放置在某个位置来采取下一步行动,并为我们提供了奖励。在这种情况下,由于还没有人赢得比赛,因此它会提供0分的中立奖励。环境如何做到这一点对于代理是不透明的,而不是我们的控制范围。
· 然后,作为先前操作的结果,将来自环境的奖励作为反馈提供给代理。
这样就完成了一个时间步,并将我们移至下一个时间步。现在,该下一个状态变为当前状态,然后将其作为输入提供给代理,并重复该循环。
在整个过程中,代理商的目标是最大化其在给定状态下采取行动所获得的报酬总额。它不仅希望最大化即时回报,还希望最大化其随着时间的推移所获得的累计回报。我们将很快返回该主题。
MDP在一系列时间步长上进行迭代
这是MDP操作的另一视图,显示了时间步长的进度。
> An MDP iterates over a sequence of time steps (Image by Author)
在每个时间步中,都会发生三件事-状态,动作和奖励,它们充分描述了该时间步中发生的事情。
轨迹描述了多个时间步骤上的执行
因此,可以将MDP的执行描述为一系列时间步长上的发生轨迹(就状态,行动,奖励而言),如下所示。
(s3,a3,r4,s4,a4,r5,s5,a5,r6,s6)
情景任务以终端状态结束
对于具有明确定义的结束或终端状态的RL任务,从开始状态到结束状态的完整序列称为情节。例如。游戏的每一轮都是一集。
· 因此,在情节结束时,您可以重置为开始状态(或从一组开始状态中随机选择一个)并播放另一个完整情节,然后重复。
· 每个情节与下一个情节无关。
因此,RL系统的操作会重复多次。在每个情节中,它会重复多个时间步长。
> Each Episode ends in a Terminal State (Image by Author)
持续的任务永远持续下去
另一方面,没有尽头的RL任务称为'继续任务',可以永远继续下去(或者直到您停止系统为止)。 例如。 持续管理制造或仓库自动化的机器人。
代理和环境控制状态-动作转换
正如我们所看到的,MDP通过在每个时间步长之间交替进行代理和环境来进行操作:
> Given a state, the Agent decides the action. Given an action (and state), the Environment decides the next state. (Image by Author)
· 给定当前状态,下一步操作由代理决定。实际上,那是代理商的唯一工作。例如,从当前状态,代理可以选择动作a 1或a 2来放置其令牌。
· 给定当前状态,以及代理选择的下一个动作,到下一个状态和奖励的过渡受环境控制。 例如,如果代理人选择了动作a 1,则环境可以通过进行不同的动作而转变为状态S 2或S 4。 另一个视频游戏示例可能是,从给定状态(例如,角色站在屋顶上)开始,相同的代理动作(角色跳跃)可能以某种概率结束于多个下一个状态(例如,降落在地面上)。 周围的屋顶,或跌落到地面),由环境控制。
环境如何过渡到下一个状态?
给定当前状态,以及代理采取的行动,环境如何确定结果,即 下一个状态和奖励?
对于我们将要处理的最现实的RL问题,答案通常是'确实如此'。大多数环境具有复杂的内部动力学,可以控制从特定状态采取动作时它们的行为方式。
例如,在股票交易RL应用程序中,股票市场环境具有决定股票价格走势的一系列未知因素。 还是无人机导航RL应用程序中的环境取决于在各种地形和微天气条件下控制气流,运动,热力学,能见度等的物理定律。
我们的重点是训练代理,我们通常可以将环境视为外部黑匣子。
请注意,此外部黑匣子可能是环境的模拟器。在许多情况下,构建模拟器可能不切实际,我们将直接与真实环境进行交互。
但是,为了完整起见,让我简要地提及一下,如果我们确实构建了这样的环境模型,则MDP会将其表示为大型过渡概率矩阵或函数。
> (Image by Author)
该矩阵将给定的状态和操作对映射到:
· 下一个状态具有一定的概率,因为我们可能以不同的概率最终进入不同的状态。 这称为过渡概率。
· 奖励。
代理如何选择动作?
另一方面,我们对代理如何决定在给定状态下要采取的操作非常感兴趣。 实际上,这就是我们要解决的RL问题。
为此,它使用了三个概念,接下来我们将进行探讨:
· 回报
· 政策
· 值
回报是所有时间步骤的总奖励
随着代理执行时间步长,它会在每个时间步长上累积奖励。
但是,我们真正关心的是累积奖励,而不是任何个人奖励。
我们称此为回报。它是代理在任务持续时间内累积的总报酬。
> The Return is the total of the rewards received at each time-step (Image by Author)
退货使用折扣奖励计算
当我们计算回报时,我们不只是简单地将所有奖励加起来,而是应用折现系数γ来加权一段时间后的奖励。 这些被称为折扣奖励。
返回值=r₀+γr₁+γ²r2
而且,更一般而言:
返回值=r₀+γr₁+γ²r²+…。+γⁿrₙ
这样,累积的奖励不会随着时间步长的增加而无限增长(例如对于连续任务或非常长的情节)。
与后来的奖励相比,它还鼓励代理人更多地关注立即的奖励,因为以后的奖励将得到更大的折扣。
特工的最终目标是获得最大的回报,不仅仅是在一个情节中,而是在许多很多情节中。
基于此折扣,我们可以看到代理商在评估奖励时考虑两个因素。
立即奖励比以后奖励更有价值
第一点是,如果代理必须在现在获得一定的奖励与以后获得一定的奖励之间进行选择,则即时奖励更有价值。 由于折扣因子γ小于1,因此我们对以后的奖励的折扣要比立即奖励的折扣多。
> Immediate Reward is more valuable than Later Reward (Image by Author)
给予我们最高总回报的奖励会更好
第二点是,如果代理商必须在现在获得一些奖励与以后获得更大的奖励之间进行选择,则更大的奖励是最可取的。 这是因为我们希望代理商查看总回报而不是单个奖励。 例如。 在下棋游戏中,代理商必须选择两条路径中的优势者。 首先,它可以通过积极发挥来尽早杀死一些碎片。 这给了它一些立即的回报。 但是从长远来看,这使它处于劣势,并且输了比赛。 因此,最终它会得到很大的负面奖励。 或者,它可以玩一组不同的动作,起初产生的奖励较低,但最终会赢得比赛。 从而获得丰厚的积极回报。 显然,第二种方法更好,因为它提供了更高的总回报,而不是更大的立即回报。
> We want to get a higher Total Reward (Image by Author)
政策是采取行动的策略
我们要涵盖的第二个概念是政策。早些时候,我们推迟了一个非常重要的问题,即代理如何决定在给定状态下应采取哪种行动。代理可能使用许多不同的策略:
· 例如。总是随机选择下一个动作
· 例如。 总是选择给出最高已知奖励的下一个状态
· 例如。 抓住机会,探索新的状态,希望找到一条更好的道路。
· 例如。始终保持安全,避免获得负面奖励的机会。
代理用来决定在给定状态下采取哪种操作的任何策略都称为策略。 尽管听起来很抽象,但是策略只是将给定状态映射到要执行的操作的某种东西。
> The Policy tells the Agent which action to pick from any state (Image by Author)
策略就像一个(巨大的)查询表
您可以将策略视为(巨大的)查找表,该表将状态映射到操作。
> (Image by Author)
因此,给定当前状态,代理将在表中查找该状态以查找应采取的操作。
> The Policy is like a (huge) Lookup Table (Image by Author)
在实践中,对于现实世界中的问题,有太多的状态和太多的动作,因此使用了一个函数而不是将状态映射到动作的查找表。
但是,直觉是一样的-将函数视为'巨大的查询表'。
确定性和随机性策略
策略可以是确定性策略,也可以是随机策略。
确定性策略是指代理在到达特定状态时始终选择相同的固定操作的策略。
> (Image by Author)
或者,随机策略是一种策略,在该策略中,代理根据每个动作的某种概率来更改其为状态选择的动作。
例如,它可能会在玩游戏时这样做,以至于无法完全预测。 例如,在玩剪刀石头布时,如果它总是以相同的步伐前进,则对手可以弄清楚这一点并轻松击败它。
> (Image by Author)
代理如何获得政策?
我们一直在谈论该政策,就好像该代理商已经可以使用它一样。但是事实并非如此。
就像人类婴儿一样,代理人一开始就并没有真正有用的政策,也不知道在任何给定状态下应该采取什么行动。 然后,通过使用强化学习算法,它会慢慢学习它可以使用的有用策略。
可能有太多的策略,代理应使用哪个策略?
代理从给定状态采取的操作确定了它获得的奖励,因此随着时间的流逝,最终将获得总回报。因此,代理的目标是选择使回报最大化的动作。
换句话说,代理人的目标是遵循最大限度地提高回报的政策(即采取行动的方式)。
因此,在代理可以遵循的所有策略中,它希望选择最佳策略。给予最高回报的那个。
为此,代理需要比较两个策略来确定哪个更好。 为此,我们需要了解价值的概念。
该值通过遵循一些政策告诉您预期收益
假设代理处于特定状态。 另外,假设代理人以某种方式获得了政策π。 现在,如果它从该状态开始,并且始终根据该策略选择操作,那么它可以期望得到什么回报?
这就像是在说,如果代理从该状态开始,并且始终根据该策略选择操作,那么其多次发生的平均收益将是多少?
在策略π下,该平均长期回报或预期回报被称为该特定州的价值。
> The State Value (V) or the State-Action Value (Q) is the expected Return obtained from a particular state or state-action respectively, by following the given Policy over many episodes (Image by Author)
替代地,代理可以从状态-动作对开始。它已经从特定状态采取了特定行动。如果从该状态动作继续前进,它总是根据给定的策略π选择动作,它可以期望得到什么回报?
正如前面针对策略表所讨论的,我们可以将值视为一个(巨大的)查找表,该表将一个状态或一个状态-动作对映射到一个值。
因此,我们有两种类型的价值:
· 状态值-从给定状态开始执行基于给定策略π的操作,从给定状态返回的预期收益。 换句话说,状态值函数将状态映射到其值。
> The State Value Function maps a State to its Value (Image by Author)
· 状态行动值(又称Q值)-从给定状态采取给定行动,然后基于给定策略π执行行动的预期回报。 换句话说,状态-动作值功能将状态-动作对映射为其值。
> The State-Action Value Function maps a State-Action pair to its Value (Image by Author)
奖励,回报和价值之间的关系
· 奖励是单次行动获得的立即奖励。
· 回报是该剧集结束前获得的所有折扣奖励的总和。
· 值是许多情节的平均收益(也称为预期收益)。
将奖励视为即时的愉悦,将价值视为持久的幸福。
凭直觉,人们可以认为价值如下。 代理人像人一样,从经验中学习。 当它与环境交互并完成情节时,它将获得每个情节的退货。
随着它积累更多的经验(即获得越来越多的情节的回报),它可以了解哪些状态以及这些状态中的哪些动作产生的回报最大。
它将'经验'存储为'价值'。
为什么价值取决于我们遵循的政策?
显然,我们获得的回报(以及回报和价值)取决于我们从给定状态采取的行动。并且由于操作取决于所选择的策略,因此值取决于策略。
例如。 如果我们的政策是选择完全随机的行动(即从均匀分布中抽取样本行动),那么状态的价值(预期回报)可能会非常低,因为我们绝对不会选择最佳行动。
例如。 相反,如果我们的政策是从抽样时会产生最大回报的概率分布中选择行动,那么一个州的价值(预期回报)会更高。
使用价值功能比较政策
现在我们了解了价值,让我们回到前面的比较两个政策比较的讨论中,看哪个更好。我们如何评估'更好'的含义?
给定两个策略,我们可以通过遵循该策略并评估退货来为每个策略确定相应的State-Value或State-Action Value函数。
> (Image by Author)
一旦有了各自的价值功能,就可以使用这些价值功能来比较政策。 价值函数较高的策略会更好,因为这意味着它将产生更高的回报。
'最佳'政策称为'最佳政策'
由于我们现在可以比较策略以找出哪些策略是'好'策略,哪些策略是'坏'策略,因此我们也可以使用该策略找到'最佳'策略。 这称为最佳策略。
最佳策略是比所有其他策略都能为代理带来更多回报的策略。
> The Optimal Policy is the one that is better than all other policies (Image by Author)
通过找到最佳策略来解决RL问题
因此,现在我们有了解决RL问题的方法。
我们将问题构造为MDP,然后可以通过构建代理来解决此问题。MDP的大脑,可以决定要采取的行动。它应该以最大化回报的方式来做到这一点。
换句话说,我们需要找到代理的最佳策略。一旦有了最佳策略,它就简单地使用该策略从任何状态中选择动作。
我们将应用强化学习算法来构建代理模型,并对其进行训练以找到最佳策略。找到最佳策略从根本上解决了RL问题。
> (Image by Author)
在本系列的下一篇文章中,我们将研究这些RL算法使用的解决方案方法。
(本文由闻数起舞翻译自Chris Lovejoy的文章《Reinforcement Learning Made Simple (Part 1): Intro to Basic Concepts and Terminology》,转载请注明出处,原文链接:
https://towardsdatascience.com/reinforcement-learning-made-simple-part-1-intro-to-basic-concepts-and-terminology-1d2a87aa060)