2026/1/27 23:12:47
网站建设
项目流程
个人网站用什么建站程序,通信建设网站,域名网站平台,优设网视频剪辑1.实验内容
策略梯度算法文章中2.2 策略梯度算法。 通俗总结
① 优胜劣汰
② 学如逆水行舟#xff0c;不进则退。 2.实验目标
2.1 构建策略模型
class PolicyNet(torch.nn.Module):def __init__(self, state_dim, hidden_dim, action_dim):super(PolicyNet, self).__init…1.实验内容策略梯度算法文章中2.2 策略梯度算法。通俗总结① 优胜劣汰② 学如逆水行舟不进则退。2.实验目标2.1 构建策略模型class PolicyNet(torch.nn.Module): def __init__(self, state_dim, hidden_dim, action_dim): super(PolicyNet, self).__init__() self.fc1 torch.nn.Linear(state_dim, hidden_dim) self.fc2 torch.nn.Linear(hidden_dim, action_dim) # 输入就是state, 输出就是一个action分布 def forward(self, x): x F.relu(self.fc1(x)) x self.fc2(x) return F.softmax(x, dim1)2.2 目标函数 及其 loss函数loss -微分对象-Q*log概率def update(self, transition_dict): state_list transition_dict[states] action_list transition_dict[actions] reward_list transition_dict[rewards] # 每个episode为单位, 计算动作价值的累计收益 G 0 # 倒放数据计算动作的累计收益 self.optimizer.zero_grad() for i in range(len(reward_list)-1, -1, -1): state torch.tensor([state_list[i]]).to(self.device) action torch.tensor([action_list[i]]).view(-1, 1).to(self.device) G reward_list[i] self.gamma*G logP torch.log(self.policy_net(state).gather(1, action)) loss -G*logP loss.backward() self.optimizer.step()2.3 思考算法的优缺点a、仅使用sar数据可能会限制算法的能力上线b、无偏但是方差比较大3.完整代码见附件4.实验结果模型训练750个epoch接近收敛而后震荡收敛。尝试扩大epoch效果如下结论总的来说可以收敛但是收敛效果并不是很好后续和AC算法做一下对比。有没有小伙伴知道为啥后期收敛效果不好欢迎评论指教。