深Q-网络(DQN)算法是一种无模型,在线,离政策的强化学习方法。一个DQN剂是一种基于价值的强化学习剂火车评论家估计退货或将来的回报。DQN是Q学习的一个变种。关于Q学习的更多信息,请参阅Q学习代理。
对于学习代理不同类型的增强的详细信息,请参阅强化学习代理。
DQN代理可以在具有以下观察和操作空间的环境中进行训练。
观测空间 | 操作空间 |
---|---|
连续或离散 | 分离 |
在培训过程中,代理:
在学习过程中的每个时间步上更新批评家属性。
探索了使用的ε-贪婪的探索行动的空间。在每个控制时间间隔的代理选择的概率的随机动作ϵ,否则相对于与概率值函数贪婪地选择一个动作1-ϵ。这个贪心操作是值函数最大的操作。
商店过去的经验采用圆形经验缓冲。代理来更新基于一个小批量的从缓冲器随机取样经验评论家。
为了估计值的功能,DQN剂维持两个函数逼近:
评论家Q(小号,一个) - 批评家需要观察小号和行动一个作为输入和输出的长期奖励的相应期望。
目标评论家问的(小号,一个) - 为了提高优化的稳定性,代理定期更新基于最新的评论家参数值目标评论家。
这两个Q(小号,一个)和问的(小号,一个)具有相同的结构和参数。
有关为价值函数逼近创造评论家的更多信息,请参阅创建策略和价值功能交涉。
当训练结束后,受训值函数逼近存储在评论家Q(小号,一个)。
要创建DQN剂:
创建使用评论家rlQValueRepresentation
对象。
使用指定的代理选项rlDQNAgentOptions
对象。
创建使用代理rlDQNAgent
对象。
DQN代理支持使用反复万博1manbetx深层神经网络作为函数逼近的批评。
DQN剂使用下面的训练算法,他们在每一个时间步更新他们的批评模式。要配置训练算法,使用指定的选项rlDQNAgentOptions
。
初始化评论家Q(小号,一个)与随机参数值θQ和初始化具有相同的值的目标评论家: 。
对于每一个训练时间步长:
对于目前的观察小号,选择随机行动一个概率ϵ。否则,选择批评家值函数最大的动作。
要指定ϵ和它的衰变率,使用EpsilonGreedyExploration
选项。
执行动作一个。观察奖励[R其次观察S”。
存储经验(小号,一个,[R,S”)在经历缓冲区。
随机取样一小批中号经验(小号一世,一个一世,[R一世,S”一世)从经验缓冲区。要指定中号, 使用MiniBatchSize
选项。
如果S”一世是一种终端状态,设置了值函数目标吗ÿ一世至[R一世。否则,将其设置为:
来设置折扣因子γ, 使用DiscountFactor
选项。要使用双DQN,设置UseDoubleDQN
选项真正的
。
更新的损失的一步最小化的评论家参数大号通过所有采样的经验。
根据目标更新方法更新目标评论家参数以获得更多信息,请参见目标更新方法。
更新概率阈值ϵ基于在指定的衰减率选择随机动作EpsilonGreedyExploration
选项。
DQN代理使用下列目标更新方法之一更新它们的目标评论家参数。
平滑-使用平滑因子在每一步更新目标参数τ。要指定平滑因子,使用TargetSmoothFactor
选项。
定期- 周期性地更新目标参数,而不平滑(TargetSmoothFactor = 1
)。要指定更新周期,使用TargetUpdateFrequency
参数。
周期性平滑-定期更新目标参数,保持平滑。
若要配置目标更新方法,请创建rlDQNAgentOptions
对象,并设置TargetUpdateFrequency
和TargetSmoothFactor
如下面的表中所示的参数。
更新方法 | TargetUpdateFrequency |
TargetSmoothFactor |
---|---|---|
平滑(默认) | 1 |
少于1 |
定期 | 比...更棒1 |
1 |
周期性的平滑 | 比...更棒1 |
少于1 |
[1] V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wierstra,和M. Riedmiller,“用深度强化学习玩Atari”,NIPS深度学习研讨会,2013。