怎么使用actor-critic方法来控制CartPole-V0游戏


本篇内容主要讲解“怎么使用actor-critic方法来控制CartPole-V0游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用actor-critic方法来控制CartPole-V0游戏”吧!在一个光滑的轨道上有个推车,杆子垂直微置在推车上,随时有倒的风险。系统每次对推车施加向左或者向右的力,但我们的目标是让杆子保持直立。杆子保持直立的每个时间单位都会获得 +1 的奖励。但是当杆子与垂直方向成 15 度以上的位置,或者推车偏离中心点超过 2.4 个单位后,这一轮局游戏结束。因此我们可以获得的最高回报等于 200 。我们这里就是要通过使用 PPO 算法来训练一个强化学习模型 actor-critic ,通过对比模型训练前后的游戏运行 gif 图,可以看出来我们训练好的模型能长时间保持杆子处于垂直状态。当 agent 采取行动并在环境中移动时,它在观察到的环境状态的情况下,学习两个可能的输出:接下来最合适的一个操作,actor 负责此部分输出。未来可能获得的奖励总和,critic 负责此部分的输出。actor 和 critic 通过不断地学习,以便使得 agent 在游戏中最终获得的奖励最大,这里的 agent 就是那个小车。这部分代码主要有:(1)导入所需的Python库:gym、numpy、tensorflow 和 keras。(2)设置整个环境的超参数:种子、折扣因子和每个回合的最大步数。(3)创建 CartPole-v0 环境,并设置种子。(4)定义一个非常小的值 eps ,表示的机器两个不同的数字之间的最小差值,用于检验数值稳定性。(1)Actor:将环境的状态作为输入,返回操作空间中每个操作及其概率值,其实总共只有两个操作,往左和往右。(2)Critic:将环境的状态作为输入,返回未来奖励综合的估计。(3)在这里网络结构中我们在一开始接收 inputs 之后,我们的 Actor 和 Critic 共用了中间的部分隐藏层 common 层,然后在一个输出分支上连接了一个全连接进行动作分类作为 action ,另一个分支上连接了一个全连接层进行未来奖励计算作为 critic 。设置训练所需要的优化器,以及各种参数来记录每个时间步上的数据。一直训练下去,直到满足奖励大于 195免费云主机域名 才会停下训练过程。打印:在第 10 轮游戏中获得奖励: 11.17 分
在第 20 轮游戏中获得奖励: 17.12 分

在第 170 轮游戏中获得奖励: 155.02 分
在第 180 轮游戏中获得奖励: 171.67 分

在第 220 轮游戏中获得奖励: 193.74 分
奖励超过 195 ,训练结束到此,相信大家对“怎么使用actor-critic方法来控制CartPole-V0游戏”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: php判断字段是否不为空的常见方法有哪些

这篇文章主要介绍“php判断字段是否不为空的常见方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php判断字段是否不为空的常见方法有哪些”文章能帮助大家解决问题。 方法一:使用isset()函数isset()函…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/02 13:47
Next 07/02 13:48

相关推荐