深度强化学习——Dueling-DDQN

联系方式:860122112@qq.com

深度双Q网络(DDQN)基于竞争构架Q网络(Dueling-DQN)都是DQN的改进版本,前者是对DQN训练算法的改进,后者是对DQN模型结构的改进。

一、DDQN

论文(Hasselt等人)发现并证明了传统的DQN普遍会过高估计Action的Q值,而且估计误差会随Action的个数增加而增加。如果高估不是均匀的,则会导致某个次优的Action高估的Q值超过了最优Action的Q值,永远无法找到最优的策略。作者在他2010年提出的Double Q-Learning的基础上,将该方法引入了DQN中。具体操作是对要学习的Target Q值生成方式进行修改,原版的DQN中是使用TargetNet产生Target Q值,即

TargetQ=r+γmaxaQ(s,a;θi)
其中 θi 是TargetNet的参数。

在DDQN中,先用MainNet找到 maxaQ(s,a;θi) 的Action( θi 是MainNet的参数),再去TargetNet中找到这个Action的Q值以构成Target Q值,这个Q值在TargetNet中不一定是最大的,因此可以避免选到被高估的次优Action。最终要学习的Loss Function为:

L(θ)=E[(TargetQQ(s,a;θi))2]

TargetQ=r+γQ(s,maxaQ(s,a;θi);θi)

除此之外,其他设置与DQN一致。实验表明,DDQN能够估计出更准确出Q值,在一些Atari2600游戏中可获得更稳定有效的策略。

Loss Function 的构造流程图
这里写图片描述

二、Dueling-DQN

在许多基于视觉的感知的DRL任务中,不同的状态动作对的值函数是不同的,但是在某些状态下,值函数的大小与动作无关。根据以上思想,Wang等人提出了一种竞争网络结构(dueling network)作为DQN的网络模型。

先来看结构

这里写图片描述

如上图所示,第一个模型是一般的DQN网络模型,即输入层接三个卷积层后,接两个全连接层,输出为每个动作的Q值。

而(第二个模型)竞争网络(dueling net)将卷积层提取的抽象特征分流到两个支路中。其中上路代表状态值函数 V(s) ,表示静态的状态环境本身具有的价值;下路代表依赖状态的动作优势函数 A(a) (advantage function),表示选择某个Action额外带来的价值。最后这两路再聚合再一起得到每个动作的Q值。
这里写图片描述

这种竞争结构能学到在没有动作的影响下环境状态的价值 V(s) 。如下图,在训练过程中,上下两行图表示不同时刻,左右两列表示属于 V(s) A(a) ,(通过某种方法处理后)图中红色区域代表 V(s) A(a) 所关注的地方。 V(s) 关注于地平线上是否有车辆出现(此时动作的选择影响不大)以及分数; A(a) 则更关心会立即造成碰撞的车辆,此时动作的选择很重要。
这里写图片描述

公式:
状态价值函数表示为

V(s;θ,β)

动作优势函数表示为
A(s,a;θ,α)

动作Q值为两者相加
Q(s,a;θ,α,β)=V(s;θ,β)+A(s,a;θ,α)

其中 θ 是卷积层参数, β α 是两支路全连接层参数。
而在实际中,一般要将动作优势流设置为单独动作优势函数减去某状态下所有动作优势函数的平均值
Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)1|A|aA(s,a;θ,α))

这样做可以保证该状态下各动作的优势函数相对排序不变,而且可以缩小 Q 值的范围,去除多余的自由度,提高算法稳定性。

论文中dueling net结合了DDQN以及优先级采样(Prioritized Experience Replay)的训练方式。

Prioritized Experience Replay
简单来说,经验池中TD误差( r+γmaxaQ(s,a;θ)Q(s,a;θ) )绝对值越大的样本被抽取出来训练的概率越大,加快了最优策略的学习。

实验证明,Dueling-DDQN估计的值函数更加精确。在频繁出现 agent 采取不同动作但对应值函数相等的情形下,Dueling-DDQN优势最明显。

参考文献
[1]Deep Reinforcement Learning with Double Qlearning
[2]Dueling Network Architectures for Deep Reinforcement Learning
[3]深度强化学习综述_刘全等


### DQN 和 DDQN 算法原理图解释 #### 一、DQN算法原理概述 DQN(Deep Q-Network),作为深度强化学习领域的重要里程碑之一,旨在通过深层神经网络来近似Q函数,从而解决传统Q-Learning在面对高维输入空间时遇到的问题。具体而言,在给定环境的状态下,DQN能够评估采取不同行动所能获得的长期奖励期望值,即所谓的Q值[^2]。 对于每一个时间步t,智能体会观察到当前所处的状态s_t,并据此选取一个动作a_t;之后依据选定的动作与外界互动进而转移到新的状态s_{t+1},同时得到即时反馈r_t。此过程中的核心在于利用经验回放机制以及固定的目标网络来稳定训练过程,减少更新过程中可能出现的数据关联性和分布偏移问题[^3]。 ```mermaid graph LR; A[Start] --> B{Observe State s}; B --> C[Select Action a]; C --> D[Execute action, receive reward r and next state s']; D --> E[Store transition (s,a,r,s') in replay memory]; E --> F{Sample random minibatch of transitions from replay memory}; F --> G[Update the network weights using gradient descent]; G --> H[Periodically update target network parameters]; H --> I[Repeat until convergence or termination condition met]; ``` 上述流程展示了标准版DQN的工作方式,其中包含了几个关键组件: - **Experience Replay(经验回放)**:为了打破数据间的序列依赖关系,提高样本利用率; - **Target Network(目标网络)**:用于提供更稳定的TD Target估计,缓解频繁参数调整带来的波动影响。 #### 二、DDQN算法改进之处 尽管DQN取得了显著成就,但它仍然存在一定程度上的过估计现象——倾向于过高估计某些行为的价值。为此,Double DQN/DDQN应运而生,它继承了原有框架下的大部分设计思路和技术手段,但在计算目标Q值方面做出了重要变革。不同于原始版本仅依靠单一模型来进行最大化操作的选择,DDQN引入了一个额外步骤,先由在线网络挑选出最佳策略对应的动作,再借助于较慢变化的目标网络去评价这个被选中动作的真实价值,以此达到降低偏差的目的[^1]。 ```mermaid graph TB; subgraph "Online Network" direction TB A((State))-.->B[Choose best action 'a' based on current policy] end subgraph "Target Network" C[(Evaluate chosen action's value)] end A -.->|Action selected by Online Net| C E[Reward + γ * max_a'(Q(s',a';θ^-))] style A fill:#f96,stroke:#333,stroke-width:4px style C fill:#bbf,stroke:#000,stroke-width:4px linkStyle 0 stroke:#f66,stroke-width:2px ``` 在这张简化图表里,左侧代表的是基于最新权重θ的线上决策制定者(Online Network),负责决定哪个动作最有可能带来最大回报;右侧则是相对固定的参照系(Target Network),专门用来衡量那个特定选项究竟有多好。两者协作完成了一次完整的迭代周期内的价值评估工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值