news 2026/2/28 17:29:09

【强化学习实验】- 策略梯度算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【强化学习实验】- 策略梯度算法

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, dim=1)

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算法做一下对比。

有没有小伙伴知道为啥后期收敛效果不好?欢迎评论指教。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 18:29:41

NPM Scripts集成LLama-Factory前端监控面板,实时查看训练状态

NPM Scripts集成LLama-Factory前端监控面板,实时查看训练状态 在大模型开发日益普及的今天,越来越多的团队和个人开发者希望快速微调一个属于自己的语言模型——无论是用于客服对话、内容生成,还是内部知识库问答。然而,传统训练流…

作者头像 李华
网站建设 2026/2/18 8:19:02

从3D打印到专业设计:STL转STEP的桥梁工具

从3D打印到专业设计:STL转STEP的桥梁工具 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 🚀 打破格式壁垒,开启设计新篇章! 你是否曾面临这样的…

作者头像 李华
网站建设 2026/2/24 17:16:51

9、卷积与相关性:原理、计算与应用

卷积与相关性:原理、计算与应用 在信号处理领域,卷积和相关性是两个非常重要的概念,它们在许多实际应用中都发挥着关键作用。本文将深入探讨循环相关性、卷积的计算方法以及它们的一些应用,并通过具体的例子进行详细说明。 1. 循环相关性 循环相关性在处理周期性序列时需…

作者头像 李华
网站建设 2026/2/28 15:20:48

translate.js:让网站多语言化像搭积木一样简单

translate.js:让网站多语言化像搭积木一样简单 【免费下载链接】translate Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly! 项目地址: https://gitcode.com/gh_mi…

作者头像 李华
网站建设 2026/2/27 6:20:22

终极广告拦截方案:AdGuardHomeRules 完整使用指南

还在为网页广告、视频前广告、弹窗广告烦恼吗?AdGuardHomeRules 为你提供超过100万条广告拦截规则的终极解决方案,让上网体验彻底告别广告干扰。这款开源工具简单易用,完全免费,能够为你的所有设备打造纯净的网络环境。 【免费下载…

作者头像 李华
网站建设 2026/2/22 15:28:19

7、深入理解BPF探针:从内核到用户空间的追踪利器

深入理解BPF探针:从内核到用户空间的追踪利器 在Linux系统中,为了实现对程序的追踪和调试,我们可以利用BPF(Berkeley Packet Filter)技术结合各种探针来收集系统信息。下面将详细介绍不同类型的探针及其使用方法。 1. 探针概述 探针就像是探索系统环境的“探测器”,它…

作者头像 李华