首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenAI健身房奖励阈值的目的是什么?

OpenAI健身房奖励阈值的目的是什么?
EN

Data Science用户
提问于 2020-04-29 18:35:34
回答 2查看 2.2K关注 0票数 1

我已经看到,OpenAI健身房环境可以使用可选的奖励阈值(reward_threshold)注册,该阈值代表:

任务被认为解决之前的奖励阈值。

这种价值是如何影响学习过程的?还是一个人必须手动比较在每一集中获得的奖励与reward_threshold,并停止学习过程,如果它超过它?

EN

回答 2

Data Science用户

回答已采纳

发布于 2021-01-15 21:22:53

reward_threshold (浮子)- Gym环境参数,任务解决前的奖励阈值,[1]

从这句话的定义来看,这听起来就像一个代理人在任务完成之前必须赚取的全部报酬,然后就这样结束了。

如果这是一个任务,例如由cartpole代理保持直立/垂直,它可以被表示为帧数,所以1帧=1分奖励,如果reward_threshold = 200,代理必须平衡该极点才能使200帧成功。

请看一下OpenAI健身网站上的卡塔杆实例

代码语言:javascript
复制
while True:
    candidate_model = model.symmetric_mutate()
    rewards = [run_one_episode(env, candidate_model, False) for _ in range(5)]
    reward = np.mean(rewards)
    if reward >= env.spec.reward_threshold:
        print "Reached reward threshold!"
        rewards2 = [run_one_episode(env, candidate_model, False) for _ in range(env.spec.trials)]
        if np.mean(rewards2) >= env.spec.reward_threshold:
            break
        else:
            print "Oops, guess it was a fluke"

因此,代理运行5集(for _ in range(5)),每集返回一个奖项。我们计算平均奖励超过5集(reward = np.mean(rewards)),然后引入所需的控制流,根据这一结果。

在这种情况下,他们使用默认的reward_threshold从环境(env.spec.reward_threshold),打印一个成功的消息,并做最后的检查,以确定代理是否真的学到了一致或不一致的东西,再次检查一个新的插曲(for _ in range(env.spec.trials))。

票数 0
EN

Data Science用户

发布于 2021-01-15 20:02:54

我在健身房代码库中做了一些调查,至少在0.18.0版本中,健身房本身似乎根本没有使用reward_threshold (而不是max_episode_steps,后者用于在环境中计算Done信号)。

因此,如果要使用该字段,就必须从env手动访问该字段。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/73255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档