В чем разница между `policy` и` collect_policy` tf-agent? - PullRequest
1 голос
/ 24 апреля 2020

Я смотрю на 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 для обучения. И агент, тем не менее, достиг максимального результата в среде.

Так в чем функциональная разница между двумя политиками?

...