OpenAI - это некоммерческая исследовательская компания, которая сосредоточена на создании ИИ таким образом, чтобы это было полезно для всех. Его основали Илон Маск и Сэм Альтман. Миссия OpenAI, изложенная на их веб-сайте, состоит в том, чтобы «создать безопасный AGI и обеспечить максимально широкое и равномерное распределение преимуществ AGI».
OpenAI Gym - это набор инструментов для разработки и сравнения алгоритмов обучения с подкреплением. Он поддерживает обучение агентов всему, от ходьбы до игр, таких как понг или пинбол. Gym - это интерфейс с открытым исходным кодом для задач обучения с подкреплением. Тренажерный зал предоставляет среду, и разработчик может реализовать любые алгоритмы обучения с подкреплением. Разработчики могут написать агент, используя существующую библиотеку численных вычислений, такую как TensorFlow или Theano.
Образец кода тренажерного зала
Давайте посмотрим на пример кода для создания среды под названием «Такси-v1».
импорт тренажерный зал
env = gym.make (Такси-v1)
Другой код, представленный ниже, выполнит экземпляр среды «CartPole-v0» для 1000 временных меток, визуализируя среду на каждом шаге. Как только это будет выполнено, мы увидим всплывающее окно, отображающее классическую проблему с тележкой:
import gym
env = gym.make ('CartPole-v0')
obs = env.reset ()
для _ in range (1000):
env.render ()
env.step (env.action_space.sample ()) # выполнить случайное действие
Ниже приводится результат, который мы видим в терминале при выполнении вышеуказанного кода.
Следующее - всплывающее окно, которое показывает выполняемую среду тележки полюса.
CartPole - это традиционная задача обучения с подкреплением, в которой вам нужно балансировать клюшкой.
Попробуем разобраться в этом коде:
- gym.make (НАЗВАНИЕ ОКРУЖАЮЩЕЙ СРЕДЫ): возвращает среду, переданную в качестве параметра. Если вы перейдете по этой ссылке https://gym.openai.com/envs/#classic_control, вы увидите список всех различных сред, добавленных сообществом. Другой список всех сред можно найти по этой ссылке: https://github.com/openai/gym/wiki/Table-of-environments
- env.reset (): эта команда сбросит среду, как показано ниже на снимке экрана. Он возвращает первоначальное наблюдение.
- for _ in range (1000): эта строка в коде Python будет запускать экземпляр среды CartPole-v0 для 1000 временных шагов.
- env.render (): эта команда отобразит всплывающее окно. Поскольку он записывается в цикле, обновленное всплывающее окно будет отображаться для каждого нового действия, выполняемого на каждом шаге.
- env.step (): эта команда будет выполнять действие на каждом шаге. Действие указывается как его параметр. Функция Env.step возвращает четыре параметра, а именно наблюдение, награду, выполненное и информацию. Эти четыре объясняются ниже:
а) наблюдение: зависящий от окружающей среды объект, представляющий ваше наблюдение за окружающей средой.
б) вознаграждение: сумма вознаграждения, полученного за предыдущее действие. Это значение типа данных с плавающей запятой. Масштаб варьируется в зависимости от среды.
c) done: логическое значение, указывающее, пора ли снова сбросить среду.
d) info (dict): диагностическая информация, полезная для отладки.
На каждом временном шаге агент выбирает действие, а среда возвращает наблюдение и вознаграждение.
Надеюсь, эта статья даст вам представление о том, что такое OpenAI Gym и как вы можете использовать его для реализации своих алгоритмов обучения с подкреплением.
Меня зовут Ашиш @ashish_fagna. Я консультант по программному обеспечению. Профиль LinkedIn. Если вам понравилась эта статья, порекомендуйте и поделитесь ею! Спасибо за ваше время.
Вы также можете связаться со мной по электронной почте ashish [dot] fagna [at] gmail.com