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