主要内容

深Q-Network代理

深度q -网络(DQN)算法是一种无模型、在线、非策略的强化学习方法。DQN代理是一种基于价值的强化学习代理,它训练批评者来估计回报或未来的回报。DQN是q学习的一种变体。有关Q-learning的更多信息,请参见q学习的代理

有关不同类型的强化学习代理的更多信息,请参见强化学习代理

DQN代理可以在具有以下观察和行动空间的环境中进行培训。

观察太空 行动空间
连续的还是离散的 离散

DQN代理使用以下批评家表示法。

评论家 演员

Q值函数批评家年代,一个),您可以使用rlQValueRepresentation

DQN代理不使用参与者。

在培训期间,代理人:

  • 在学习过程中的每个时间步更新批评家属性。

  • 使用epsilon贪婪探索探索动作空间。在每个控制间隔期间,代理或者以概率选择一个随机动作ϵ或以概率1贪婪地选择关于值函数的动作-ϵ.此贪婪操作是值函数最大的操作。

  • 使用循环体验缓冲区存储过去的体验。代理根据从缓冲区中随机抽取的一小批经验更新批评家。

评论家函数

为了估计值函数,DQN代理维护两个函数近似器:

  • 评论家年代,一个|ϕ)——有参数的批评家ϕ,进行观察年代和行动一个作为输入并返回相应的长期回报预期。

  • 目标评论家t年代,一个|ϕt)—为了提高优化的稳定性,agent定期更新设置目标批评家参数ϕt到最新的批评家参数值。

二者都年代,一个),t年代,一个)具有相同的结构和参数化。

有关为值函数近似创建批评者的详细信息,请参见创建策略和价值功能表示

当训练完成时,将训练的值函数近似器存储在批评家中年代,一个).

代理创建

您可以在MATLAB中创建和培训DQN代理®命令行或使用强化学习设计师应用程序。

有关使用强化学习设计师,请参阅使用强化学习设计器创建代理

在命令行中,您可以创建一个DQN代理,该代理具有基于环境的观察和操作规范的批评表示。为此,请执行以下步骤。

  1. 为您的环境创建观察规范。如果您已经有环境接口对象,则可以使用获取这些规范获取观测信息

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

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

  4. 如果需要,请使用rlDQNAgentOptions对象

  5. 使用rlDQNAgent对象

或者,您可以创建参与者和批评者表示,并使用这些表示创建您的代理。在这种情况下,确保参与者和批评者表示的输入和输出维度与环境的相应操作和观察规范相匹配。

  1. 创建一个批评家使用rlQValueRepresentation对象

  2. 指定代理选项rlDQNAgentOptions对象

  3. 使用rlDQNAgent对象

DQN代理支持使用递归金宝app深度神经网络作为函数近似器的批评者。

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

训练算法

DQN代理使用如下的训练算法,在每个时间步更新他们的批评模型。要配置训练算法,请使用rlDQNAgentOptions对象

  • 初始化批评年代,一个),使用随机参数值ϕ,并初始化目标批评家参数ϕt具有相同的值: ϕ t ϕ

  • 对于每个训练时间步:

    1. 对于当前的观测年代,选择一个随机动作一个的概率ϵ。否则,请选择临界值函数最大的动作。

      一个 参数 最大值 一个 年代 , 一个 | ϕ

      指定ϵ和它的衰减率,用EpsilonGreedyExploration选择。

    2. 执行操作一个1.遵守奖励R还有下一个观察年代

    3. 储存经验(年代,一个,R,年代)在经验缓冲区中。

    4. 随机抽取一小批样品经验(年代,一个,R,年代)从经验缓冲区。指定,可以使用小批量选择。

    5. 如果年代是终端状态,设置值函数目标yR.否则,设置为

      一个 最大值 参数 最大值 一个 年代 , 一个 | ϕ y R + γ t 年代 , 一个 最大值 ϕ t DQN y R + γ 最大值 一个 t 年代 , 一个 | ϕ t DQN

      设置折扣系数的步骤γ,可以使用DiscountFactor选择。要使用双DQN,请设置useddoubledqn选择符合事实的

    6. 通过一步最小化损失来更新批评家参数l在所有抽样的经历中。

      l 1 1 y 年代 , 一个 | ϕ 2

    7. 根据目标更新方法更新目标批评家参数。有关详细信息,请参阅目标更新方法

    8. 更新概率阈值ϵ用于根据在中指定的衰减率选择随机动作EpsilonGreedyExploration选择。

目标更新方法

DQN代理使用以下目标更新方法之一更新其目标批评家参数。

  • 平滑的-使用平滑因子在每个时间步更新目标参数τ.要指定平滑因子,请使用TargetSmoothFactor选择。

    ϕ t τ ϕ + 1 τ ϕ t

  • 周期-定期更新目标参数而不进行平滑(TargetSmoothFactor = 1).要指定更新周期,请使用TargetUpdateFrequency参数。

  • 周期平滑-使用平滑定期更新目标参数。

要配置目标更新方法,请创建rlDQNAgentOptions对象,并设置TargetUpdateFrequencyTargetSmoothFactor参数如下表所示。

更新方法 TargetUpdateFrequency TargetSmoothFactor
平滑(默认) 1 不到1
周期 大于1 1
周期平滑 大于1 不到1

工具书类

[1] Mnih、Volodymyr、Koray Kavukcuoglu、David Silver、Alex Graves、Ioannis Antonoglou、Daan Wierstra和Martin Riedmiller。“通过深度强化学习玩Atari。”ArXiv: 1312.5602 (Cs)2013年12月19日。https://arxiv.org/abs/1312.5602

另请参阅

|

相关话题