Я смотрю на tf-агентов , чтобы узнать об усиленном обучении. Я следую этому учебнику . Используется другая политика, называемая collect_policy
для обучения, чем для оценки (policy
).
Учебное пособие утверждает, что есть различие, но в IMO не описывается причина наличия двух политик, поскольку оно не описывает функциональное различие.
Агенты содержат две политики:
agent.policy - основная политика, используемая для оценки и развертывания.
agent.collect_policy - вторая политика, используемая для сбора данных.
Я посмотрел на исходный код агента . Он говорит:
policy: экземпляр tf_policy.Base
, представляющий текущую политику Агента.
collect_policy: экземпляр tf_policy.Base
, представляющий текущую политику сбора данных Агента (используется для установки self.step_spec
).
Но я не вижу self.step_spec
в исходном файле. Следующая ближайшая вещь, которую я нахожу, это time_step_spec
. Но это первый аргумент ctor класса TFAgent
, так что нет смысла устанавливать через collect_policy
.
Так что единственное, что я могу придумать, было: проверить его. Поэтому я использовал policy
вместо collect_policy
для обучения. И агент, тем не менее, достиг максимального результата в среде.
Так в чем функциональная разница между двумя политиками?