强化学习简介

强化学习简介

介绍

假设你在玩一个视频游戏。你进入一个有两扇门的房间。在门1后面是100个金币,然后是通道。2号门后面是1枚金币,后面是另一个方向的通道。一旦你通过其中一扇门,就没有回头路了。你应该选择哪一扇门呢?

如果您的决定完全基于最大化您的即时奖励(或分数),那么您的答案将是门1。但是,大多数视频游戏的目的不是在游戏的单个部分中最大化您的分数,而是最大化你整场比赛的得分。毕竟,在门2后面的通道尽头可能有1000枚金币。

真正回答这个问题的唯一方法是多次玩游戏; 每次尝试不同的门; 然后根据您收集的信息确定最佳策略。

我刚刚描述的场景是强化学习(RL)的典型例子,这是经常被忽视的“其他”类型的机器学习。在这篇文章中,我将向您介绍RL的基本特性,并介绍Q-learning(基本的RL算法)。

什么是强化学习?

强化学习、监督学习和无监督学习是机器学习的三种基本类型之一。

在监督学习中,您将获得一个带标签的数据集,目的是使用该机器学习数据集来确定一个通用规则,该规则允许您标记可能遇到的任何新数据点。

例如,使用宠物标记图片的数据集,创建一个机器学习模型,允许您标记您可能遇到的任何新宠物图片。

强化学习简介

在无监督学习中,您将获得一个未标记的机器学习数据集,目的是通过检查数据点之间存在的关系来得出有关数据底层结构的结论。

例如,识别MNIST手写数字数据集中的相似图像的聚类。

强化学习简介

然而,在强化学习中,不是预先展示数据集,你通常会面对一个最初未知的“环境”(比如迷宫),您必须通过在该环境中各种操作来收集数据(例如,在电子游戏中选择两扇门中的哪扇)并观察结果。

强化学习简介

应用RL的问题类型被称为“顺序决策问题”,最终目标是确定最大化您的长期收益的最佳动作顺序。

环境最初未知的事实很重要,因为如果环境是完全已知的,那么您就不需要与它进行交互以收集有关它的信息。

RL问题的关键特征是:

  • 最初未知的环境: 您必须探索环境以获取有关它的信息;
  • 延迟反馈:采取动作后,可能需要一些时间才能充分认识到该动作的长期后果;
  • 顺序决策:收到的总体奖励通常是一系列多项动作的结果,而不是单一的独立动作。

许多研究已经被用于开发解决RL问题的算法。其中最著名的是Q-learning。

Q-learning

RL算法有两种:“model-based”和“model-free”。

使用“model-based”的RL,我们使用预先确定的环境模型确定最佳动作方案(也称为最优策略),而使用“model-free”RL ,我们的目标是通过与环境互动来确定最优策略。

model-free RL算法可以分为两种类型:“on-policy”和“off-policy”,与我们如何与环境交互以收集有关它的信息有关。

通过“on-policy”算法,我们在做出决策时根据我们的“最佳”策略制定动作决策,然后使用从采取动作中收集的信息来改进最佳策略。

使用“off-policy”算法,我们在与环境交互(或探索)时的动作可能与我们认为采取动作时最佳的行为无关。

例如,我们可能会故意选择在短期内采取我们知道不太理想的动作,以确定它是否会在长期内产生更大的回报。

Q-Learning是一种“model-free, off-policy”的RL算法。

Q-learning的工作原理是建立一个Q值表,Q(s,a)表示在环境状态s下采取行动a的预期discounted(长期)回报,然后通过与环境的交互对这个表进行迭代改进,直到找到最优的Q表。

最初,Q表中的所有值都被设置为小随机数(除了终端状态的Q(s,a)值被设置为0)。

强化学习简介

每次在环境中采取动作时,都会产生(状态,动作,奖励,新状态)元组。这代表了在行动之前的环境状态(s),在状态下采取的行动(a),在动作之后立即得到的奖励(r),以及行动之后的新环境状态(s ')。

这些(状态,动作,奖励,新状态)元组用于迭代地更新Q表中的值,其中更新的Q(s,a)值表示Q ' (s,a),设为原Q(s,a)值与新观测值隐含的Q值的加权平均值。

这可以通过以下更新规则表示:

Q'(s,a)=(1-w)* Q(s,a)+ w *(r + d * Q(s',argmax a':Q(s',a')))

其中:

  • w是应用于新信息的权重(也称为学习率);
  • d是discount rate,这使得1美元现在的收益比未来的1美元更值钱。

一旦找到最佳Q表,给定状态下的最佳动作是使该状态的Q(s,a)最大化的动作(即,argmax a:Q(s,a))。

这算法取决于如何探索策略的选择与使用环境——如果你不访问一个特定的环境或状态采取特定行动的状态,那么你就永远不会知道采取的行动的后果。

理想的情况是,一旦我们收集了一些关于我们环境的信息,我们希望利用这些信息,将我们未来的探索集中在我们认为可能带来最大回报的状态和行动上。一种方法是使用贪心策略。

在贪心策略下,给定状态s时,以概率(1 -epsilon)选择贪心最佳动作(即该状态下使Q(s,a)最大化的动作),否则选择随机动作。

ε随着时间的推移经常会衰减。这鼓励在算法的早期迭代中探索环境,但随着时间的推移,减少了探索的数量,使我们能够更多地关注利用该信息。

如果所有的状态-动作对都被访问了足够多的次数,Q-learning算法保证最终收敛于最优表,尽管收敛时间是另一回事。

考虑以下迷宫:

强化学习简介

你的目标是训练机器人找到通过这个迷宫的最佳路径,从cell(0,0)开始到cell(6,6)结束,没有先前的环境知识。

为了鼓励机器人找到最短的路径,每当机器人进入空(白色)单元时,应用0.04单位的小罚分,并且障碍物位于迷宫周围的位置(以灰色标记),这导致更大的惩罚如果机器人进入包含其中一个的单元,则为0.75个单位。

机器人只能向上,向下,向左或向右移动(即不允许对角线移动)。然而,每一种运动都有不同的不确定性,只有百分之八十的几率机器人会向指定的方向移动,并且有20%的几率机器人会以正确的角度向既定方向移动(两种可能性之间的平均分配)

机器人无法移动到迷宫的边界之外,如果它试图这样做,碰到墙壁并且它的位置保持不变。

如果机器人成功到达迷宫的末端,它将获得1个单位的奖励。

假设discount rate为0.9,学习率为0.3,ε贪婪的探索策略(常数)epsilon等于0.5,经过50,000次迭代的Q学习算法,我们得到以下策略。该图显示了机器人在网格的每个方格中采用的最佳方向。

强化学习简介

可以在此处找到用于查找此解决方案的Python代码(https://github.com/gkhayes/maze_reinforcement_learning)。

现实世界中的强化学习

虽然从上面给出的例子中可能看起来不太明显,但研究人员已经找到了许多将RL应用于现实世界的方法。RL已成功用于开发自动化股票交易系统; 优化化学反应; 训练自动驾驶汽车; 并且教一台计算机比任何人都能更好地玩电子游戏。

然而,对于那些希望开始学习RL的人来说,历史上最大的障碍之一是获得一个有趣且具有挑战性的环境来进行实验。

OpenAI Gym是一个Python包,包含一系列RL环境,从简单的“示例”环境(如示例中描述的环境)到更具挑战性的环境,包括模拟机器人环境和Atari视频游戏环境。

强化学习简介

OpenAI Gym中可用的一些环境的示例

该软件包使业余和专业的计算机科学家能够尝试各种不同的RL算法,甚至可能开发自己的算法。

最后

强化学习是机器学习的一个分支,它通过与可能延迟反馈的环境进行交互来学习。在本教程中,我们讨论了RL的基本特性,并介绍了RL算法中最著名的算法Q-learning。

Q-learning涉及为所有状态 - 动作对创建Q(s,a)值表,然后通过与环境交互来优化该表。如果每次访问状态 - 动作对足够多次,则保证算法收敛。

相关推荐