Возможно ли изменить состояние OpenAI gym до и во время тренировки?

#machine-learning #artificial-intelligence #openai-gym #openai

#машинное обучение #искусственный интеллект #openai-gym #openai-api

Вопрос:

Что я хотел бы сделать, так это изменить среду, например, взять среду Super Mario Bros gym, и размыть изображение, на котором тренируется агент, и посмотреть, способен ли агент обучения с подкреплением обучаться в этих «размытых» состояниях.

Позволяет ли OpenAI делать что-то подобное? Как бы мне добавить этап предварительной обработки среды тренажерного зала?

Ответ №1:

Я рекомендую вам создать оболочку для среды вашего тренажерного зала, которая добавляет обработку в функции step() и reset()

Вот немного кода, иллюстрирующего идею :

 class EnvWrapper(gym.Env):
    def __init__(self, config):
        self.env = gym.make("Your-Env-Name")    # The wrapper encapsulates the gym env
    
    def step(self, action):
        obs, reward, done, info = self.env.step(action)   # calls the gym env methods
        obs = self._blur(obs)                             # applies your specific treatment
        return obs, reward, done, info

    def reset(self):
        obs = self.env.reset()    # same for reset
        return self._blur(obs)

    def _blur(self):
        do_whatever_you_need
  

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