【发布时间】:2020-08-07 17:49:14
【问题描述】:
我正在查看tf-agents 以了解强化学习。我正在关注这个tutorial。使用了不同的策略,称为 collect_policy 用于训练而不是用于评估 (policy)。
教程指出存在差异,但在 IMO 中,它没有描述为什么有 2 个策略,因为它没有描述功能差异。
代理包含两个策略:
agent.policy — 用于评估和部署的主要策略。
agent.collect_policy — 用于数据收集的第二个策略。
我看过source code of the agent。它说
策略:
tf_policy.Base的一个实例,代表代理的当前策略。collect_policy:
tf_policy.Base的一个实例,代表 Agent 当前的数据收集策略(用于设置self.step_spec)。
但是我在源文件的任何地方都没有看到self.step_spec。我找到的下一个最接近的东西是time_step_spec。但这是 TFAgent 类的第一个 ctor 参数,因此通过 collect_policy 设置是没有意义的。
所以我唯一能想到的就是:测试一下。所以我使用policy 而不是collect_policy 进行训练。尽管如此,agent 在环境中还是达到了最高分。
那么这两种策略在功能上的区别是什么?
【问题讨论】:
标签: tensorflow artificial-intelligence reinforcement-learning policy agent