主要内容

强化学习代理

强化学习的目的是训练agent在不确定环境下完成任务。代理接收来自环境的观察和奖励,并向环境发送操作。奖励是衡量一个行动在完成任务目标方面的成功程度。

代理包含两个部分:策略和学习算法。

  • 策略是一种映射,它根据环境中的观察结果选择操作。通常,该策略是一个具有可调参数的函数逼近器,如深度神经网络。

  • 学习算法根据动作、观察和奖励不断更新策略参数。学习算法的目标是找到一个最优策略,使在任务过程中获得的预期累积长期报酬最大化。

根据学习算法,agent保持一个或多个参数化函数逼近器来训练策略。近似器有两种使用方法。

  • 批评人士-对于一个给定的观察和行动,评论家会将该任务长期累积奖励的预期值作为输出。

  • 演员-对于一个给定的观察,一个参与者回报作为输出的行动,最大限度的预期累积长期报酬。

仅使用批评者来选择其行为的代理依赖于间接政策表示。这些代理也被称为价值,他们使用一个近似器来表示一个值函数或q值函数。一般来说,这些代理在离散的行动空间中工作得更好,但对于连续的行动空间来说,计算成本可能会很高。

仅使用参与者来选择其操作的代理依赖于直接的政策表示。这些代理也被称为基于策略的。政策可以是确定性的,也可以是随机的。一般来说,这些代理更简单,可以处理连续的行动空间,尽管训练算法可以敏感的噪声测量,并可以收敛于局部极小值。

同时使用演员和评论家的代理被称为actor-critic代理。在这些代理中,在训练过程中,演员通过从批评者那里获得反馈(而不是直接使用奖励)来学习最佳行动。同时,批评家从奖励中学习到奖励的价值功能,从而对行为人进行恰当的批评。通常,这些代理既可以处理离散的动作空间,也可以处理连续的动作空间。

内置代理

Reinforcement Learning Toolbox™软件提供了以下内置代理程序。您可以使用连续或离散的观察空间和以下行动空间在环境中训练这些代理。

下表总结了所有内置代理的类型、操作空间和表示。对于每个agent,观察空间可以是离散的,也可以是连续的。

内置代理:类型和操作空间

代理 类型 行动空间
q学习的代理(问) 价值 离散
深Q-Network代理(DQN) 价值 离散
撒尔沙代理 价值 离散
政策梯度代理(PG) 基于策略的 离散或连续
Actor-Critic代理(交流) Actor-Critic 离散或连续
近端政策优化代理(PPO) Actor-Critic 离散或连续
深度确定性政策梯度代理(DDPG) Actor-Critic 连续
双延迟深度确定性策略梯度代理(TD3) Actor-Critic 连续
软Actor-Critic代理(囊) Actor-Critic 连续

内置代理:您必须与每个代理一起使用的表示

表示 Q, DQN,撒尔沙 PG AC, PPO DDPG, TD3

价值函数的评论家V(年代),您可以使用它来创建

rlValueRepresentation

X(如果使用基线) X

核反应能量函数评论家问(,),您可以使用它来创建

rlQValueRepresentation

X X X

确定的政策的演员π(S),您可以使用它来创建

rlDeterministicActorRepresentation

X

随机政策演员π(S),您可以使用它来创建

rlStochasticActorRepresentation

X X X

具有默认网络的代理-除Q-Learning和SARSA外,所有代理都支持演员和评论家的默认网络。金宝app您可以根据环境中的观察和操作规范创建具有默认参与者和评论家表示的代理。请执行以下步骤。

  1. 为您的环境创建观察规范。如果您已经有一个环境接口对象,您可以使用以下方法获得这些规范getObservationInfo

  2. 为您的环境创建操作规范。如果您已经有一个环境接口对象,您可以使用以下方法获得这些规范getActionInfo

  3. 如果需要,指定每个可学习层的神经元数,或者是否使用LSTM层。为此,使用rlAgentInitializationOptions

  4. 如果需要,通过为特定代理创建一个选项对象集来指定代理选项。

  5. 使用对应的代理创建功能创建代理。结果代理包含上表中列出的适当的参与者和评论家表示。行动者和评论家使用默认的特定于agent的深度神经网络作为内部近似器。

有关创建actor和批评家函数近似器的更多信息,请参见创建策略和值函数表示

选择“Agent类型”

当选择代理时,最好的做法是从一个更简单(训练更快)的算法开始,它与你的行动和观察空间相兼容。然后,如果较简单的算法不能达到预期效果,您可以逐步尝试更复杂的算法。

  • 离散的行动和观察空间—对于具有离散作用和观察空间的环境,Q-learning agent是最简单的兼容agent,其次是DQN和PPO。

    从左到右的箭头首先显示一个垂直的堆栈,上面是Q-learning代理,底部是SARSA代理,中间是DQN,右边是PPO代理

  • 离散行动空间和连续观察空间-对于具有离散作用空间和连续观察空间的环境,DQN是最简单的兼容剂,其次是PPO。

    箭头显示左边是DQN药剂,右边是PPO药剂

  • 持续的行动空间-对于具有连续行动和观察空间的环境,DDPG是最简单的兼容剂,其次是TD3、PPO、SAC。对于这样的环境,首先尝试DDPG。一般来说:

    • TD3是DDPG的改进版本,更复杂。

    • PPO有更稳定的更新,但需要更多的训练。

    • SAC是生成随机策略的DDPG的改进版本,更复杂。

    箭头显示了一个DDPG代理,后面是一个垂直堆栈,其中TD3代理在顶部,PPO代理在中间,SAC代理在底部。

自定义代理

您还可以通过创建自定义代理,使用其他学习算法对策略进行培训。为此,您需要创建一个自定义代理类的子类,使用一组必需的和可选的方法定义代理行为。有关更多信息,请参见自定义代理

另请参阅

||||||||

相关的话题