强化学习的基础知识以及如何应用它

如今,机器学习 (Machine Learning, ML) 和深度学习 (Deep Learning, DL) 领域中有多个子任务。 例如,集群化 (Clusterization)、计算机视觉 (Computer Vision, CV)、自然语言处理 (Natural Language Processing, NLP)、推荐系统 (Recommendation Systems, RecSys) 等等。 但是,所有这些任务都可以分为两类 ML 问题,即监督学习 (Supervised Learning) 或无监督学习 (Unsupervised Learning) 问题。

您可能知道,监督学习任务是一个需要学习基于示例输入-输出对将输入映射到输出的函数的问题。 为简单起见,在监督学习中,数据被标记。 相反,无监督学习问题没有任何数据标签,因此,机器学习算法仅通过输入来学习数据。

尽管监督和无监督学习是两个最流行的 ML 问题类别,但还有另一类称为强化学习 (Reinforcement Learning, RL)。 强化学习很特别,因为它与其他课程有很大不同。 截至今天,在数据科学社区,强化学习被认为是最有前途的机器学习领域之一,也是深度学习的子任务。 今天,您将深入了解强化学习,并更多地了解其迷人的概念。

1.什么是强化学习?

首先,让我们用一个简单的例子来谈谈强化学习的一般概念。 想象一下教你的狗一些新技巧。 不幸的是,狗不懂人类的语言,所以你不能直接告诉你的宠物该做什么。 因此,您会模仿这种情况,而您的狗会尝试以一种或另一种方式行事。 如果你的狗做的每件事都正确,例如,在“坐下”命令后坐下,你会给它一个奖励。 因此,下次在类似的情况下,狗会再次像您预期的那样行动,希望再次得到奖励。 但是,如果您根本不使用零食,您的狗可能永远不会学习新技巧,因为它不会从您身边获得任何积极的刺激。

强化学习的工作原理类似。 你必须给模型一些描述当前情况和可能行动的输入。 然后你必须根据输出奖励它。 在进行强化学习项目时,您的最终目标必须是最大化回报。 现在,让我们重新制定强化学习术语中提到的任务。

强化学习中几个重要概念:

  • environment常译为环境
  • agent常译为智能体
  • state常译为状态
  • action常译为动作或行动
  • reward常译为奖励
  • policy常译为策略
  • 你的狗是存在于“environment”中的“agent
  • “environmennt”是您的家、后院或您教狗和与狗玩耍的任何其他地方
  • environment具有随时间变化的“state”。 例如,state可能是这样的——你告诉你的狗坐着,而你的狗是站着的。 你的狗做的下一件事——它坐下。 随着狗当前坐着,环境的状态会发生变化。
  • 因此,agent会根据改变当前状态的环境状态执行“action
  • 状态更改后,agent会根据它们执行的动作获得“reward”或“penalty”。 例如,在教狗时,奖励可能是一种招待,而惩罚可能是根本不给予招待
  • Strategy”或“policy”是一种选择动作以达到最佳结果的技术。 如上所述,在强化学习案例中,最好的结果是可能的最大奖励

2.强化学习定义

现在,当您了解强化学习的一般概念后,让我们将上述所有内容形式化并定义必要的术语。

  • agent是在给定环境中执行某些操作的机器人、模型或程序
  • environment是agent可以观察并与之交互的东西,例如游戏模拟器。 环境最简单的例子就是我们周围的世界。 在我们的世界里,我们是agent,而世界是环境
  • 环境的state是对设置agent的环境的完整描述。 例如,环境状态可能是agent在空间中的确切位置。
  • action是agent可以在环境中做的事情。 通常,动作取决于环境的状态,因此agent在不同的情况下会采取不同的动作。 一般来说,agent可用的动作数量是有限的,称为动作空间 (action space)
  • reward是一种“款待”,如果它按预期执行,您必须给予aget。 在解决强化学习问题时,必须不断跟踪奖励函数,因为它在设置算法、优化算法和停止训练时至关重要。 通常,奖励取决于环境的当前状态、刚刚采取的动作以及下一个环境的状态
  • policy是帮助agent选择下一步动作的规则。 一组策略通常被称为agent的大脑

3.强化学习与深度学习和机器学习有何区别?

如果您想知道强化学习与机器和深度学习之间的关系,那么是时候解决这个问题了。 您可能知道,ML 和 DL 都是人工智能 (Artificial Intelligence, AI) 的子集:

  • 人工智能是任何使计算机能够模仿人类智能的技术的名称,例如,使用简单的逻辑、if-then 场景,甚至 ML 算法
  • 机器学习是人工智能的一个子集,其中包括多种统计技术,可帮助机器在不同任务中通过经验提高其性能
  • 深度学习是 ML 的一个子集,它通过应用神经网络 (neural network) 概念来发展 ML 算法的思想

至于强化学习,它被认为是一个机器学习问题,因为它不需要使用 DL 技术来解决它。 但是,有一个基于神经网络训练的深度强化学习 (Deep Reinforcement Learning) 概念。 这就是为什么强化学习介于 ML 和 DL 之间的原因。 无论如何,DL 和强化学习概念之间存在明显的界限。 在经典 DL 中,您使用神经网络在训练集上学习,然后在新数据集上使用您的模型。 相反,在强化学习中,您通过基于持续反馈调整agent的动作来动态学习。

4.强化学习与其他机器学习技术相比如何?

让我们一劳永逸地说清楚。 机器学习问题有四类:

  • 监督学习——数据被标记,您需要学习一个函数,该函数根据示例输入-输出对将输入映射到输出
  • 无监督学习——数据没有标记,你需要在数据中找到一些结构来得出关于它的结论
  • 强化学习——你有一个环境、一个agent、一组动作,你需要通过基于持续反馈调整agent的动作来动态学习,以最大化整体奖励
  • 半监督学习——你需要解决一些有标签和未标签数据的数据集的问题

您可能会注意到,所有这些类之间存在明显差异,因此确定您必须解决的机器学习问题非常重要。 要制定强化学习问题,您必须完全理解一般的强化学习概念。 强化学习是关于探索 (exploration),因为您的agent会尝试不同的动作,同时找到可以最大化奖励的适当策略。 这是强化学习与其他类型学习之间的关键区别。 在其他类型的学习中,这个概念是不同的。 例如,在监督学习中,agennt只需将其预测与现有标签进行比较并随后更新其策略即可学习。

5.如何制定一个基本的强化学习问题?

在确定适合您的任务的 ML 问题类别时可能会很棘手。 但是,这对于项目的成功至关重要,因为您不想通过使用不相关的学习模型和算法使任务过于复杂。 幸运的是,很容易确定强化学习是否适合您的问题并制定任务。

您需要做的只是记住强化学习的概念,并了解您的任务是否是一个优化问题。 此外,您必须探索机会并确定您的强化学习agent是否可以最大化或最小化一些指标。

强化学习示例

让我们看一个简单的例子。 想象一下,你想在 Flappy Bird 中获得 100 分,但游戏非常具有挑战性,你不能自己完成,所以你决定使用 ML 来解决这个问题。 首先,您必须确定适合问题的学习类型。

问题是一项优化任务,因为您想获得 100 分(您想以一种可以给您 100 分的方式优化您的游戏内操作)。 分数本身似乎是一个很好的优化指标,因为它衡量了玩家在游戏中的成功。 因此,强化学习似乎很适合这项任务。

现在,是时候制定任务了。 您可能还记得,在解决强化学习问题时,您需要一个agent、一个环境、一组动作和某种奖励策略。 在这种情况下,很容易识别所有这些元素:

  • agent本身就是一只鸟
  • 环境是 Flappy Bird 游戏
  • 一组动作有两种可能的动作:“点击”或“不点击”
  • 您可以自己制定奖励策略,但这样似乎是合理的:如果您的agent还活着,则给它+1,否则给它-1000

作为环境状态,您可以使用以下参数:

  • 如果agent还活着
  • 与下一对管道的水平距离
  • 到下一对管道的垂直距离
  • 还有更多(如果你需要的话)

因此,我们已经确定了 RL 是否适合该任务,并在一个简单的示例上制定了一个 RL 问题。

6.强化学习的现实应用

现在,当您了解强化学习的基本概念后,让我们来谈谈一些现实生活中的应用。 通常,当需要在延迟收益与情境决策之间取得平衡时,会使用强化学习。 因此,强化学习解决了将即时行动与其产生的延迟长期奖励相关联的艰巨任务。 就像人类一样,强化学习算法有时必须等到他们看到先前决策的结果。

强化学习可以有效地应用于:

7.强化学习是如何工作的?

现在您了解了强化学习的基本概念。 您还知道强化学习与 MLDL 的关系,强化学习与其他类型的学习有什么区别,以及强化学习可以应用在哪里。 此外,您可以制定强化学习问题。 现在让我们继续深入讨论强化学习的工作原理。

贝尔曼方程

让我们从一些数学开始,谈谈许多强化学习算法的理论背景。 如上所述,强化学习基于奖励最大化假设。

因此,agent可以执行的最佳动作是最大化奖励的动作。

每个时间步 t 的奖励可以写成:

G t = R t + 1 + R t + 2 + ⋯ G_t=R_{t+1}+R_{t+2}+\cdots Gt=Rt+1+Rt+2+

然而,事情并没有那么简单。 你看,agent可以更早获得的奖励更有可能仅仅是因为它们比未来的奖励更可预测。 因此,我们最好将奖励函数分解为即时奖励和折扣未来奖励。 这就是贝尔曼方程的用武之地。

贝尔曼期望方程

贝尔曼方程的一般形式如下:

Q ( s , a ) = r + γ max ⁡ a ′ Q ( s ′ , a ′ ) Q(s,a)=r+\gamma\max_{a'}Q(s',a') Q(s,a)=r+γmaxaQ(s,a)

该等式表明,在状态 s s s 中动作 a a a 的奖励必须分为两部分。 第一个是agent执行 a a a 所获得的即时奖励 r r r。 第二个是对下一个状态中最佳动作的折扣奖励(当执行状态 s s s 中的动作 a a a 时,agent会转换到新状态)。 折扣值(discount value ) γ \gamma γ 表示现在获得奖励比将来获得奖励更有价值。 这就是为什么 γ \gamma γ 是一个介于 0 和 1 之间的数字(通常是 0.9 到 0.99)乘以未来的奖励,从而贬低未来的奖励。

那么,为什么你需要惩罚未来的奖励呢? 好吧,这似乎是合乎逻辑的,因为这些奖励具有更高的不确定性。 你根本不知道你是否得到它。 此外,立即获得奖励比希望在未来获得某些东西更令人喜欢。

您可能会注意到,贝尔曼方程是递归的,因此它逐步描述了整个强化学习过程。

贝尔曼最优性原理

贝尔曼期望方程基于贝尔曼最优性原理。 该原则指出,“最优策略具有这样的性质,即无论初始状态和初始决策是什么,其余决策都必须构成与第一个决策产生的状态有关的最优策略”。 换言之,最优策略仅取决于当前状态和总体目标,不取决于背景。

因此,如果您拥有有关环境的完整信息,那么强化学习问题就会变成规划(planning)问题,并且根本不需要使用高级 ML 技术。 不幸的是,在现实生活中,这种情况很少见。 这就是为什么有许多强化学习算法,包括神经网络(neural networks)。

马尔可夫决策过程

大多数强化学习问题可以表示成马尔可夫决策过程(Markov Decision Process, MDP)。 马尔可夫决策过程是agent在环境中的一系列动作的表示,它们的影响不仅有即时奖励而且还有未来状态和奖励。 MDP 中的所有状态都必须满足马尔可夫属性,即新状态仅依赖于先前的状态和动作,并且独立于所有先前的状态和动作。 您可能会注意到,MDP 与贝尔曼期望方程有很好的相关性。

下面是一个简单的 MDP 示例。 在这种情况下,MDP 具有三个用绿色圆圈标记的状态(S0、S1、S2)和两个用橙色圆圈标记的动作(a0、a1),agent可以执行这些动作以从一种状态转换到另一种状态。 橙色箭头是agent在执行特定动作时获得的奖励。 黑色箭头旁边的数字是转移概率。 这些是执行动作后从一种状态转换到另一种状态的概率。 例如,如果您当前处于状态 S1 并执行a0 动作,那么您将转换到状态 S0 的概率为 70%。

在这里插入图片描述

因此,我们可以使用一组可能的状态和动作、转移概率、奖励函数和折扣值 γ \gamma γ 轻松定义 MDP,这些折扣值将用于贬低未来的奖励。

8.强化学习的关键概念

现在,当您了解一些理论背景后,让我们退后一步,从另一个角度讨论强化学习的概念。

环境模型

您可能已经知道 MDP 是描述强化学习环境的模型(model)。 它通过定义转移概率(transition probabilities)和奖励函数(reward function)来说明环境将如何对某些动作做出反应。 因此,有两种不同的情况,要么你知道模型,要么你不知道。

如上所述,如果您了解模型(您拥有有关环境的完整信息,包括转移概率和奖励函数),您将面临与规划非常相似的基于模型的强化学习(model-based Reinforcement Learning)问题。 使用动态规划(Dynamic Programming)可以很容易地解决这样的问题。 不幸的是,在大多数情况下,您不会知道模型。 因此,您面临一个无模型的强化学习(model-free Reinforcement Learning)问题,或者在训练时尝试找出初始模型。 无论如何,这就是机器和深度学习技术派上用场的时候。

在强化学习中,您将尝试学习两件事:agent的策略和价值函数。<

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值