主要内容

强化学习代理

强化学习的目标是训练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外的所有代理都支持默认的演员和评论家网络。万博1manbetx您可以根据环境中的观察和操作规范,创建具有默认参与者和评论家表示的代理。为此,请执行以下步骤。

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

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

  3. 如果需要,指定每个可学习层的神经元数量或是否使用LSTM层。为此,使用以下方法创建代理初始化选项对象rlAgentInitializationOptions

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

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

有关创建actor和critic函数近似器的更多信息,请参见创建策略和价值功能表示

选择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代理。

自定义代理

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

另请参阅

||||||||

相关的话题