当前位置: 首页 > 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.khdw.cn/news/35043.html

相关文章:

  • php网站开发哪个培训学校好百度地图下载2022新版安装
  • 盐城网站建设24gx全球疫情今天最新消息
  • 东莞网站建设百度地图百度搜索收录入口
  • 中国建盏logoseo的培训网站哪里好
  • 基于web旅游网站的建设百度手机
  • 网站开发课程设计报告整合营销推广
  • 哈尔滨门户网站制作哪家好网站域名在哪里查询
  • 除了wordpress还有什么可以建站宁波优化网页基本流程
  • 图片站 wordpress产品运营推广方案
  • 用源码做网站济南网站建设哪家专业
  • wordpress hero theme云优化seo软件
  • 上海网页设计是什么博客seo优化技术
  • 做金融培训的网站好的营销网站设计公司
  • h5网站开发潍坊seo招聘
  • wordpress 焦点图网站优化软件费用
  • 快速的网站建设汕头网站设计
  • 网站服务器 要求北京sem
  • 网站设计公司 上二十条优化措施原文
  • 网站怎么做微博链接软文营销的五大注意事项
  • 网站搜索框设计google play 应用商店
  • 网站建设公司有哪些内容世界羽联巡回赛总决赛
  • 来宾网站制作十大免费无代码开发软件
  • 网站建设中遇到的问题怎么自己制作网站
  • 给公司做门户网站多少钱今日最新国际新闻头条
  • 乌鲁木齐城乡建设委员会的网站江苏seo网络
  • 想做一个自己的网站怎么做爱站工具包
  • 能够做数据地图的网站推广公司有哪些公司
  • 阿里云服务器官网登录入口seo推广具体做什么
  • 天猫网站左侧导航用js怎么做软文代写服务
  • 绍兴 网站建设百度云服务器官网