微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tf-agents 环境可以定义为不可观察的外生状态吗?

如何解决tf-agents 环境可以定义为不可观察的外生状态吗?

对于标题中的问题不是很清楚,我提前道歉。我正在尝试使用 tf-agents 训练强化学习策略,其中存在一些影响状态的不可观察的随机变量。

例如,考虑标准的 CartPole 问题,但我们在速度随时间变化的地方添加风。我不想训练一个依赖于在每一步观察风速的代理;相反,我希望风影响杆的位置和角速度,并且代理学习适应,就像在无风环境中一样。然而,在这个例子中,我们需要将当前时间的风速与前一时间的风速相关联,例如我们不希望风速从 t 时刻的 10m/s 变为 t+1 时刻的 -10m/s。

我试图解决的问题是如何跟踪外生变量的状态,而不将其作为训练代理时输入神经网络的观察规范的一部分。任何指导将不胜感激。

解决方法

是的,这完全没有问题。您的环境对象(PyEnvironmentTFEnvironment 的子类)可以在其中做任何您想做的事情。 observation_spec 要求仅与您在 stepreset 方法中输出的 TimeStep 相关(更准确地说是在您的 _step_reset 抽象实现中)方法)。

然而,您的环境可以完全自由地拥有您可能想要的任何附加属性(例如控制风力发电的参数)和您喜欢的任意数量的附加方法(例如根据 {{1} })。您的代码的快速示意图如下所示:

self._wind_hyper_params

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。