强化学习的目标是训练agent在不确定环境下完成任务。代理从环境中接收观察和奖励,并向环境发送动作。奖励是衡量一个行动在完成任务目标方面的成功程度。
代理包含两个组件:策略和学习算法。
该策略是一个映射,可以根据环境的观察选择动作。通常,该策略是具有可调参数的函数近似器,例如深神经网络。
学习算法根据操作,观察和奖励连续更新策略参数。学习算法的目标是找到最佳策略,以最大化任务期间收到的预期累积长期奖励。
根据学习算法,agent维护一个或多个参数化函数近似器来训练策略。近似器有两种使用方法。
批评者- 对于给定的观察和行动,批评者将返回作为任务累积长期奖励的预期价值。
演员- 对于给定的观察,演员返回为输出最大化预期累积长期奖励的操作。
仅使用批评者来选择其行动的代理依赖于一个间接政策表示。这些药剂也被称为价值,它们使用近似值表示值函数或Q值函数。通常,这些代理使用离散动作空间更好地工作,但可以对连续动作空间进行计算昂贵。
仅使用演员的代理选择他们的行为依赖于直接政策代表。这些药剂也被称为基于政策的。策略可以是确定性的或随机的。通常,这些代理更简单,可以处理连续的动作空间,尽管训练算法对噪声测量敏感并且可以在局部最小值上收敛。
使用演员和批评者的代理商被称为演员评论家代理。在这些代理中,在训练过程中,行动者通过评论家的反馈(而不是直接使用奖励)来学习最佳行动。同时,评论家从奖励中学习价值功能,从而能够恰当地批评行为人。一般来说,这些代理既可以处理离散的动作空间,也可以处理连续的动作空间。
Reinforcement Learning Toolbox™软件提供以下内置代理。您可以在具有连续或离散观察空间和以下操作空间的环境中训练这些代理。
以下表总结了所有内置代理的类型,操作空间和表示。对于每个代理,观察空间可以是离散的或连续的。
内置代理:类型和动作空间
代理 | 类型 | 行动空间 |
---|---|---|
Q学习代理(q) | 价值为基础 | 离散 |
深度Q-Network代理商(DQN) | 价值为基础 | 离散 |
萨拉代表 | 价值为基础 | 离散 |
政策梯度代理(PG) | 基于政策的 | 离散或连续 |
演员批评者(交流) | 演员评论家 | 离散或连续 |
近端政策优化代理(PPO) | 演员评论家 | 离散或连续 |
深度确定性策略梯度代理(DDPG) | 演员评论家 | 连续 |
双延迟深度确定性策略梯度代理(TD3) | 演员评论家 | 连续 |
软演员批评者(囊) | 演员评论家 | 连续 |
内置代理:表示您必须与每个代理一起使用的表示
表示 | Q, DQN,撒尔沙 | PG | AC,PPO. | 囊 | DDPG,TD3. |
---|---|---|---|---|---|
价值函数的评论家v(s),您创建使用 |
x(如果使用基线) | X | |||
核反应能量函数评论家q(s,a),您创建使用 |
X | X | X | ||
确定的政策的演员π(S),您创建使用 |
X | ||||
随机政策演员π(S),您创建使用 |
X | X | X |
具有默认网络的代理- 除Q-Learning和Sarsa外,所有代理商都支持默认网络的演员和批评者。金宝app您可以根据来自环境的观察和操作规范创建具有默认Actor和批评者表示的代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getObservationInfo
。
为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getActionInfo
。
如果需要,指定每个可学习层的神经元数量或是否使用LSTM层。为此,使用以下方法创建代理初始化选项对象rlagentinitializationOptions.
。
如果需要,可以通过为特定代理创建选项对象集来指定代理选项。
使用相应的代理创建函数创建代理。生成的代理包含上表中列出的适当的参与者和评论家表示。行动者和评论家使用默认的特定于agent的深度神经网络作为内部近似器。
有关创建演员和批评功能近似器的更多信息,请参阅创建策略和值函数表示。
选择代理时,最佳实践是以更简单(更快的训练)算法开始,该算法与您的动作和观察空间兼容。然后,如果更简单的不如需要,则可以尝试逐步复杂的算法。
离散的行动和观察空间—对于动作和观察空间离散的环境,Q-learning agent是最简单的兼容agent,其次是DQN和PPO。
离散动作空间和连续观察空间-对于作用空间离散、观察空间连续的环境,DQN是最简单的相容剂,PPO次之。
持续的行动空间-对于具有连续作用和观察空间的环境,DDPG是最简单的相容剂,其次是TD3、PPO和SAC。对于这样的环境,请首先尝试DDPG。一般来说:
TD3是一种改进的更复杂的DDPG版本。
PPO有更稳定的更新,但需要更多的培训。
SAC是一个改进的、更复杂的DDPG版本,可以生成随机政策。
您还可以通过创建自定义代理使用其他学习算法培训策略。为此,您创建了自定义代理类的子类,使用一组必需和可选方法定义代理行为。有关更多信息,请参阅自定义代理。
rlacagent.
|rlddpgagent.
|rlDQNAgent
|rlPGAgent
|rlppoagent.
|rlqagent.
|rlsacagent.
|rlsarsaagent.
|rltd3agent.