深Q-网络(DQN)算法是一种无模型,在线,离政策的强化学习方法。一个DQN剂是一种基于价值的强化学习剂火车评论家估计退货或将来的回报。DQN是Q学习的一个变种。关于Q学习的更多信息,请参阅Q学习代理.
对于学习代理不同类型的增强的详细信息,请参阅强化学习代理.
DQN代理可以在具有以下观察和行动空间的环境中进行培训。
观测空间 | 操作空间 |
---|---|
连续或离散 | 离散的 |
DQN代理使用以下批评表示。
评论家 | 演员 |
---|---|
核反应能量函数评论家问:(S.那一种),您创建一个使用 |
DQN代理不使用参与者。 |
培训期间,代理人:
在学习过程中的每个时间步骤更新批评家属性。
使用贪心探索探索行动空间。在每个控制区间内,代理要么选择一个随机行动的概率ϵ或者对概率为1-的值函数贪婪地选择一个动作ϵ.这种贪婪行为是价值函数最大的行为。
存储过去采用圆形经验缓冲经验。代理来更新基于一个小批量的从缓冲器随机取样经验评论家。
为了估计值的功能,DQN剂维持两个函数逼近:
评论家问:(S.那一种|ϕ) - 评论家,具有参数ϕ需要观察S.和行动一种作为输入并返回相应的长期回报期望。
目标评论家问:T.(S.那一种|ϕT.) - 为了改善优化的稳定性,该代理周期性地更新设定目标评论家参数ϕT.给最新的批评家参数值。
这两个问:(S.那一种) 和问:T.(S.那一种)具有相同的结构和参数化。
有关创建值函数近似的批评家的更多信息,请参见创建策略和价值功能交涉.
当训练结束后,受训值函数逼近存储在评论家问:(S.那一种)。
您可以在MATLAB中创建和培训DQN代理®命令行或使用强化学习设计应用程序。
有关使用创建代理的详细信息强化学习设计, 看创建代理使用强化学习设计.
在命令行,你可以创建基于来自环境的观察和操作规范的评论家表示的DQN剂。要做到这一点,请执行下列步骤。
为您的环境创建观察规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getObservationInfo
.
为您的环境创建操作规范。如果您已经有了一个环境接口对象,您可以使用以下方法获取这些规范getActionInfo
.
如果需要,指定每个可学习层的神经元数量或是否使用LSTM层。为此,使用以下方法创建代理初始化选项对象rlAgentInitializationOptions
.
如果需要,使用rlDQNAgentOptions
对象。
创建使用代理rlDQNAgent
对象。
或者,你可以创建演员和评论家表示,用这些表示来创建你的代理人。在这种情况下,保证了演员和评论家表示的输入和输出的尺寸相符的环境相应的动作和观察指标。
创建使用评论家rlQValueRepresentation
对象。
使用指定的代理选项rlDQNAgentOptions
对象。
创建使用代理rlDQNAgent
对象。
DQN代理支持使用反复金宝app深层神经网络作为函数逼近的批评。
有关创建函数逼近的演员和评论家的更多信息,请参阅创建策略和价值功能交涉.
DQN剂使用下面的训练算法,他们在每一个时间步更新他们的批评模式。要配置训练算法,使用指定的选项rlDQNAgentOptions
对象。
初始化评论家问:(S.那一种)与随机参数值ϕ和初始化目标评论家参数ϕT.有相同的价值观: .
对于每一个训练时间步长:
对于目前的观察S.,选择随机行动一种概率ϵ.否则,选择批评家价值作用最大的行动。
要指定ϵ和它的衰变率,使用EpsilonGreedyExploration
选项。
执行动作一种.观察奖励R.其次观察S”.
存储经验(S.那一种那R.那S”)在经历缓冲区。
随机取样一小批m经验(S.一世那一种一世那R.一世那S”一世)从经验缓冲区。要指定m, 使用MiniBatchSize
选项。
如果S”一世是终端状态,设定值函数的目标吗y一世到R.一世.否则,将其设置为
设置折扣率γ, 使用DiscountFactor
选项。要使用双DQN,设置UseDoubleDQN
选项真正的
.
更新的损失的一步最小化的评论家参数L.所有抽样的经验。
根据目标更新方法更新目标批评家参数更多信息,请参见目标更新方法.
更新概率阈值ϵ用于选择一个基于你指定的衰减率的随机动作EpsilonGreedyExploration
选项。
DQN代理使用以下目标更新方法之一更新它们的目标批评者参数。
平滑-使用平滑因子在每个时间步骤更新目标参数τ.要指定平滑因子,使用TargetSmoothFactor
选项。
定期定期更新目标参数,不需要平滑(TargetSmoothFactor = 1
)。要指定更新周期,使用TargetUpdateFrequency
范围。
周期性的平滑—定期平滑更新目标参数。
要配置目标更新方法,请创建rlDQNAgentOptions
对象,并设置TargetUpdateFrequency
和TargetSmoothFactor
如下面的表中所示的参数。
更新方法 | TargetUpdateFrequency |
TargetSmoothFactor |
---|---|---|
平滑(默认) | 1 |
少于1 |
定期 | 比...更棒1 |
1 |
周期性的平滑 | 比...更棒1 |
少于1 |
Mnih, Volodymyr, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra和Martin Riedmiller。“用深度强化学习玩雅达利。”的arXiv:1312.5602 [铯]12月19日,2013https://arxiv.org/abs/1312.5602.