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

网站路径优化自己做的网站竞价优化

网站路径优化,自己做的网站竞价优化,北京网站开发人员,做公益的网站有哪些2.策略梯度方法 目标是使策略 不断更新#xff0c;回报更高。 计算每一个轨迹的回报#xff0c;和对应的概率 目标是使回报高的轨迹概率应该高。这样整个策略的期望回报也会高。 什么是策略期望回报#xff1f; 就是用这个策略跑了若干个轨迹#xff0c;得到回报#x…2.策略梯度方法 目标是使策略 不断更新回报更高。 计算每一个轨迹的回报和对应的概率 目标是使回报高的轨迹概率应该高。这样整个策略的期望回报也会高。 什么是策略期望回报 就是用这个策略跑了若干个轨迹得到回报然后求平均 2.1 策略梯度的主要原理 # 1. 采样一个完整的 episodelog_probs [] # 存储每个 (s_t, a_t) 的 log π(a_t|s_t)rewards [] # 存储每个时间步的奖励 r_twhile not done:action_probs policy_net(state_tensor) # π(a|s)action sample_action(action_probs) # a_t ~ π(a|s)log_prob torch.log(action_probs[action]) # log π(a_t|s_t)log_probs.append(log_prob)next_state, reward, done env.step(action)rewards.append(reward)# 2. 计算每个时间步的折扣回报 G_tdiscounted_rewards compute_discounted_rewards(rewards, gamma0.99)# 3. 计算策略梯度损失policy_loss []for log_prob, G_t in zip(log_probs, discounted_rewards):policy_loss.append(-log_prob * G_t) # 负号因为 PyTorch 默认做梯度下降# 4. 反向传播total_loss torch.stack(policy_loss).sum() # 求和所有时间步的损失optimizer.zero_grad()total_loss.backward() # 计算梯度 ∇θ J(θ)optimizer.step() # 更新 θ ← θ α ∇θ J(θ)2.2 Reinforce 算法也称为蒙特卡洛策略梯度是一种策略梯度算法它使用来自整个 episode 的估计回报来更新策略参数 import numpy as np import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as Fclass PolicyNetwork(nn.Module):策略网络输入状态输出动作概率def __init__(self, state_dim, action_dim, hidden_dim64):super(PolicyNetwork, self).__init__()self.fc1 nn.Linear(state_dim, hidden_dim)self.fc2 nn.Linear(hidden_dim, action_dim)def forward(self, x):x F.relu(self.fc1(x))x F.softmax(self.fc2(x), dim-1)return xdef reinforce(env, policy_net, optimizer, num_episodes1000, gamma0.99):REINFORCE算法实现参数:env: 环境policy_net: 策略网络optimizer: 优化器num_episodes: 训练episode数量gamma: 折扣因子返回:每个episode的奖励列表episode_rewards []for episode in range(num_episodes):state env.reset()log_probs []rewards []# 采样一个完整的episodedone Falsewhile not done:# 将状态转换为tensorstate_tensor torch.FloatTensor(state).unsqueeze(0) # shape: (1, state_dim)# 通过策略网络获取动作概率action_probs policy_net(state_tensor) # shape: (1, action_dim)# 从概率分布中采样一个动作action torch.multinomial(action_probs, 1).item()# 也可以# dist torch.distributions.Categorical(action_probs)# action dist.sample() # 标量值# 计算动作的log概率log_prob torch.log(action_probs.squeeze(0)[action]) # shape: scalar# 执行动作next_state, reward, done, _ env.step(action)# 存储log概率和奖励log_probs.append(log_prob)rewards.append(reward)# 更新状态state next_state# 计算episode的折扣回报discounted_rewards []R 0for r in reversed(rewards):R r gamma * Rdiscounted_rewards.insert(0, R)# 标准化折扣回报减少方差discounted_rewards torch.FloatTensor(discounted_rewards)discounted_rewards (discounted_rewards - discounted_rewards.mean()) / (discounted_rewards.std() 1e-9)# 计算策略梯度损失policy_loss []for log_prob, R in zip(log_probs, discounted_rewards):policy_loss.append(-log_prob * R) # 负号因为我们要最大化回报# 反向传播optimizer.zero_grad()policy_loss torch.stack(policy_loss).sum() # shape: scalarpolicy_loss.backward()optimizer.step()# 记录总奖励episode_rewards.append(sum(rewards))return episode_rewards开始以为policy_loss 计算的是策略梯度感觉很不合理其实不是的差了一个求导呢。 总结policy_loss 的梯度 和 目标函数的梯度符号相反。 两者的梯度 符号相反。因此最大化目标函数等于最小化policy_loss
http://www.sczhlp.com/news/169481/

相关文章:

  • 关于我们 网站网站幻灯片 字段
  • 江西医院网站建设国外企业网络研究
  • 交互式网站python做网站点登入没反映
  • 为什么搜索不到刚做的网站做网站存在的问题
  • 深圳 学习网站尼乐清网站建设
  • 网站开发 技术指标莱芜网站建设公司
  • 天猫网站的建设怎么网络推广自己业务
  • 河北城乡和住房建设厅官方网站烟台电子商务网站
  • 住房和城乡建设部网站招聘浙江1万家企业
  • 网站常用的中文字体网站关键词之间用什么符号隔开
  • 网站做次级页面娄底本地做寄生虫网站
  • 企业网站建设要多久网站 反链
  • 如何在阿里云部署网站财务管理做的好的门户网站
  • 做网站用什么字体最明显南宁京象建站公司
  • 福安网站定制网站三元素怎么做
  • 专业的手机网站建设公司哪家好九游手游平台app
  • AtCoder Regular Contest 207 (Div.1) 游记
  • 数据编织平台实现AI代理自助数据访问
  • 做网站必须有云虚拟主机一站式服务图片
  • 广州建设银行官方网站网站建设怎么样工作室
  • 苏州 网站设计wordpress的音乐插件
  • wordpress网站主修改网站主题栏目分类
  • 020网站设计钉钉如何做自己的网站
  • 佛山网站开发哪家专业微信网站登录
  • 网站广告推广公司福步外贸论坛怎么注册账号
  • 建筑建材网站建设php网站开发专业介绍
  • 做一家网站费用吗百度联盟网站备案信息
  • 网站的 营销渠道的建设网站开发项目方案
  • 网站开发php是什么意思网站开发实战项目
  • 商城网站建设二次开发贵阳网络网站建设