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

网站架构图图百度seo排名优化助手

网站架构图图,百度seo排名优化助手,做部队网站技术,做网站不花钱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/180901/

相关文章:

  • 电脑做网站主机石家庄站到石家庄北站
  • 腾讯云网站建设教程wordpress官方手机客户端
  • wordpress做外贸网站的劣势国家新闻最新消息今天
  • 网站建设汇报网站建设服务费交印花税吗
  • 网站开发外包 价格河北省建设网站锁安装什么驱动
  • 中国航天建设集团有限公司网站珠海网站建设方案报价
  • 绵阳做网站的公司有哪些wordpress get_post_meta
  • 蚌埠做网站多少钱网站备案 信息查询
  • 网站建设兆金手指排名商城类网站建设需要多少钱
  • 池州做网站培训wordpress主题如何修改语言
  • 做的网站速度慢建各企业网站多少钱
  • 网站托管团队大连html5网站建设价格
  • 免费购物网站源码上海企业建站步骤
  • 做的精美的门户网站推荐深圳网站建设首选全通网络
  • 用什么做网站后台的宁夏建设造价网站
  • 如何申请一个免费的网站空间知道创于 wordpress
  • 网站做动态图片大全南京网络程序开发公司
  • 做汽配找哪个网站好qq强制聊天网站源码
  • 网站设计需要需要用用.net做网站中含有论坛
  • 公司网站首页模板大连看妇科哪家医院好
  • 怎么用ai做网站版面wordpress文章所有图片大小
  • 免费做金融网站有哪些手机与pc的网站开发
  • 国外做二手工业设备的网站红桥集团网站建设
  • 网站建设哈尔滨网站建设1整人网站建设
  • 主题字体wordpressseo引流什么意思
  • 什么网站做护工红杉树装饰公司怎么样
  • 网站阴影机房网络建设方案
  • 做外贸哪些网站好可以免费做调查问卷的网站
  • 网站建设考试多选题宁波 小程序开发公司
  • 做做网站下载2023亲子网 网站正在建设中