本文中涉及到的所有项目均提供开源代码:https://github.com/simoninithomas/Deep_reinforcement_learning_Course 恭喜! 本文中有很多信息。 在继续之前,请务必真正掌握材料。 在进入有趣的部分之前,掌握这些元素很重要:创建可玩视频游戏的AI、股票预测AI 以及策略预测AI. 在本系列文章中,我们将专注于学习当今用于解决强化学习问题的不同体系结构。 这些将包括Q学习,深度Q学习,策略梯度,Actor-Critic算法和PPO算法。 前言在第一篇文章中,您将学习:
在深入探讨深度强化学习的Agent之前,掌握以上这些要素非常重要。 强化学习蕴含的想法是,Agent将通过与环境互动并从执行行为中获得奖励来从环境中学习。 图1. Agent 以及奖励 从与环境的互动中学习这一策略源自于我们的自然经验。 假设您是客厅里的孩子。 您看到一个壁炉,然后接近它。 图2. 强化学习的简单例子 如果您感到很温暖,很积极,感觉很好(积极奖励+1)。 您了解火灾是一件积极的事情。 图3. 强化学习的简单例子 但是,当您进一步靠近火焰时。 哎哟! 它会灼伤您的手(负奖励-1)。 您刚刚了解,距离足够远时,火是积极的,因为它会产生温暖。 但是离它太近了,你会被烫伤。 人类就是通过互动来学习的。 强化学习只是从行动中学习的一种计算方法。 强化学习过程图4. 强化学习要素 为了让大家更加容易地了解强化学习,现在我们来举一个简单的例子:假设有一个 Agent 正在学习扮演《超级马里奥兄弟》,那么 强化学习(RL)流程可以建模为如下所示的循环:
强化学习循环执行以上步骤1.到.4 并输出状态,动作和奖励的序列。 Agent 的目标是取得最大化的累积奖励。 奖励机制为什么 Agent 的目标是最大化预期的累积奖励? 好吧,强化学习是基于奖励假设的思想。 所有目标都可以通过预期累积奖励的最大化来描述。 这就是为什么在强化学习中,要表现出最好的行为,我们需要最大化预期的累积奖励。 每个时间步t的累积奖励可以写成: 公式1. 等价于: 公式2. 实际上,在现实生活中我们不可能获得全程的奖励状况。 而且,距离当前状态较近的奖励还是毕竟好预测的,但是距离目前状态较远的状态则不好预测。 图5. 强化学习的一个环境 假设您的 Agent 是这只小老鼠,而您的对手是那只猫。 您的目标是在被猫吃掉之前先食用最大量的奶酪。 如图所示,我们附近的奶酪比靠近猫的奶酪更有可能吃(我们离猫越近,危险就越大)。 结果,即使靠近猫(更大的奶酪),其奖励也会被打折。 我们不太确定是否可以食用。 为了对奖励进行打折,我们按以下步骤进行:
另一方面,gamma值越小,折扣越大。 这意味着我们的 Agent 更关心短期奖励(最近的奶酪)。 我们的折合累积预期奖励为: 公式3. 为简单起见,每个奖励都将按gamma折扣至时间步长的指数。 随着时间步长的增加,猫离我们越来越近,因此未来的奖励越来越不可能发生。 序列性和连续性任务在这种情况下,我们有一个起点和一个终点(终端状态)。 这会产生一个学习序列:状态,动作,奖励和新状态的列表。 1.序列性任务 例如,以《超级马里奥兄弟》为例,情节从新马里奥的发布开始到结束:当您被杀或达到关卡的尽头时。 图6. 超级马里奥 2.连续性任务 连续的任务将会永远执行不会终止(无终端状态)。 在这种情况下, Agent 必须学习如何选择最佳操作并同时与环境交互。 例如,执行自动股票交易的 Agent 。 对于此任务,没有起点和终点状态。 Agent 一直在运行,直到我们决定停止他为止。 图7. 强化学习用于股票交易 蒙特卡洛vs TD学习方法我们有两种学习方式:
1.蒙特卡洛 当序列结束时( Agent 达到“终极状态”), Agent 查看总累积奖励以查看其表现如何。 在蒙特卡洛方法中,奖励仅在游戏结束时获得。 然后,我们以增加的知识开始新游戏。 Agent 在每次迭代时都会做出更好的决策。 公式4. 蒙特卡洛公式 举个例子: 图8. 老鼠吃奶酪案例 如果采用迷宫环境: 我们总是从同一起点开始。
通过运行越来越多的强化学习序列, Agent 将学会表现的越来越好。 时间差异学习(TD):随时随地都进行学习 另一方面,时间差异学习算法不会等到情节结束才更新最大预期未来奖励估算:它将针对该体验中发生的非终端状态 S t更新其值估算 V。 此方法称为TD(0)或一个步骤TD(在任何单个步骤之后更新值函数)。 公式5. TD TD方法仅等到下一个步骤更新值估计值。 在时间t + 1,他们立即使用观察到的奖励Rt + 1和当前估计值V(St + 1)形成TD目标。 TD目标是一个估计值:实际上,您通过朝一个一步的目标进行更新来更新先前的估计值V(St)。 探索/开发的权衡 在研究解决强化学习问题的不同策略之前,我们必须涵盖另一个非常重要的主题:探索/开发的权衡。
请记住,我们的强化学习 Agent 的目标是最大化预期的累积奖励。 但是,我们可能会陷入一个普遍的陷阱。 图9. 小老鼠吃奶酪 在这个游戏中,我们的老鼠可以吃无限量的小奶酪(每个+1)。 但是在迷宫的顶部,有一大片奶酪(+1000)。 但是,如果我们仅专注于奖励,我们的 Agent 将永远无法拿到巨大的奶酪。 取而代之的是,它将仅利用最近的奖励来源,即使该来源很小(利用)。 但是,如果我们的 Agent 做一点探索,就能找到丰厚的回报。 这就是我们所谓的探索/开发的权衡。 我们必须定义一个规则来帮助处理这种折衷。 我们将在以后的文章中看到处理它的不同方法。 强化学习的三种方法既然我们已经定义了强化学习的主要元素,那么让我们继续介绍解决强化学习问题的三种方法。 这些是基于价值,基于策略和基于模型的。 1.基于价值 在基于价值的RL中,目标是优化价值函数V(s)。 价值函数是一个告诉我们 Agent 在每种状态下可获得的最大预期未来回报的函数。 每个状态的价值是 Agent 从该状态开始可以期望在将来累积的总奖励金额。 公式6. 价值函数 Agent 将使用此价值函数来选择每个步骤要选择的状态。 Agent 采取具有最大价值的状态。 图10. 基于价值的强化学习 在迷宫示例中,在每一步中,我们将采用最大值:-7,然后-6,然后-5(依此类推)以达到目标。 2.基于策略 在基于策略的强化学习中,我们希望不使用价值函数直接优化策略函数π(s)。 该策略定义了给定时间的 Agent 行为。 公式7. 基于策略的动作选择公式 通过学习策略函数,我们可以将每个状态映射到最佳的对应动作。 我们有两种类型的策略:
公式8. 随机策略函数 图11. 随机策略示意图 正如我们在此处看到的,该策略直接指示针对每个步骤采取的最佳措施。 3.基于模型 在基于模型的强化学习中,我们对环境进行建模。 这意味着我们将创建一个环境行为模型。 问题在于每个环境将需要不同的模型表示。 这就是为什么我们在接下来的文章中不会谈论这种强化学习。 深度强化学习引言深度强化学习引入了深度神经网络来解决强化学习问题,因此被称为“深度”。 例如,在下一篇文章中,我们将研究Q-Learning(经典强化学习)和Deep Q-Learning。 您会看到不同之处在于,在第一种方法中,我们使用传统算法来创建Q表,该表可帮助我们找到针对每种状态采取的操作。 在第二种方法中,我们将使用神经网络(根据状态q值来估算奖励)。 图12. 深度强化学习 英文原文网址申明:https:///free-code-camp/an-introduction-to-reinforcement-learning-4339519de419 |
|
来自: taotao_2016 > 《AI》