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

中卫网站设计公司排名最便宜的购物app

中卫网站设计公司排名,最便宜的购物app,免费ftp转换wordpress,wordpress手动安装插件Double DQN算法 问题 DQN 算法通过贪婪法直接获得目标 Q 值#xff0c;贪婪法通过最大化方式使 Q 值快速向可能的优化目标收敛#xff0c;但易导致过估计Q 值的问题#xff0c;使模型具有较大的偏差。 即#xff1a; 对于DQN模型, 损失函数使用的 Q(state) reward Q(ne…Double DQN算法 问题 DQN 算法通过贪婪法直接获得目标 Q 值贪婪法通过最大化方式使 Q 值快速向可能的优化目标收敛但易导致过估计Q 值的问题使模型具有较大的偏差。 即 对于DQN模型, 损失函数使用的 Q(state) reward Q(nextState)max Q(state)由训练网络生成, Q(nextState)max由目标网络生成 这种损失函数会存在问题即当Q(nextState)max总是大于0时那么Q(state)总是在不停的增大同时Q(nextState)max也在不断的增大, 即Q(state)存在被高估的情况。 作者采用 Double DQN 算法解耦动作的选择和目标 Q 值的计算以解决过估计 Q 值的问题。 Double DQN 原理 Double DQN 算法结构如下。在 Double DQN 框架中存在两个神经网络模型分别是训练网络与目标网络。这两个神经网络模型的结构完全相同但是权重参数不同每训练一段之间后训练网络的权重参数才会复制给目标网络。训练时训练网络用于估计当前的 而目标网络用于估计 这样就能保证真实值 的估计不会随着训练网络的不断自更新而变化过快。此外DQN 还是一种支持离线学习的框架即通过构建经验池的方式离线学习过去的经验。将均方误差 MSE(Q_{train}, Q_{target}) 作为训练模型的损失函数通过梯度下降法进行反向传播对训练模型进行更新若干轮经验池采样后再将训练模型的权重赋给目标模型以此进行 Double DQN 框架下的模型自学习。 目标 Q 值的计算公式如下所示 y j r j γ max ⁡ a ′ Q ( s j 1 , a ′ ; θ ′ ) y_jr_j\gamma \max _{a^{\prime}} Q\left(s_{j1}, a^{\prime} ; \theta^{\prime}\right) yj​rj​γa′max​Q(sj1​,a′;θ′) Double DQN 算法不直接通过最大化的方式选取目标网络计算的所有可能 Q Q Q 值而是首先通过估计网络选取最大 Q Q Q 值对应的动作公式表示如下: a max ⁡ argmax ⁡ a Q ( s t 1 , a ; θ ) a_{\max }\operatorname{argmax}_a Q\left(s_{t1}, a ; \theta\right) amax​argmaxa​Q(st1​,a;θ) 然后目标网络根据 a max ⁡ a_{\max } amax​ 计算目标 Q 值公式表示如下: y j r j γ Q ( s j 1 , a max ⁡ ; θ ′ ) y_jr_j\gamma Q\left(s_{j1}, a_{\max } ; \theta^{\prime}\right) yj​rj​γQ(sj1​,amax​;θ′) 最后将上面两个公式结合目标 Q Q Q 值的最终表示形式如下: y j r j γ Q ( s j 1 , argmax ⁡ a Q ( s t 1 , a ; θ ) ; θ ′ ) y_jr_j\gamma Q\left(s_{j1}, \operatorname{argmax}_a Q\left(s_{t1, a ; \theta}\right) ; \theta^{\prime}\right) yj​rj​γQ(sj1​,argmaxa​Q(st1,a;θ​);θ′) 目标是最小化目标函数即最小化估计 Q Q Q 值和目标 Q Q Q 值的差值公式如下: δ ∣ Q ( s t , a t ) − y t ∣ ∣ Q ( s t , a t ; θ ) − ( r t γ Q ( S t 1 , argmax ⁡ a Q ( s t 1 , a ; θ ) ; θ ′ ) ) ∣ \begin{aligned} \delta\left|Q\left(s_t, a_t\right)-y_t\right|\mid Q\left(s_t, a_t ; \theta\right)-\left(r_t\right. \\ \left.\gamma Q\left(S_{t1}, \operatorname{argmax}_a Q\left(s_{t1}, a ; \theta\right) ; \theta^{\prime}\right)\right) \mid \end{aligned} ​δ∣Q(st​,at​)−yt​∣∣Q(st​,at​;θ)−(rt​γQ(St1​,argmaxa​Q(st1​,a;θ);θ′))∣​ 结合目标函数损失函数定义如下: loss  { 1 2 δ 2 for  ∣ δ ∣ ⩽ 1 ∣ δ ∣ − 1 2 otherwize  } \text { loss }\left\{\begin{array}{cl} \frac{1}{2} \delta^2 \text { for }|\delta| \leqslant 1 \\ |\delta|-\frac{1}{2} \text { otherwize } \end{array}\right\}  loss {21​δ2∣δ∣−21​​ for ∣δ∣⩽1 otherwize ​} 代码 游戏环境 import gym#定义环境 class MyWrapper(gym.Wrapper):def __init__(self):env gym.make(CartPole-v1, render_modergb_array)super().__init__(env)self.env envself.step_n 0def reset(self):state, _ self.env.reset()self.step_n 0return statedef step(self, action):state, reward, terminated, truncated, info self.env.step(action)over terminated or truncated#限制最大步数self.step_n 1if self.step_n 200:over True#没坚持到最后,扣分if over and self.step_n 200:reward -1000return state, reward, over#打印游戏图像def show(self):from matplotlib import pyplot as pltplt.figure(figsize(3, 3))plt.imshow(self.env.render())plt.show()env MyWrapper()env.reset()env.show()Q价值函数 import torch#定义模型,评估状态下每个动作的价值 model torch.nn.Sequential(torch.nn.Linear(4, 64),torch.nn.ReLU(),torch.nn.Linear(64, 64),torch.nn.ReLU(),torch.nn.Linear(64, 2), )#延迟更新的模型,用于计算target model_delay torch.nn.Sequential(torch.nn.Linear(4, 64),torch.nn.ReLU(),torch.nn.Linear(64, 64),torch.nn.ReLU(),torch.nn.Linear(64, 2), )#复制参数 model_delay.load_state_dict(model.state_dict())model, model_delay单条轨迹 from IPython import display import random#玩一局游戏并记录数据 def play(showFalse):data []reward_sum 0state env.reset()over Falsewhile not over:action model(torch.FloatTensor(state).reshape(1, 4)).argmax().item()if random.random() 0.1:action env.action_space.sample()next_state, reward, over env.step(action)data.append((state, action, reward, next_state, over))reward_sum rewardstate next_stateif show:display.clear_output(waitTrue)env.show()return data, reward_sumplay()[-1]经验池 #数据池 class Pool:def __init__(self):self.pool []def __len__(self):return len(self.pool)def __getitem__(self, i):return self.pool[i]#更新动作池def update(self):#每次更新不少于N条新数据old_len len(self.pool)while len(pool) - old_len 200:self.pool.extend(play()[0])#只保留最新的N条数据self.pool self.pool[-2_0000:]#获取一批数据样本def sample(self):data random.sample(self.pool, 64)state torch.FloatTensor([i[0] for i in data]).reshape(-1, 4)action torch.LongTensor([i[1] for i in data]).reshape(-1, 1)reward torch.FloatTensor([i[2] for i in data]).reshape(-1, 1)next_state torch.FloatTensor([i[3] for i in data]).reshape(-1, 4)over torch.LongTensor([i[4] for i in data]).reshape(-1, 1)return state, action, reward, next_state, overpool Pool() pool.update() pool.sample()len(pool), pool[0]训练 #训练 def train():model.train()optimizer torch.optim.Adam(model.parameters(), lr2e-4)loss_fn torch.nn.MSELoss()#共更新N轮数据for epoch in range(1000):pool.update()#每次更新数据后,训练N次for i in range(200):#采样N条数据state, action, reward, next_state, over pool.sample()#计算valuevalue model(state).gather(dim1, indexaction)#计算targetwith torch.no_grad():target model_delay(next_state)target target.max(dim1)[0].reshape(-1, 1)target target * 0.99 * (1 - over) rewardloss loss_fn(value, target)loss.backward()optimizer.step()optimizer.zero_grad()#复制参数if (epoch 1) % 5 0:model_delay.load_state_dict(model.state_dict())if epoch % 100 0:test_result sum([play()[-1] for _ in range(20)]) / 20print(epoch, len(pool), test_result)train()
http://wiki.neutronadmin.com/news/251388/

相关文章:

  • 化妆品公司的网站建设的利益分析市场调研报告模板
  • 青海网站seo有哪些做排球比赛视频网站
  • 贵阳花溪建设村镇银行官方网站医院网站建设水平
  • dedecms学校网站模板怎么把文件放到网站的根目录
  • 网站seo怎么填写搜索引擎优化方法包括
  • 什么是优化资源配置福州外包seo公司
  • 科技网站配色方案公司变更地址需要多少钱
  • 单页网站开发实例下载注册号域名后 怎么建设网站
  • 阿里云做网站视频无法播放网站运营阶段
  • 扬州天达建设集团有限公司网站客户为什么需要建站服务
  • 正安县住房和城乡建设局网站wordpress转域名收费
  • 长沙网站定制济南旅游网页设计
  • 网站怎么做seo优化啊wordpress 怎么使用
  • 手机购物网站源码自己制作广告图片软件
  • 网站建设系网页设计跟网站建设的区别
  • 网站网站做代理网站建设 论文
  • 做网站的论坛网站怎样制作 优帮云
  • 郑州商城网站建设重庆城乡建设网站首页
  • 一个工厂做网站有用吗asp网站建设软件
  • 怎么给网站做seo优化德惠网站
  • 广州网站设计成功柚米怎么做才能让网站人气提升
  • 建设银行车贷网站南京哪里可以做网站
  • 怎么新增网站推广windows优化大师有必要安装吗
  • 莒县网站设计高安网站制作
  • wordpress做门户网站免费素材图库
  • 手机网站如何做优化手机网站制作公司
  • 网站排名费用专业做网站建设的公司
  • 阿里巴巴企业网站怎么做如何在手机上做广告
  • 咸阳seo优化seo行业网
  • 商城网站怎么做推广方案北京软件外包公司