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

机构改革 住房与城乡建设厅网站自己建个网站怎么挣钱

机构改革 住房与城乡建设厅网站,自己建个网站怎么挣钱,国外做游戏评测的视频网站有哪些,招商加盟合作代理平台强化学习系列--带基准线的REINFORCE算法 介绍示例代码 介绍 在强化学习中#xff0c;带基准线的REINFORCE算法是一种用于求解策略梯度的方法。REINFORCE算法#xff08;也称为蒙特卡洛策略梯度算法#xff09;可以用于训练能够从环境中学习的策略。带基准线的REINFORCE算法… 强化学习系列--带基准线的REINFORCE算法 介绍示例代码 介绍 在强化学习中带基准线的REINFORCE算法是一种用于求解策略梯度的方法。REINFORCE算法也称为蒙特卡洛策略梯度算法可以用于训练能够从环境中学习的策略。带基准线的REINFORCE算法是对经典REINFORCE算法的改进通过引入一个基准线来减小方差加速学习的过程。 REINFORCE算法通过采样轨迹并利用蒙特卡洛方法来估计策略梯度。该算法的目标是最大化期望回报即最大化累积奖励的期望值。具体来说REINFORCE算法使用以下更新规则来更新策略参数 Δ θ α ∑ t 0 T ∇ θ log ⁡ ( π ( a t ∣ s t ) ) G t \Delta\theta \alpha \sum_{t0}^{T} \nabla\theta \log(\pi(a_t|s_t)) G_t Δθαt0∑T​∇θlog(π(at​∣st​))Gt​ 其中 Δ θ \Delta\theta Δθ是策略参数的更新量 α \alpha α是学习率 ∇ θ \nabla\theta ∇θ是对策略参数的梯度 π ( a t ∣ s t ) \pi(a_t|s_t) π(at​∣st​)是在状态 s t s_t st​下选择动作 a t a_t at​的概率 G t G_t Gt​是从时间步 t t t开始的累积奖励。 带基准线的REINFORCE算法则在更新规则中引入了一个基准线 b ( s t ) b(s_t) b(st​)用来减小方差。基准线可以是任何函数通常选择一个与状态有关的函数如状态值函数 V ( s t ) V(s_t) V(st​)。更新规则变为 Δ θ α ∑ t 0 T ∇ θ log ⁡ ( π ( a t ∣ s t ) ) ( G t − b ( s t ) ) \Delta\theta \alpha \sum_{t0}^{T} \nabla\theta \log(\pi(a_t|s_t)) (G_t - b(s_t)) Δθαt0∑T​∇θlog(π(at​∣st​))(Gt​−b(st​)) 通过减去基准线的值可以降低更新的方差加速学习过程。基准线可以看作是估计的奖励期望的偏差通过减去这个偏差可以更准确地估计策略梯度。 带基准线的REINFORCE算法的步骤如下 初始化策略参数 θ \theta θ和基准线 b ( s ) b(s) b(s)。与环境交互采样轨迹记录奖励和状态序列。对于每个时间步 t t t计算状态 s t s_t st​下选择动作 a t a_t at​的概率 π ( a t ∣ s t ) \pi(a_t|s_t) π(at​∣st​)和基准线 b ( s t ) b(s_t) b(st​)的值。计算策略梯度 ∇ θ log ⁡ ( π ( a t ∣ s t ) ) ( G t − b ( s t ) ) \nabla\theta \log(\pi(a_t|s_t)) (G_t - b(s_t)) ∇θlog(π(at​∣st​))(Gt​−b(st​))。更新策略参数 θ \theta θ θ θ α ∇ θ log ⁡ ( π ( a t ∣ s t ) ) ( G t − b ( s t ) ) \theta \theta \alpha \nabla\theta \log(\pi(a_t|s_t)) (G_t - b(s_t)) θθα∇θlog(π(at​∣st​))(Gt​−b(st​))。重复步骤2-5直到达到停止条件。 带基准线的REINFORCE算法通过减小方差来加速学习过程提高了算法的稳定性和收敛性。选择合适的基准线函数对算法的表现有重要影响通常需要通过实验来确定。 示例代码 下面是一个简单的Python代码实现带基准线的REINFORCE算法其中包含了策略网络和基线网络 import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F import gym# 定义策略网络 class PolicyNetwork(nn.Module):def __init__(self, input_dim, output_dim):super(PolicyNetwork, self).__init__()self.fc1 nn.Linear(input_dim, 32)self.fc2 nn.Linear(32, output_dim)def forward(self, x):x F.relu(self.fc1(x))x F.softmax(self.fc2(x), dim-1)return x# 定义基线网络 class BaselineNetwork(nn.Module):def __init__(self, input_dim):super(BaselineNetwork, self).__init__()self.fc1 nn.Linear(input_dim, 32)self.fc2 nn.Linear(32, 1)def forward(self, x):x F.relu(self.fc1(x))x self.fc2(x)return x# 定义带基准线的REINFORCE算法 def reinforce(env, policy_net, baseline_net, num_episodes, gamma0.99):optimizer_policy optim.Adam(policy_net.parameters(), lr0.01)optimizer_baseline optim.Adam(baseline_net.parameters(), lr0.01)for episode in range(num_episodes):state env.reset()log_probs []rewards []while True:state_tensor torch.FloatTensor(state)action_probs policy_net(state_tensor)action_dist torch.distributions.Categorical(action_probs)action action_dist.sample()log_prob action_dist.log_prob(action)log_probs.append(log_prob)next_state, reward, done, _ env.step(action.item())rewards.append(reward)if done:breakstate next_statereturns []cumulative_return 0for r in reversed(rewards):cumulative_return r gamma * cumulative_returnreturns.insert(0, cumulative_return)returns torch.FloatTensor(returns)log_probs torch.stack(log_probs)# 计算基准线的值values baseline_net(torch.FloatTensor(state))advantages returns - values# 更新策略网络policy_loss -(log_probs * advantages.detach()).mean()optimizer_policy.zero_grad()policy_loss.backward()optimizer_policy.step()# 更新基线网络baseline_loss F.mse_loss(returns, values)optimizer_baseline.zero_grad()baseline_loss.backward()optimizer_baseline.step()if episode % 10 0:print(fEpisode {episode}: policy_loss {policy_loss}, baseline_loss {baseline_loss})# 创建环境和网络 env gym.make(CartPole-v1) input_dim env.observation_space.shape[0] output_dim env.action_space.npolicy_net PolicyNetwork(input_dim, output_dim) baseline_net BaselineNetwork(input_dim)# 运行带基准线的REINFORCE算法 reinforce(env, policy_net, baseline_net, num_episodes1000)这段代码使用PyTorch实现了带基准线的REINFORCE算法并应用于OpenAI Gym中的CartPole环境。首先定义了策略网络和基线网络的结构然后在reinforce函数中进行算法的训练过程。在每个回合中通过策略网络选择动作并计算动作的概率和对数概率。同时也记录下每个动作的奖励。当回合结束后根据累积奖励计算优势函数并使用优势函数更新策略网络和基线网络的参数。算法通过反复迭代多个回合来提高策略的性能。
http://www.yutouwan.com/news/163461/

相关文章:

  • 网站建设 $ 金手指排名效果好wordpress 多说
  • 沈阳德泰诺网站制作手机制作gif
  • 网站迅速备案设计一个网站花多少时间
  • 摄影网站介绍虚拟主机多少钱一个月
  • 哪家网站雅虎全球购做的好做网站多少钱西宁君博示范
  • 自己做电影资源网站asp 绿色环保企业网站源码 v1.1
  • 免费推广网站视频怎么建设商业网站
  • 网站导航还值得做wordpress内网使用
  • 制作网站的公司办什么营业执照短视频获客
  • 建设银行包头分行网站网站建设的功能有哪些内容
  • 上海高端it网站建设移动互联网开发研究方向
  • 网站分析 案例自己做的网站 怎么在网上销售
  • 潍坊建设gc局网站seo链接优化
  • 公司做宣传网站在线p图网页
  • 如何查看网站域名证书专门做选择题的网站
  • 天天炫拍免费做相册管方网站下载鄞州网站建设公司
  • 兰州网站建设兼职有没有专业做特产的网站
  • 长春快速建站模板简约设计网站
  • 华汇建设集团有限公司网站网站跟软件有什么区别是什么
  • 万网免费网站网站app下载大全
  • 网站建设验收方式广西建设厅网证件查询
  • 河北省永清县建设局网站网站美化软件
  • vs做网站案例重庆网站建设的公司哪家好
  • 微商城网站建设如何如何做网站充值
  • 这几年做哪个网站能致富宁波宇丰建设有限公司网站
  • 佛山网站建设科技有限公司关于wordpress更新时无法创建目录
  • 网站注册域名 免费视频号视频怎么看下载链接
  • 辽宁建设工程信息网老网站500强企业网站有哪些
  • 自己做的网站 怎么放大文件钟祥网页设计
  • 网站建设中 模板素材网站cms企业