gpt4 book ai didi

tensorflow - tf-agent 的 `policy` 和 `collect_policy` 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 17:00:38 24 4
gpt4 key购买 nike

我在看 tf-agents学习强化学习。我正在关注这个 tutorial .使用了不同的策略,称为 collect_policy用于训练而不是用于评估 ( policy )。
该教程指出存在差异,但在 IMO 中,它没有描述为什么有 2 个策略,因为它没有描述功能差异。

Agents contain two policies:

agent.policy — The main policy that is used for evaluation and deployment.

agent.collect_policy — A second policy that is used for data collection.


我看过 source code of the agent .它说

policy: An instance of tf_policy.Base representing the Agent's current policy.

collect_policy: An instance of tf_policy.Base representing the Agent's current data collection policy (used to set self.step_spec).


但是我没有看到 self.step_spec源文件中的任何位置。我找到的下一个最接近的东西是 time_step_spec .但这是 TFAgent 的第一个 ctor 参数类,因此通过 collect_policy 设置是没有意义的.
所以我唯一能想到的就是:把它付诸实践。所以我用了 policy而不是 collect_policy为了训练。尽管如此,代理还是达到了环境中的最高分数。
那么这两种策略之间的功能区别是什么?

最佳答案

有一些强化学习算法,例如 Q-learning,它们使用策略在环境中表现(或与之交互)以收集经验,这与他们尝试学习的策略(有时称为目标策略)不同.这些算法被称为离策略算法。不脱离策略的算法称为在策略(即行为策略与目标策略相同)。在策略算法的一个例子是 SARSA。这就是为什么我们同时拥有 policycollect_policy在 TF-Agents 中,即一般情况下,行为策略可能与目标策略不同(尽管情况并非总是如此)。
为什么会这样?因为在学习和与环境交互的过程中,你需要探索环境(即采取随机行动),而一旦你学会了接近最优的策略,你可能就不需要再探索了,只需采取接近最优的行动即可(我说接近最优而不是最优,因为你可能没有学到最优的)

关于tensorflow - tf-agent 的 `policy` 和 `collect_policy` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61403558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com