当前位置: 首页 > 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.yayakq.cn/news/363341/

相关文章:

  • 建立简单网站制作一个网页的步骤
  • 仿站小工具怎么用公司员工培训方案
  • 河北区网站建设表白网页链接大全
  • 济南行知网站建设wordpress自定义404
  • 网站建设 话术如何用dreamer做网站
  • 服务器网站怎么做的免费自助建站软件
  • 做网站加班多吗建外贸商城网站
  • 一个公司名可以备案多少个网站织梦可以仿所有网站吗
  • dw网站建设的心得体会国内最厉害的公关团队
  • 惠城网站制作优化营商环境存在问题及整改措施
  • 郑州做网站的公司msgg手机写代码的软件
  • 雄县哪里有建设网站的asp网站做文件共享上传
  • 网站二级导航制作免费虚拟机安卓版
  • 网站首页做一点开有动画网店推广方法和技巧
  • 网站建设服务宗旨安新seo优化排名网站
  • 做vi设计的网站网站建设 牛商网
  • 公司网站链接怎么弄有什么网站专做买生活污水设备
  • 成都信用体系建设网站佛山做网站yunzhanfs
  • 周口微网站制作西安专业网络推广公司
  • 保定网站优化公司app软件开发公司如何选择
  • 宣传不网站dede做视频网站
  • 专门做二手书的网站视频网站开发价格
  • lng企业自建站杨青个人博客wordpress
  • 龙文网站建设潍坊建设厅网站
  • 云南电商网站开发网站策划与制作
  • 惠州个人做网站联系人详细网站设计需求表
  • 怎么做百度网盘链接网站龙岩抖音seo搜索排名
  • 做网站推广的 什么是开户云服务器怎么用
  • 网站开发所需的费用南宁手机网站建设
  • 广告模板网站用windows搭建手机网站