Обучение с подкреплением в настоящее время является одним из самых многообещающих методов в машинном обучении и глубоком обучении. OpenAI Gym - один из самых популярных наборов инструментов для реализации сред моделирования обучения с подкреплением. Вот краткий обзор ключевой терминологии OpenAI Gym.

Что такое OpenAI Gym

OpenAI Gym - это библиотека с открытым исходным кодом, которая обеспечивает простую настройку и набор инструментов, включающий широкий спектр смоделированных сред. Эти моделируемые среды варьируются от очень простых игр (понг) до сложных игровых движков, основанных на физике. Эти среды позволяют быстро настраивать и обучать алгоритмы обучения с подкреплением.

Тренажерный зал также можно использовать в качестве эталона для алгоритмов обучения с подкреплением. Каждая среда в наборе инструментов OpenAI Gym содержит версию, которая полезна для сравнения и воспроизведения результатов при тестировании алгоритмов. В этих средах есть настройки на основе эпизодов для выполнения обучения с подкреплением, где опыт агента далее делится на серию эпизодов. Этот инструментарий также предоставляет стандартный API для взаимодействия со средой, связанной с обучением с подкреплением. Он также совместим с другими вычислительными библиотеками, такими как TensorFlow. Первоначальный выпуск OpenAI Gym включает более 1000 сред для выполнения различных категорий задач.

Ключевые термины

Чтобы понять OpenAI Gym и эффективно использовать его для обучения с подкреплением, очень важно усвоить ключевые концепции.

Обучение с подкреплением

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

  1. Наблюдение за окружающей средой
  2. Формулирование решения на основе определенной стратегии
  3. Действия
  4. Получение награды или штрафа
  5. Изучение опыта для улучшения стратегии
  6. Итерация процесса до достижения оптимальной стратегии

Например, беспилотный автомобиль должен обеспечивать безопасность пассажиров, соблюдая ограничения скорости и правила дорожного движения. Агент (воображаемый водитель) мотивирован вознаграждением; для обеспечения максимальной безопасности пассажиров и будет извлекать уроки из своего опыта в окружающей среде. Награды за правильные действия и штрафы за неправильные действия разрабатываются и устанавливаются. Чтобы гарантировать, что агент соблюдает ограничение скорости и правила дорожного движения, следует учитывать следующие моменты:

  • Агент должен получить положительное вознаграждение за успешное соблюдение ограничения скорости, поскольку это важно для безопасности пассажиров.
  • Агент должен быть оштрафован, если он превысит желаемый предел скорости или проехал на светофоре. Например, агент может получить слегка отрицательное вознаграждение за движение машины до окончания обратного отсчета (светофор все еще красный).

Агент

В обучении с подкреплением агент - это объект, который принимает решение о том, какое действие предпринять, в зависимости от вознаграждений и наказаний. Для принятия решения агенту разрешается использовать наблюдения из окружающей среды. Обычно ожидается, что текущее состояние будет предоставлено средой, и это состояние будет иметь марковское свойство. Затем он обрабатывает это состояние с помощью функции политики, которая решает, какое действие предпринять. В OpenAI Gym термин агент является неотъемлемой частью деятельности по обучению с подкреплением. Вкратце, агент описывает, как запустить алгоритм обучения с подкреплением в тренажерном зале. Агент может содержать алгоритм или обеспечивать интеграцию, необходимую для алгоритма и среды OpenAI Gym. Более подробную информацию о том, как работает агент, вы можете найти здесь.

Окружающая обстановка

В спортзале среда - это симуляция, которая представляет задачу или игру, в которой работает агент. Когда агент выполняет действие в среде, он получает наблюдения из среды, которые состоят в награде за это действие. Эта награда сообщает агенту, насколько хорошим или плохим было действие. Наблюдение сообщает агенту, каково его следующее состояние в окружающей среде. Таким образом, методом проб и ошибок агент пытается выяснить оптимальное поведение в окружающей среде, чтобы выполнить свою задачу наилучшим образом. Одной из сильных сторон OpenAI Gym является наличие множества готовых сред, предназначенных для обучения алгоритмов обучения с подкреплением. Возможно, вы захотите просмотреть обширный список сред, доступный в инструментарии Gym. Некоторые из хорошо известных сред в тренажерном зале:

Алгоритмический: в этих средах выполняются вычисления, например обучение копированию последовательности.

import gym
env = gym.make('Copy-v0') #Copy is just an example of the Algorithmic environment.
env.reset()
env.render()

Atari. Среда Atari состоит из большого количества классических видеоигр Atari. Это была значительная часть исследований обучения с подкреплением. Вы можете установить зависимости через

pip install -e ‘. [atari]’ (вам потребуется установить CMake), а затем выполните следующие команды:

import gym
env = gym.make('SpaceInvaders-v0') #Space invaders is just an example of Atari.
env.reset()
env.render()

Приведенные выше коды позволяют вам установить atari-py, который автоматически компилирует среду обучения Arcade. Однако вы должны знать, что для завершения этого процесса требуется время.

Box2d: Box2d - это физический 2D-движок. Вы можете установить его с помощью pip install -e ‘. [Box2d]’, а затем выполните следующие команды:

import gym
env = gym.make('LunarLander-v2') #LunarLander is just an example of Box2d.
env.reset()
env.render()

Классический элемент управления: это разные классические элементы управления для небольших задач обучения с подкреплением, в основном из литературы по обучению с подкреплением.

Вам нужно будет запустить pip install -e ‘. [Classic_control]‘, чтобы включить рендеринг, а затем выполнить следующие коды:

import gym
env = gym.make ('CartPole-v0') #CarPole - всего лишь пример.
env.reset ( )
env.render ()

MuJoCo: MuJoCo - это физический движок, разработанный для более быстрого и точного моделирования роботов. Это проприетарное программное обеспечение. Однако доступны бесплатные пробные лицензии. Инструкции в mujoco-py помогут вам его настроить. Вам необходимо запустить pip install -e ‘. [Mujoco]’, если вы не выполнили всю установку, а затем выполните следующие команды:

import gym
env = gym.make('Humanoid-v2') #Humanoid is just an example of MuJoCo.env.reset()

Робототехника: обычно в этих средах для визуализации используется MuJoCo. Запустите pip install -e ‘. [Robotics]’ и попробуйте следующие команды:

import gym
env = gym.make('HandManipulateBlock-v0') #HandManipulateBlock is just an example.
env.reset()
env.render()

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

import gym
env = gym.make('FrozenLake-v0') #FrozenLake is just an example.
env.reset()
env.render()

Существуют также сторонние среды, которые вы можете изучить здесь.

Наблюдения за тренажерным залом OpenAI

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

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

Награда (с плавающей запятой): вознаграждение - это скалярная величина, предоставляемая в форме обратной связи агенту для навигации в процессе обучения. Основная цель агента - максимизировать сумму вознаграждения, а сигнал вознаграждения указывает на эффективность агента на любом данном этапе. Например, в игре Atari сигнал вознаграждения может давать +1 для каждого случая увеличения количества очков или -1, когда количество очков уменьшается.

Готово (логическое значение): в основном используется, когда требуется сбросить среду. В этом процессе большинство задач делятся на четко определенные объекты, а True является индикатором завершенного эпизода. Например, в игре Atari Pong, если вы потеряли мяч, эпизод прерывается, и вы получаете «Done = True».

Информация (dict): Это полезно для целей отладки. Например, на этапе изучения модели могут существовать необработанные вероятности того, когда состояние окружающей среды изменилось в последний раз. Однако вы должны знать, что официальная оценка агента не может использовать это для обучения. Это случай цикла «агент-среда». На каждом временном шаге агент выбирает действие, а среда возвращает наблюдение и награду. Этот процесс начинается с вызова reset (), который возвращает вам первоначальное наблюдение. Вот пример кода, как это можно сделать.

Для получения дополнительной информации посетите этот сайт.

Подробнее об обучении с подкреплением

Вы можете многое сделать с помощью обучения с подкреплением, независимо от того, связано оно с видеоиграми или нет. Основные навыки можно использовать в самых разных целях, от торговли акциями и финансов до кибербезопасности и искусства. Независимо от вашего приложения, обучение с подкреплением всегда можно использовать. Если вы зарегистрируетесь для участия в предстоящем 20 июля тренинге Ai + Обучение с подкреплением для игр и не только, вы приобретете основные навыки, необходимые для применения RL, как хотите. Основные моменты сессии:

  • Получите знания о новейших алгоритмах, используемых в обучении с подкреплением.
  • Понять среду тренажерного зала OpenAI
  • Создайте свою индивидуальную среду в тренажерном зале
  • Использование TensorFlow для создания агента RL для игры в игру Atari
  • Научитесь применять RL в задачах, отличных от игр

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