强化学习代理
强化学习的目标是训练一个智能体在不确定的环境中完成任务。在每个时间间隔内,代理从环境接收观察结果和奖励,并向环境发送一个动作。奖励是衡量之前的行动(基于之前的状态)在完成任务目标方面的成功程度。
代理包含两个组件:策略和学习算法。
策略是从当前环境观察到要采取的行动的概率分布的映射。在代理内部,策略由具有可调参数和特定近似模型的函数逼近器实现,如深度神经网络。
学习算法根据行动、观察和奖励不断更新策略参数。学习算法的目标是找到一种最优策略,使在任务期间获得的预期累积长期奖励最大化。
根据学习算法的不同,代理维护一个或多个参数化函数逼近器来训练策略。近似器有两种用法。
批评人士-对于一个给定的观察和行动,评论家返回累积长期奖励的预期折现值。
演员-对于一个给定的观察,参与者返回作为输出的行动,(通常)最大化预期的贴现累积长期奖励。
仅使用批评家来选择操作的代理依赖于间接政策代表.这些代理也被称为价值,他们使用近似来表示价值函数(作为观察的函数的价值)或q -值函数(作为观察和行动的函数的价值)。一般来说,这些代理在离散的动作空间中工作得更好,但在连续的动作空间中计算起来会很昂贵。
仅使用参与者来选择其操作的代理依赖于直接政策代表.这些代理也被称为基于策略的.政策可以是确定性的,也可以是随机的。一般来说,这些代理更简单,可以处理连续的动作空间,尽管训练算法对噪声测量很敏感,可以收敛于局部极小值。
同时使用演员和评论家的代理被称为actor-critic代理。在这些代理中,在训练过程中,演员通过从评论家那里获得的反馈(而不是直接使用奖励)来学习采取最佳行动。同时,批评家从奖励中学习价值函数,从而能够恰当地批评演员。通常,这些代理可以处理离散的和连续的动作空间。
内置代理
强化学习工具箱™软件提供以下内置代理。您可以在具有连续或离散观察空间和以下动作空间的环境中训练这些代理。
下表总结了所有内置代理的类型、操作空间和使用的近似器。对于每个主体,观测空间可以是离散的、连续的或混合的。
内置代理:类型和动作空间
代理 | 类型 | 行动空间 | 开/关政策 |
---|---|---|---|
q学习的代理(问) | 价值 | 离散 | Off-policy |
撒尔沙代理 | 价值 | 离散 | 在政策 |
DQN (Deep Q-Network)代理 | 价值 | 离散 | Off-policy |
政策梯度代理(PG) | 基于策略的 | 离散的或连续的 | 在政策 |
Actor-Critic代理(交流) | Actor-Critic | 离散的或连续的 | 在政策 |
深度确定性策略梯度(DDPG)代理 | Actor-Critic | 连续 | Off-policy |
双延迟深度确定性策略梯度代理(TD3) | Actor-Critic | 连续 | Off-policy |
软弱的演员-评论家代理(囊) | Actor-Critic | 连续 | Off-policy |
近端策略优化代理(PPO) | Actor-Critic | 离散的或连续的 | 在政策 |
信任区域策略优化代理(TRPO) | Actor-Critic | 离散的或连续的 | 在政策 |
基于模型的策略优化代理(MBPO) | Actor-Critic | 离散的或连续的 | Off-policy |
内置代理:每个代理使用的近似器
接近者 | Q, dqn, sarsa | PG | Ac ppo trpo | 囊 | DDPG, TD3 |
---|---|---|---|---|---|
价值功能批评家V(年代),您可以使用 |
X(如果使用基线) | X | |||
q值函数临界问(年代,一个),您可以使用 |
X | X | X | ||
多输出q值函数临界问(年代),用于离散的动作空间,您可以使用 |
X | ||||
确定性政策执行者π(年代),您可以使用 |
X | ||||
随机(多oulli)政策参与者π(年代),用于离散的动作空间,您可以使用 |
X | X | |||
随机(高斯)政策参与者π(年代),用于连续动作空间,您可以使用 |
X | X | X |
具有默认网络的代理—除Q-learning和SARSA代理外,所有代理都支持演员和影评人的默认网络。金宝app您可以根据来自环境的观察和操作规范创建具有默认参与者和批评家的代理。要做到这一点,在MATLAB中®命令行,执行以下步骤。
为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用
getObservationInfo
.为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用
getActionInfo
.如果需要,指定每个可学习层中的神经元数量,或者是否使用LSTM层。为此,使用创建代理初始化选项对象
rlAgentInitializationOptions
.如果需要,可以通过为特定的代理创建选项对象集来指定代理选项。该选项对象依次包含
rlOptimizerOptions
对象,为代理参与者或批评者指定优化对象。使用相应的代理创建功能创建代理。生成的代理包含上表中列出的适当的参与者和批评者。行动者和批评家使用默认的特定于主体的深度神经网络作为内部逼近器。
有关创建actor和批评家函数逼近器的更多信息,请参见创建政策和价值功能.
您可以使用强化学习设计器app导入现有环境并交互设计DQN、DDPG、PPO或TD3代理。该应用程序允许您在您的环境中训练和模拟代理,分析仿真结果,细化代理参数,并将代理导出到MATLAB工作区以供进一步使用和部署。有关更多信息,请参见使用强化学习设计器创建代理.
选择座席类型
在选择代理时,最佳实践是从与您的行动和观察空间相适应的更简单(训练起来也更快)的算法开始。然后,如果较简单的算法不能达到预期的效果,您可以逐步尝试更复杂的算法。
离散的活动和观察空间—对于动作和观察空间离散的环境,Q-learning和SARSA是最简单的兼容代理,其次是DQN、PPO和TRPO。
离散的行动空间和连续的观察空间—对于离散动作空间和连续观察空间的环境,DQN是最简单的兼容agent,其次是PPO,最后是TRPO。
连续动作空间—对于有连续动作和观察空间的环境,DDPG是最简单的相容剂,其次是TD3、PPO和SAC,其次是TRPO。对于这样的环境,请先尝试DDPG。一般来说:
TD3是DDPG的改进、更复杂的版本。
PPO有更稳定的更新,但需要更多的培训。
SAC是DDPG的一个改进的、更复杂的版本,它生成随机政策。
TRPO是PPO的一个更复杂的版本,在观测量较少的确定性环境中更稳健。
基于模型的策略优化
如果正在使用非策略代理(DQN、DDPG、TD3、SAC),则可以考虑使用基于模型的策略优化(MBPO)代理。提高你的训练样本效率。MBPO代理包含环境的内部模型,它使用该模型在不与环境交互的情况下生成额外的体验。
在训练过程中,MBPO代理通过与环境的交互产生真实的经验。这些经验用于训练内部环境模型,该模型用于生成额外的经验。然后,训练算法使用真实和生成的经验来更新代理策略。
MBPO代理比无模型代理的样本效率更高,因为模型可以生成大量不同的体验。然而,MBPO代理比无模型代理需要更多的计算时间,因为除了训练基本代理外,它们还必须训练环境模型并生成样本。
有关更多信息,请参见基于模型的策略优化代理.
从代理中提取策略对象
您可以从代理中提取策略对象,然后使用getAction
在给定输入观察的情况下,从策略中产生确定性或随机动作。使用策略对象对于应用程序部署或自定义培训目的非常有用。有关更多信息,请参见创建政策和价值功能.
自定义代理
您还可以通过创建自定义代理来使用其他学习算法训练策略。为此,创建自定义代理类的子类,并使用一组必需和可选方法定义代理行为。有关更多信息,请参见创建自定义强化学习代理.有关自定义训练循环的更多信息,请参见使用自定义训练循环训练强化学习策略.
另请参阅
rlQAgent
|rlSARSAAgent
|rlDQNAgent
|rlPGAgent
|rlDDPGAgent
|rlTD3Agent
|rlACAgent
|rlSACAgent
|rlPPOAgent
|rlTRPOAgent
|rlMBPOAgent