Что делает EpisodeParameterMemory из keras-rl?

Я нашел пример keras-rl/examples/cem_cartpole.py и хотел бы понять, но я не нахожу документацию.

Что значит линия

memory = EpisodeParameterMemory(limit=1000, window_length=1)

делать? Что limit и что это window_length? Какой эффект имеет увеличение одного или обоих параметров?

1 ответ

Решение

EpisodeParameterMemory это специальный класс, который используется для CEM. По сути, он хранит параметры сети политик, которые использовались для всего эпизода (отсюда и название).

По поводу ваших вопросов: limit Параметр просто указывает, сколько записей может хранить память. После превышения этого предела старые записи будут заменены более новыми.

Второй параметр не используется в этом конкретном типе памяти (CEM является своего рода крайним случаем в Keras-RL и в основном используется в качестве простой базовой линии). Как правило, однако, window_length Параметр контролирует, сколько наблюдений объединяются в "состояние". Это может быть необходимо, если среда не является полностью наблюдаемой (представьте, что она превращает POMDP в MDP или, по крайней мере, приблизительно). DQN на Atari использует это, поскольку одного кадра явно недостаточно для определения скорости шара, например, в сети FF.

Как правило, я рекомендую прочитать соответствующую статью (опять же, CEM является своего рода исключением). Затем должно стать относительно ясно, что означает каждый параметр. Я согласен с тем, что Keras-RL остро нужна документация, но, к сожалению, у меня нет времени сейчас над этим работать. Вклад в улучшение ситуации, конечно, всегда приветствуется;).

Немного опоздал на вечеринку, но я чувствую, что ответ на самом деле не отвечает на вопрос.

Я нашел это описание в Интернете ( https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html):

Мы будем использовать память воспроизведения опыта для обучения нашего DQN. Он хранит переходы, которые наблюдает агент, что позволяет нам использовать эти данные позже. Путем случайной выборки переходы, составляющие пакет, декоррелированы. Было показано, что это значительно стабилизирует и улучшает процедуру обучения DQN.

В основном вы наблюдаете и сохраняете все свои переходы состояний, чтобы впоследствии вы могли обучать их на своей сети (вместо того, чтобы постоянно делать наблюдения из окружающей среды).

Другие вопросы по тегам