强化学习 | D3QN原理及代码实现

本文介绍了Dueling DQN和Double DQN,并详细阐述了D3QN(Dueling Double DQN)的算法流程与参数调优。通过结合两者的优点,D3QN在强化学习中能更准确地估算Q值。文章还分享了简单的D3QN代码实现,探讨了网络结构、内存管理、超参数设置等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文首发于:行者AI

2016年Google DeepMind提出了Dueling Network Architectures for Deep Reinforcement Learning,采用优势函数advantage function,使Dueling DQN在只收集一个离散动作的数据后,能够更加准确的去估算Q值,选择更加合适的动作。Double DQN,通过目标Q值选择的动作来选择目标Q值,从而消除Q值过高估计的问题。D3QN(Dueling Double DQN)则是结合了Dueling DQN和Double DQN的优点。

1. Dueling DQN

决斗(Dueling)DQN,网络结构如图1所示,图1中上面的网络为传统的DQN网络。图1中下面的网络则是Dueling DQN网络。Dueling DQN网络与传统的DQN网络结构的区别在于Dueling DQN的网络中间隐藏层分别输出value函数 V V V和advantage function优势函数 A A A,通过: Q ( s , a ; θ , α , β ) = V ( s ; θ , β ) + Q(s,a;\theta,\alpha,\beta) = V(s;\theta,\beta) + Q(s,a;θ,α,β)=V(s;θ,β)+ ( A ( s , a ; θ , α ) (A(s,a;\theta,\alpha) (A(s,a;θ,α) - 1 ∣ A ∣ 1 \over |A| A1 ∑ A ( s , a ′ ; θ , α ) ) \sum_{} A(s,a′;\theta,\alpha) ) A(s,a;θ,α))计算出各个动作对应的Q值。

图1. Dueling DQN网络结构

2. D3QN

Double DQN只在DQN的基础上有一点改动,就不在这儿介绍了,如果对DQN还不了解的话,可以戳这里

2.1 D3QN算法流程
  • 初始化当前 Q Q Q网络参数 θ \theta θ,初始化目标 Q ′ Q^′ Q网络参数 θ ′ \theta^′ θ,并将 Q Q Q网络参数赋值给 Q ′ Q^′ Q网络, θ → θ ′ \theta \to \theta^′ θθ,总迭代轮数 T T T,衰减因子 γ \gamma γ,探索率 ϵ \epsilon ϵ,目标Q网络参数更新频率 P P P,每次随机采样的样本数 m m m

  • 初始化replay buffer D D D

  • for t = 1 t = 1 t=

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值