当前位置: 首页 > news >正文

湖南网站建设小公司灰色产业推广引流渠道

湖南网站建设小公司,灰色产业推广引流渠道,晋江做任务的网站,龙岩网站设计我们前面了解了DQN网络的一些知识,然而DQN还有一些改进的方法,比如doubleDQN和duelingDQN,我们先来将一下doubleDQN和DQN. 先来对比一下 单一网络 vs. 双重网络 DQN:是一个深度神经网络来估计每个动作的Q值 DDQN:使用两个独立的深度神经网络&#xf…

我们前面了解了DQN网络的一些知识,然而DQN还有一些改进的方法,比如doubleDQN和duelingDQN,我们先来将一下doubleDQN和DQN.

先来对比一下

单一网络 vs. 双重网络

DQN:是一个深度神经网络来估计每个动作的Q值

DDQN:使用两个独立的深度神经网络:一个用于选择动作,一个用于评估动作的价值。这种设计有助于减少Q值的过估计问题。

过估计问题

DQN:由于网络同时负责选择动作和评估动作的价值,可能会导致Q值的过估计,即Q值被高估,这会影响学习稳定性和性能。

DDQN:通过分离选择和评估过程,降低了过低的可能性,因为目标网络不参与动作选择,从而提供一个更稳定的学习目标。

更新机制

DQN:在更新Q值时,直接使用当前网络的输出作为目标Q值。

DDQN:在更新Q值时,使用目标网络的输出作为Q值,而行为网络负责选择动作这种分离有助于提高学习过程的稳定性。

训练稳定性

DQN:由于过估计问题,训练过程中可能会遇到稳定性问题,尤其是在高维状态空间中。

DDQN:通过使用两个网络,通常能够提供更稳定的训练过程,因为它减少了Q值的波动。

应用场景

DQN:适用于状态空间不是特别高维或者问题相对简单的情况。

DDQN:更适合于复杂环境,特别是在需要更精确估计Q值的情况下,如机器人控制、游戏AI等领域。

通俗来讲DDQN就是使用了两个神经网络,一个选择动作,一个评估动作的价值。

这是DDQN的公式,它首先用行为网络选择下一个动作中最大Q值的那个动作,然后在用评估动作的网络评估出目标Q值,然后更新Q值表。

我们来看一下DDQN的代码:我们就看下区别的那部分

多了两个网络。

behavior_net = QNetwork(state_dim, action_dim)
target_net = QNetwork(state_dim, action_dim)

利用行为网络选择动作

def train(episodes):for episode in range(episodes):# 重置环境状态state = env.reset()done = Falsewhile not done:# 选择动作if random.random() < epsilon:action = env.action_space.sample()  # 随机探索else:action = behavior_net(torch.tensor(state, dtype=torch.float32)).max(0)[1].item()  # 利用行为网络选择动作# 执行动作,观察结果new_state, reward, done, _ = env.step(action)# 存储经验experience_replay_buffer.append((state, action, reward, new_state, done))# 移动到下一个状态

计算目标Q值和当前Q值。

 # 计算目标 Q 值with torch.no_grad():target_q_values = target_net(new_state).max(1)[0] * gamma * (1 - done) + reward# 计算当前 Q 值current_q_values = behavior_net(no_state).gather(1, action)

这些就是和DQN网络的区别,其实改动也不是很大。但是很好地解决了Q值过估计的问题。

然后看下duelingDQN

网络结构

DQN:使用一个深度神经网络来近似Q函数,网络的输出是每个可能动作的Q值

duelingDQN:在DQN的基础上引入了决斗机制,将状态值函数(V函数)和优势函数(A函数)分开估计。网络的输出包括状态值和每个动作的优势值。

目标Q值的计算

DQN:可能导致Q值的过估计

duelingDQN:目标Q值计算为 reward + gamma * (V(next_state) + A(next_state, action) - V(current_state)),这里 V(next_state) 是下一个状态的状态值,A(next_state, action) 是在下一个状态下采取某个动作的优势值。这种分解可以更稳定地估计Q值。

更新机制

DQN:Q值更新直接依赖于下一个状态的最大Q值,这可能导致训练过程中的不稳定性。

duelingDQN:Q值更新考虑了状态值和优势值的差,这有助于减少Q值的过估计,提高训练的稳定性。

优势函数

DQN:不显式地使用优势函数。

duelingDQN:明确地使用优势函数来表示在给定状态下某个动作相对于其他动作的相对优势。

应用场景

DQN:适用于状态和动作空间不是特别大的问题。

duelingDQN:由于其更稳定的Q值估计,Dueling DQN在处理高维状态空间和动作空间的问题时表现更好。

我们来看下duelingDQN区别的代码

创建值函数网络,和优势函数网络

self.V = nn.Linear(128, 1)  # Value stream
self.A = nn.Linear(128, n_actions)  # Advantage stream

前向传播时将优势函数减去其均值,以稳定训练。

def forward(self, x):# ...return V + (A - A.mean(dim=1, keepdim=True))  # Q = V + (A - mean(A))

总结:Dueling DQN算法的关键创新在于将状态值和优势分开估计,并通过减去优势函数的均值来计算Q值,这与传统DQN算法中直接输出每个动作的Q值是不同的。这种结构有助于提高学习效率和性能,尤其是在具有不同价值状态的情况下。

http://www.yidumall.com/news/69362.html

相关文章:

  • 视频网站制作教程视频网络营销和直播电商专业学什么
  • 青岛公司网站建设seo网站分析
  • 网站优化建设苏州电商网站运营
  • wordpress快速发文插件惠州百度关键词优化
  • 网站建设 推神网络小说排行榜2020前十名
  • t恤在线设计网站优化营商环境建议
  • 做的单页html怎么放网站如何制作小程序
  • 模板网站外链做不起来营销型网站建设模板
  • 怎么做自己的门户网站优化网络的软件下载
  • 济南做网站互联网公司域名注册平台哪个好
  • 谷歌网站优化工具ttkefu在线客服系统官网
  • 必应网站收录提交入口灰色词排名上首页
  • 深圳宝安医院的网站建设专业网站seo推广
  • 服务好的高端网站建设报价抖音宣传推广方案
  • 网站建设实训总结200湛江百度网站快速排名
  • 有关天猫网站开发的论文域名查询站长工具
  • 软件技术服务包括哪些内容网站功能优化
  • 网页制作与网站建设教程视频教程app推广80元一单
  • 一般网站建设费用预算搜狗收录入口
  • 网页设计网站模板网站建设网页模板下载词爱站的关键词
  • 网站建设域名所有权seo教程下载
  • 阳城做网站东莞网络营销代运营
  • 创建网站的六个步骤百度建站平台官网
  • 深圳做个网站要多少钱如何在百度推广自己的产品
  • 预订网站模板百度官方推广
  • 网站的定位分析微信朋友圈推广文案
  • 南通网站建设技术支持哪里有营销策划培训班
  • 做第三方网站注意什么软文标题写作技巧
  • 做网站语言排名2018网站如何做seo推广
  • 西安微信网站建设公司网站品牌推广公司