强化学习教程

2025年9月1日 | 阅读15分钟
Reinforcement Learning Tutorial

我们的强化学习教程将为您提供强化学习的全面概述,包括MDP和Q学习。在RL教程中,您将学习以下主题


什么是强化学习?

  • 强化学习是一种基于反馈的机器学习技术,其中智能体通过执行动作并观察动作结果来学习如何在环境中表现。对于每个好的动作,智能体都会获得积极的反馈,对于每个坏的动作,智能体都会获得消极的反馈或惩罚。
  • 在强化学习中,智能体无需任何标记数据,即可通过反馈自动学习,这与监督学习不同。
  • 由于没有标记数据,因此智能体只能通过自身经验来学习。
  • RL解决一类特定的问题,即决策是序列化的,目标是长期的,例如游戏、机器人等。
  • 智能体与环境互动并自行探索。强化学习中智能体的首要目标是通过获得最大的积极奖励来提高性能。
  • 智能体通过试错过程进行学习,并根据经验学习以更好地执行任务。因此,我们可以说“强化学习是一种机器学习方法,其中智能体(计算机程序)与环境互动并从中学习。” 机器人狗如何学习其手臂的运动就是强化学习的一个例子。
  • 它是人工智能的核心部分,所有AI智能体都基于强化学习的概念工作。在这里,我们无需预先编程智能体,因为它可以在没有任何人为干预的情况下从自身经验中学习。
  • 示例:假设一个AI智能体存在于迷宫环境中,其目标是找到钻石。智能体通过执行一些动作与环境互动,根据这些动作,智能体的状态会发生变化,它还会收到奖励或惩罚作为反馈。
  • 智能体继续执行这三件事(采取行动,改变状态/保持在同一状态,获得反馈),通过执行这些动作,它学习并探索环境。
  • 智能体学会了哪些动作会带来积极反馈或奖励,哪些动作会带来消极反馈惩罚。作为积极奖励,智能体获得积极分数,作为惩罚,它获得消极分数。
What is Reinforcement Learning

强化学习中的术语

  • 智能体(Agent):能够感知/探索环境并对其采取行动的实体。
  • 环境(Environment):智能体所处或被包围的情况。在RL中,我们假设环境是随机的,这意味着它是随机的。
  • 动作(Action):智能体在环境中采取的移动。
  • 状态(State):智能体采取每个动作后环境返回的情况。
  • 奖励(Reward):环境返回给智能体的反馈,用于评估智能体的动作。
  • 策略(Policy):智能体根据当前状态为下一个动作制定的策略。
  • 价值(Value):它是在考虑折现因子后预期的长期回报,与短期奖励相反。
  • Q值(Q-value):它与价值非常相似,但它接受一个额外的参数,即当前动作(a)。

强化学习的关键特征

  • 在RL中,智能体并未被告知环境以及需要采取的行动。
  • 它基于试错过程。
  • 智能体根据前一个动作的反馈采取下一个动作并改变状态。
  • 智能体可能会获得延迟奖励。
  • 环境是随机的,智能体需要探索它以获得最大的积极奖励。

实现强化学习的方法

在机器学习中实现强化学习主要有三种方法,它们是

  1. 基于价值
    基于价值的方法是找到最优价值函数,该函数是在任何策略下某个状态下的最大值。因此,智能体在策略π下预期在任何状态(s)下的长期回报。
  2. 基于策略
    基于策略的方法是在不使用价值函数的情况下找到以最大化未来奖励的最优策略。在这种方法中,智能体试图应用一种策略,使得在每一步执行的动作都有助于最大化未来奖励。
    基于策略的方法主要有两种策略
    • 确定性:在任何状态下,策略(π)都会产生相同的动作。
    • 随机性:在此策略中,概率决定了产生的动作。
  3. 基于模型:在基于模型的方法中,为环境创建一个虚拟模型,智能体探索该环境以进行学习。对于这种方法没有特定的解决方案或算法,因为每个环境的模型表示都不同。

强化学习的组成要素

强化学习主要有四个组成要素,它们如下

  1. Policy
  2. 奖励信号
  3. 价值函数
  4. 环境模型

1) 策略:策略可以定义为智能体在给定时间下的行为方式。它将环境的可感知状态映射到对这些状态采取的动作。策略是RL的核心要素,因为它本身可以定义智能体的行为。在某些情况下,它可能是一个简单的函数或查找表,而在其他情况下,它可能涉及像搜索过程这样的通用计算。它可以是确定性策略或随机性策略。

对于确定性策略:a = π(s)
对于随机性策略:π(a | s) = P[At =a | St = s]

2) 奖励信号:强化学习的目标由奖励信号定义。在每个状态下,环境会向学习智能体发送一个即时信号,这个信号称为奖励信号。这些奖励是根据智能体采取的良好和不良动作而给予的。智能体的主要目标是最大化良好动作的总奖励。奖励信号可以改变策略,例如,如果智能体选择的动作导致低奖励,那么策略可能会在未来改变以选择其他动作。

3) 价值函数:价值函数提供了有关情况和动作有多好以及智能体能期望获得多少奖励的信息。奖励指示每个良好和不良动作的即时信号,而价值函数指定未来的良好状态和动作。价值函数依赖于奖励,因为没有奖励就没有价值。估计价值的目标是获得更多奖励。

4) 模型:强化学习的最后一个要素是模型,它模仿环境的行为。借助模型,可以推断出环境将如何运行。例如,如果给定状态和动作,模型可以预测下一个状态和奖励。

模型用于规划,这意味着它提供了一种在实际体验到所有未来情况之前通过考虑所有未来情况来采取行动方案的方法。借助模型解决RL问题的方法称为基于模型的方法。相比之下,不使用模型的方法称为无模型方法


强化学习如何工作?

要理解RL的工作过程,我们需要考虑两个主要方面

  • 环境:它可以是任何东西,例如房间、迷宫、足球场等。
  • 智能体:例如AI机器人这样的智能体。

让我们以迷宫环境为例,智能体需要探索。请看下图

How does Reinforcement Learning Works

在上图中,智能体位于迷宫的第一个方块。迷宫由一个S6方块()、S8方块(火坑)和S4方块(钻石方块)组成。

智能体不能穿过S6方块,因为它是一堵实墙。如果智能体到达S4方块,则获得+1奖励;如果到达火坑,则获得-1奖励点。它可以采取四个动作:向上、向下、向左和向右移动。

智能体可以采取任何路径到达最终点,但它需要以最少的步骤完成。假设智能体考虑路径S9-S5-S1-S2-S3,那么它将获得+1奖励点。

智能体将尝试记住它为到达最后一步所采取的先前步骤。为了记忆步骤,它为每个先前步骤分配1的值。考虑以下步骤

How does Reinforcement Learning Works

现在,智能体已成功存储了先前步骤,并为每个先前方块分配了1的值。但是,如果智能体开始从一个方块移动,该方块两侧都有1值方块,它将怎么做?考虑下图

How does Reinforcement Learning Works

对于智能体来说,这将是一个困难的条件,无论它应该向上还是向下移动,因为每个方块的值都相同。所以,上述方法不适合智能体到达目的地。因此,为了解决这个问题,我们将使用贝尔曼方程,这是强化学习背后的主要概念。


贝尔曼方程

贝尔曼方程由数学家理查德·欧内斯特·贝尔曼于1953年引入,因此称为贝尔曼方程。它与动态规划相关,并用于通过包含先前状态的值来计算决策问题在特定点的价值。

它是一种在动态规划或导致现代强化学习的环境中计算价值函数的方法。

贝尔曼方程中使用的关键要素是

  • 智能体执行的动作称为“a”
  • 执行动作后出现的状态为“s”。
  • 每个良好和不良动作获得的奖励/反馈为“R”。
  • 折现因子为Gamma“γ”。

贝尔曼方程可以写成

其中,

V(s)= 在特定点计算的值。

R(s,a) = 在特定状态s通过执行动作获得的奖励。

γ = 折现因子

V(s') = 前一个状态的值。

在上面的方程中,我们取所有值的最大值,因为智能体总是试图找到最优解。

因此,现在,使用贝尔曼方程,我们将找到给定环境中每个状态的值。我们将从目标方块旁边的方块开始。

对于第一个方块

V(s3) = max [R(s,a) + γV(s')],这里 V(s')= 0,因为没有进一步的状态可以移动。

V(s3)= max[R(s,a)]=> V(s3)= max[1]=> V(s3)= 1.

对于第二个方块

V(s2) = max [R(s,a) + γV(s')],这里 γ= 0.9(假设),V(s')= 1,R(s, a)= 0,因为该状态没有奖励。

V(s2)= max[0.9(1)]=> V(s)= max[0.9]=> V(s2) =0.9

对于第三个方块

V(s1) = max [R(s,a) + γV(s')],这里 γ= 0.9(假设),V(s')= 0.9,R(s, a)= 0,因为此状态也没有奖励。

V(s1)= max[0.9(0.9)]=> V(s3)= max[0.81]=> V(s1) =0.81

对于第四个方块

V(s5) = max [R(s,a) + γV(s')],这里 γ= 0.9(假设),V(s')= 0.81,R(s, a)= 0,因为此状态也没有奖励。

V(s5)= max[0.9(0.81)]=> V(s5)= max[0.81]=> V(s5) =0.73

对于第五个方块

V(s9) = max [R(s,a) + γV(s')],这里 γ= 0.9(假设),V(s')= 0.73,R(s, a)= 0,因为此状态也没有奖励。

V(s9)= max[0.9(0.73)]=> V(s4)= max[0.81]=> V(s4) =0.66

考虑下图

Bellman Equation

现在,我们将继续前进到第六个方块,在这里智能体可能会改变路线,因为它总是试图找到最优路径。因此,现在,让我们从火坑旁边的方块开始考虑。

Bellman Equation

现在,智能体有三个移动选项;如果它移动到蓝框,它会感到碰撞;如果它移动到火坑,它将获得-1奖励。但这里我们只考虑积极奖励,因此它只会向上移动。将使用此公式计算完整的方块值。请看下图

Bellman Equation

强化学习的类型

强化学习主要有两种类型,它们是

  • 积极强化
  • 消极强化

积极强化

积极强化学习意味着添加某些东西以增加预期的行为会再次发生的可能性。它对智能体的行为产生积极影响,并增强行为的强度。

这种类型的强化可以长期维持变化,但过度的积极强化可能导致状态过载,从而降低结果。

消极强化

消极强化学习与积极强化相反,因为它通过避免消极条件来增加特定行为会再次发生的可能性。

根据情况和行为,它可能比积极强化更有效,但它只提供强化以满足最低行为。

如何表示智能体状态?

我们可以使用马尔可夫状态来表示智能体状态,它包含来自历史的所有必需信息。状态St是马尔可夫状态,如果它遵循以下条件

P[St+1 | St ] = P[St +1 | S1,......, St]

马尔可夫状态遵循马尔可夫性质,该性质说明未来独立于过去,只能由现在定义。RL在完全可观察的环境中工作,智能体可以观察环境并为新状态采取行动。整个过程称为马尔可夫决策过程,下面将进行解释。


马尔可夫决策过程

马尔可夫决策过程(MDP)用于形式化强化学习问题。如果环境完全可观察,那么它的动态可以建模为马尔可夫过程。在MDP中,智能体不断与环境互动并执行动作;在每个动作中,环境会响应并生成新状态。

Markov Decision Process

MDP用于描述RL的环境,几乎所有RL问题都可以使用MDP进行形式化。

MDP包含一个四元组(S、A、Pa、Ra

  • 有限状态集S
  • 有限动作集A
  • 由于动作a,从状态S转换为状态S'后获得的奖励。
  • 概率Pa

MDP使用马尔可夫性质,为了更好地理解MDP,我们需要了解它。

马尔可夫性质

它说明“如果智能体处于当前状态S1,执行动作a1并移动到状态s2,那么从s1到s2的状态转换仅取决于当前状态,而未来的动作和状态不取决于过去的动作、奖励或状态。”

或者,换句话说,根据马尔可夫性质,当前状态转换不依赖于任何过去的动作或状态。因此,MDP是满足马尔可夫性质的RL问题。例如,在国际象棋游戏中,玩家只关注当前状态,无需记住过去的动作或状态

有限MDP

当状态、奖励和动作都有限时,就是有限MDP。在RL中,我们只考虑有限MDP。

马尔可夫过程

马尔可夫过程是一个无记忆过程,具有一系列随机状态S1、S2、.....、St,它使用马尔可夫性质。马尔可夫过程也称为马尔可夫链,它是一个在状态S和转换函数P上的元组(S,P)。这两个组件(S和P)可以定义系统的动态。


强化学习算法

强化学习算法主要用于AI应用和游戏应用。主要使用的算法有

  • Q-Learning
    • Q学习是一种离策略RL算法,用于时序差分学习。时序差分学习方法是通过比较连续时间预测来完成的。
    • 它学习价值函数Q(S, a),这意味着在特定状态“s”下采取动作“a”有多好。
    • 下面的流程图解释了Q学习的工作原理
Reinforcement Learning Algorithms
  • 状态动作奖励状态动作(SARSA)
    • SARSA代表状态动作奖励状态动作,它是一种同策略的时序差分学习方法。同策略控制方法在学习使用特定策略时,为每个状态选择动作。
    • SARSA的目标是计算Q π (s, a) 对于选定的当前策略π和所有(s-a)对。
    • Q学习和SARSA算法之间的主要区别在于与Q学习不同,在更新表格中的Q值时不需要下一个状态的最大奖励。
    • 在SARSA中,使用决定原始动作的同一策略来选择新的动作和奖励。
    • SARSA之所以得名,是因为它使用了五元组Q(s, a, r, s', a')。其中,
              s:原始状态
              a:原始动作
              r:沿状态行进时观察到的奖励
              s'和a':新状态、动作对。
  • 深度Q神经网络(DQN)
    • 顾名思义,DQN是使用神经网络的Q学习
    • 对于大型状态空间环境,定义和更新Q表将是一项具有挑战性和复杂的任务。
    • 为了解决此类问题,我们可以使用DQN算法。在那里,神经网络不定义Q表,而是为每个动作和状态近似Q值。

现在,我们将扩展Q学习。

Q学习解释

  • Q学习是一种流行的无模型强化学习算法,基于贝尔曼方程。
  • Q学习的主要目标是学习一个策略,该策略可以告知智能体在何种情况下应该采取哪些行动以最大化奖励。
  • 它是一种离策略RL,旨在找到在当前状态下应采取的最佳行动。
  • Q学习中智能体的目标是最大化Q值。
  • Q学习的值可以从贝尔曼方程推导出来。考虑下面的贝尔曼方程
Q-Learning Explanation

在方程中,我们有各种组成部分,包括奖励、折现因子(γ)、概率和结束状态s'。但没有给出任何Q值,所以首先考虑下图

Q-Learning Explanation

在上图中,我们可以看到一个智能体有三个值选项,V(s1)、V(s2)、V(s3)。因为这是MDP,所以智能体只关心当前状态和未来状态。智能体可以朝任何方向(上、左或右)移动,所以它需要决定去哪里才能获得最优路径。这里智能体将根据概率进行移动并改变状态。但是,如果我们想要一些精确的移动,那么为此,我们需要对Q值进行一些更改。请看下图

Q-Learning Explanation

Q-代表每个状态下动作的质量。因此,我们不使用每个状态的值,而是使用状态和动作的对,即Q(s, a)。Q值指定了哪个动作比其他动作更有利可图,根据最佳Q值,智能体采取下一步行动。贝尔曼方程可用于推导Q值。

要执行任何动作,智能体将获得奖励R(s, a),并且它还将最终进入某个状态,因此Q值方程将是

Q-Learning Explanation

因此,我们可以说,V(s) = max [Q(s, a)]

Q-Learning Explanation

上述公式用于估计Q学习中的Q值。

Q学习中的“Q”是什么意思?

Q在Q学习中代表质量,这意味着它指定了智能体所采取动作的质量。

Q表

在执行Q学习时会创建一个Q表或矩阵。该表遵循状态和动作对,即[s, a],并将值初始化为零。每次动作后,都会更新表格,并将q值存储在表格中。

RL智能体使用此Q表作为参考表,根据q值选择最佳动作。


强化学习与监督学习的区别

强化学习和监督学习都是机器学习的一部分,但这两种学习方式截然不同。RL智能体与环境互动,探索它,采取行动并获得奖励。而监督学习算法则从标记数据集中学习,并根据训练预测输出。

RL与监督学习的区别表如下

强化学习监督式学习
RL通过与环境互动来工作。监督学习基于现有数据集工作。
RL算法的工作方式类似于人类在做决定时的思维方式。监督学习就像一个人在指导下学习事物。
不存在标记数据集存在标记数据集。
未向学习智能体提供先前的训练。向算法提供训练,以便它可以预测输出。
RL有助于顺序决策。在监督学习中,在输入时做出决策。

强化学习应用

Reinforcement Learning Applications
  1. 机器人技术
    1. RL用于机器人导航、机器人足球、行走、杂耍等。
  2. 控制
    1. RL可用于自适应控制,例如工厂流程、电信中的接入控制以及直升机飞行员是强化学习的一个例子。
  3. 游戏对弈
    1. RL可用于游戏,例如井字棋、国际象棋等。
  4. 化学
    1. RL可用于优化化学反应。
  5. 商业
    1. RL现在已用于商业战略规划。
  6. 制造业
    1. 在各种汽车制造公司中,机器人使用深度强化学习来拾取货物并将其放入容器中。
  7. 金融行业
    1. RL目前在金融行业用于评估交易策略。

结论

通过以上讨论,我们可以说强化学习是机器学习中最有趣和最有用的部分之一。在RL中,智能体在没有任何人为干预的情况下通过探索环境来探索环境。它是人工智能中使用的主要学习算法。但有些情况下不应使用它,例如,如果您有足够的数据来解决问题,那么其他ML算法可以更有效地使用。RL算法的主要问题是某些参数可能会影响学习速度,例如延迟反馈。