проблема с добавлением logi c для неверных движений в openai тренажерном зале и стабильных базовых линиях - PullRequest
0 голосов
/ 30 марта 2020

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

ссылка на стабильную базовую линию:

https://stable-baselines.readthedocs.io/

В стабильном базовом методе обучения используется однострочное обучение, и у вас нет доступа к действиям, предпринятым во время обучения.

model.learn(total_timesteps=10000)

Более конкретно, вы этого не делаете сделайте строку, в которой вы делаете выборку из окружения, в своем коде:

action = space.sample()

Однако мне нравится добавлять логи c в место, где я выбираю действие следующего состояния и отклоняю некоторые действия, которые логика c к ним не относится (например, нелегальные ходы на шахматной доске), что-то вроде:

for _ in range(1000):
    action = env.space.sample()
    if some_logic(action):
         continue

один из способов сделать это - написать оболочку для функции sample_space sample () и только выбрать законные действия. Как здесь class DiscreteWrapper(spaces.Discrete) в следующей ссылке:

https://github.com/rockingdingo/gym-gomoku/blob/master/gym_gomoku/envs/gomoku.py

Но проблема в том, что стабильная базовая линия принимает только определенные типы данных и не позволяет что либо.

Как я могу сделать это так, чтобы это было интегрировано в стабильную базовую структуру и не нарушало критерии стабильных базовых показателей? Если это вообще невозможно, знает ли кто-нибудь систему обучения с подкреплением, которая, в отличие от стабильного базового уровня, предоставляет доступ к действиям?

...