open gym что это

Знакомство с Panda Gym

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

К старту курса о машинном и глубоком обучении знакомим читателей с panda-gym — это библиотека с открытым исходным кодом, предоставляющая среду обучения с подкреплением интегрированному с Gym роботу Franka Emika Panda. Поддерживаются среды игр Atari, настольных игр, физические симуляции в 2D и 3D и многое другое. Это позволяет обучать несколько агентов, сравнивать их или разрабатывать новые алгоритмы машинного обучения для задач обучения с подкреплением. Подробности, как всегда, под катом, а в конце вы найдёте ссылку на блокнот Google Colab.

При разработке интеллектуальной машины важную роль играют Reinforcement Learning и среда обучения машины. Применяемая для машинного обучения среда разработки не менее важна, чем применяемые в решении задачи прогнозного моделирования методы машинного обучения.

В задаче обучения с подкреплением среда составляет основные и фундаментальные элементы, поэтому важно понимать базовую среду, с которой агент RL будет взаимодействовать. Понимание среды помогает разработать правильный дизайн и методику обучения преподаваемого агента.

Среда — это мир агента, в котором он живёт; агент взаимодействует со средой, выполняя какие-то действия, но, выполняя эти действия, он не имеет права влиять на правила или динамику среды, подобно тому, как люди — агенты в земной среде и ограничены её законами.

Мы можем взаимодействовать со средой, но не можем изменить законы. Среда также даёт агенту вознаграждение: возвращаемое скалярное значение, которое действует как обратная связь, информируя агента о том, было ли его действие хорошим или плохим.

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

Типов учебных сред несколько:

Детерминированная среда, где следующее состояние среды всегда определяется текущим состоянием и действиями агента.

Стохастическая среда обучения с подкреплением, где следующее состояние не всегда определяется текущим состоянием или действиями агента.

Одноагентная среда, где существует и взаимодействует со средой только один агент.

Многоагентная среда: Где присутствует более одного агента, взаимодействующего со средой.

Дискретная среда, пространство действий которой имеет дискретный характер.

Непрерывная среда, пространство действий которой непрерывно по своей природе.

Эпизодическая среда, где действия агента ограничены только конкретным эпизодом и не связаны с предыдущими действиями.

Последовательная среда, где действия агента связаны с его предыдущими действиями.

Что такое Gym Open AI?

Gym — инструментарий для разработки и сравнения алгоритмов обучения с подкреплением с открытым исходным кодом. Работа с ним облегчается тем, что он позволяет структурировать среду при помощи всего нескольких строк кода и совместим с любой библиотекой вычислений, такой как TensorFlow или Theano.

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

О Panda-Gym

В среде моделирования можно выполнять 5 задач: дотягиваться, толкать, скользить, подбирать, размещать и укладывать предметы в стопку. Она работает с многоцелевым фреймворком, что позволяет задействовать ориентированные на конкретные цели алгоритмы обучения с подкреплением.

В целях содействия открытым исследованиям используется физический движок PyBullet с открытым исходным кодом. Реализация, выбранная для этого пакета, позволяет легко определять новые задачи или даже создавать новых роботов.

Симуляция и её проблемы

Представленная среда состоит из роботизированной руки Panda, известной как Franka Emika1, которая широко применяется в симуляциях и реальных академических работах. Робот имеет 7 степеней свободы и параллельный пальцевый захват. Он моделируется с помощью физического движка PyBullet, который, обладая открытым исходным кодом, помогает продемонстрировать производительность моделирования. Среды интегрированы с OpenAI Gym, что позволяет работать со всеми основанными на её API алгоритмам обучения.

Задача моделирования заключается в перемещении или захвате объектов в заданное положение и считается выполненной, если расстояние между перемещаемым объектом и целевой позицией менее 5 см.

Уровень сложности пяти представленных задач можно настроить. В задаче PandaReach-v1 необходимо достичь целевой позиции с помощью захвата; положение цели генерируется случайным образом в объёме 30 см × 30 см × 30 см.

В задаче PandaPush-v1 помещенный на стол кубик нужно подтолкнуть к целевой позиции на поверхности стола в условиях блокированного захвата. Здесь целевое и начальное положения кубика генерируются случайным образом в квадрате 30 × 30 см вокруг нейтрального положения робота.

Задача симуляции PandaSlide-v1 такова: плоский цилиндр при заблокированном захвате нужно переместить в заданное положение на поверхности стола. Положение цели генерируется случайным образом в квадрате 50 × 50 см, этот квадрат расположен на 40 см перед роботом в нейтральном положении.

Поскольку целевые позиции находятся вне пределов досягаемости робота, объекту нужно придать импульс, а не просто толкнуть его. В симуляции PandaPickAndPlace-v1 необходимо привести куб в целевое положение, созданное в объеме 30 × 30 × 20 см над столом. Чтобы поднять кубик, нужно подцепить его пальцами захвата.

В задаче PandaStack-v1 два кубика должны быть уложены в заданную позицию на поверхности стола. Положение цели формируется в квадрате 30 × 30 см. Укладка должна быть выполнена правильно: красный кубик должен находиться под зелёным. Все эти задачи моделирования ещё исследуются и пока не имеют идеального решения.

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Программируем

Попытаемся выполнить две симуляции из Panda Gym Challenge и понять, что требуется для разработки и настройки среды. Следующая реализация вдохновлена создателями panda-gym. Установим библиотеку, работая в Google Colab:

Установим среду и симуляцию:

Чтобы настроить окружение, вы можете выполнить строки кода ниже. Гиперпараметры можно настроить в соответствии с требуемой производительностью; здесь проведём базовую, демонстрационную симуляцию. Далее установим библиотеку numpngw — это пакет, определяющий функцию write_png, которая записывает массив NumPy в файл PNG, а также write_apng — в последовательность массивов анимированного файла PNG (APNG).

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Мы видим, что робот при помощи захвата перемещает блок! Кроме того, видно два положения блока. Хотя моделирование может оказаться не очень чётким, его можно дополнительно настроить гиперпараметрами или ради большей производительности рендеринга запустить на более совершенной вычислительной системе. Теперь моделируем задачу скольжения захвата и извлечём слайды её выполнения:

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Время визуализации и другие параметры обучения и среды можно настраивать. Инструмент очень удобен для тестирования алгоритмов глубокого обучения с подкреплением. Иногда возникают ограничения, например ограничения в управлении захватом: он может управляться только высокоуровневыми действиями. Чтобы внедрить политику обучения, потребуются дополнительные усилия. Кроме того, симуляция не реалистична до конца; основная проблема — форма захвата объектов в среде у самого робота.

Заключение

Благодаря этой статье мы увидели сущность обучающей среды в области обучения с подкреплением. Мы также попытались понять задачу panda-gym и выполнили базовую демонстрационную симуляцию двух задач рендеринга роботизированной руки Franka Emika1. Реализацию можно найти в блокноте Google Colab. Приятного моделирования!

Такая простая среда, на грани умозрительной, уже способна завораживать. Можно представить, что будет через несколько лет, когда искусственный интеллект продвинется в приобретении здравого смысла, а мощностей станет ещё больше. ИИ превратится в неотъемлемую часть огромного множества областей, а в бизнесе станет необходимостью, которая обеспечивает способность конкурировать с другими. Это означает, что востребованность специалистов в глубоком и машинном обучении будет только расти. Если сфера искусственного интеллекта вам интересна, то вы можете обратить внимание на наш курс о машинном и глубоком обучении или на флагманский курс по Data Science, в конце которого сможете получить специализацию по ML. Также вы можете узнать, как начать карьеру с чистого листа или продолжить развиваться в других направлениях:

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Data Science и Machine Learning

Источник

OpenAI Universe. Открытая платформа для тренировки сильного ИИ

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это
Набор задач для обучения с подкреплением сильного ИИ в рамках универсальной платформы OpenAI

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

Всего девять строчек кода — и вашему ИИ доступны тысячи окружений для тренировки.

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

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это
Искусственный интеллект познает мир через интерфейс программы VNC для удалённого доступа к рабочему столу

Предполагается тренировать интеллектуального агента на полном наборе задач. Платформа Universe открывает для ИИ любые задания, которые человек способен решать за компьютером.

Окружения OpenAI Gym

Открытие всеобщей универсальной платформы — продолжение планомерных действий OpenAI по созданию всемирного открытого универсального ИИ. В апреле текущего года организация выпустила публичную бета-версию инструментария OpenAI Gym для разработки и сравнения алгоритмов обучения с подкреплением. «Спортзал» OpenAI Gym состоит из большого количества окружений (от симулятора гуманоидного робота до игр Atari). Есть сайт для сравнения и воспроизведения результатов.

OpenAI Gym совместим с алгоритмами, написанными в любом фреймворке, в том числе Tensorflow и Theano. Изначально окружения создаются на Питоне, но в будущем разработчики планируют сделать возможность реализовать их на любом языке программирования.

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

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это
Сигнал подкрепления распознаётся модулем оптического распознавания текста на скорости 60 fps: видео

Связующий софт OpenAI Universe

Представленная сегодня Universe — это связующее программное обеспечение, которое полностью поддерживает среду набор инструментов и среду выполнения окружений OpenAI Gym. Благодаря этому связующему ПО планируется кардинально увеличить количество окружений для тренировки ИИ.

Если раньше крупнейший каталог приложений для обучения с подкреплением включал в себя только 55 игр Atari (Atari Learning Environment), то на платформе Universe ожидается появление игр от многих других разработчиков, в том числе Valve, EA и Microsoft.

С самого начала через «миддлварь» Universe доступны тысячи игр (флэш-игры, многопользовательские змейки Slither, Starcraft, GTA V ми другие), разнообразные браузерные задачи (вроде заполнения форм) и приложения (такие как головоломки fold.it). Практически любую игру можно свободно запустить с помощью питоновской библиотеки universe, которая опубликована в открытом доступе на Github.

Вышеприведённый код запускает агента искусственного интеллекта играть в игру Dusk Drive.
open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это
Игра Dusk Drive

«Наша конечная цель состоит в разработке единого интеллектуального агента, который способен гибко применять опыт, накопленный в Universe, для решения новых задач и быстрого получения нового опыта, что станет важным шагом на пути к сильному ИИ», — сказано в заявлении OpenAI.

Программные окружения Universe устанавливаются в контейнерах Docker. Как уже было сказано, они общаются с интеллектуальным агентом посредством визуального интерфейса — через «экран», «клавиатуру» и «мышь», как с человеком. Интерфейс реализован с помощью программы VNC для удалённого доступа к рабочему столу.

По идее, постоянное повышение мастерства ИИ с накоплением опыта в различных мелких задачах поможет ему всё быстрее осваивать каждую новую задачу, применяя уже имеющиеся знания. Платформа и набор окружений Universe может стать для интеллектуальных агентов такой же стандартной единой площадкой для тренировки и обучения с подкреплением, какой является набор данных ImageNet — база изображений для обучения классификаторов нейросетей при обучении с учителем.

Обучение с подкреплением действительно может быть весьма эффективным. Например, интеллектуальный агент Universe примерно шесть суток тренировался играть в многопользовательскую веб-игру Slither. После шести дней ИИ набирает в игровых сессиях в среднем 1000 очков с максимальным результатом 1400 очков. Для сравнения, сотрудник из организации OpenAI с пятичасовым опытом игры набирает в среднем 1400 очков с максимальным результатом 7050.

Источник

OpenAI Gym+ROS+Gazebo: обучение автономного робота в домашних условиях. Часть 1

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

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

Похожие мысли были и у доктора Эндрю Ховарда, когда он со своим учеником Нейтоном Кенигом в 2002 году приступил к разработке 3D симулятора Gazebo в Университете Южной Калифорнии. Концепция симулятора высокой точности возникал из-за необходимости тестировать роботов в различных сложных условиях вне помещений. На первых этапах разработки такой подход позволяет сэкономить время и средства на приобретении необходимого оборудования.

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

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Всем привет. Я учусь на магистратуре (Computer Science, M.S.) прикладной информатики в Берлинском Университете Прикладных Наук (HTW-Berlin).

В рамках своей курсовой я работаю над методами обучения автономных роботов в симулируемой среде с использованием ROS [1], Gazebo [2] и OpenAI Gym [3]. Эта курсовая работа разделена на две части.

Первая часть посвящена разработке фреймворка, который бы упростил тестирование Reinforcement Learning (обучение с подкреплением) алгоритмов на различных автономных роботах внутри симуляции Gazebo.

Во второй части я сконцентрируюсь на реализации алгоритма для автономного вождения. Над этим я буду работать весь следующий семестр, поэтому в этой и следующих статьях речь пойдет в основном о реализации окружения OpenAI Gym для Gazebo. Непосредственно Reinforcement Learning (RL) будет затронут поверхностно.

Полный код проекта можно найти тут.

Системные требования

Часть первая: введение

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

ROS: «не изобретать велосипед»

Robot Operating System (ROS) — это фреймворк для программирования роботов. ROS является «программным клеем», который дает возможность разработчикам сосредоточиться на своей конкретной задаче. Хотя ROS не является операционной системой, он предоставляет сервисы, такие как аппаратная абстракция, низкоуровневое управление устройствами, реализация часто используемых функций, передача сообщений между процессами и управление пакетами (плагинами).

ROS спроектирована как слабо связанная система, в которой процесс, называемый узлом (node), должен отвечать за одну задачу. Узлы общаются друг с другом, используя сообщения, проходящие через логические каналы, называемые темами (topics). Каждый узел может отправлять или получать данные от другого узла, используя шаблон проектирования издатель-подписчик (publish–subscribe pattern)

Для ROS, уже реализованы драйвера, позволяющие единым образом работать со многими устройствами, такими как контроллеры, GPS, камеры, лазерные дальномеры и т. п.

И так, установим ROS Melodic (полная инструкция)

По какой-то причине полный пакет установки не включает в себя некоторые необходимые пакеты. Установим их отдельно:

Мы не будем останавливаться на них подробно. Они нужны для управления нашим роботом, речь о котором пойдет дальше.

Gazebo

Gazebo — это динамический 3D симулятор с открытым исходным кодом, который развивается Open Source Robotic Foundation и довольно тесно взаимодействует с ROS. Gazebo позволяет точно и эффективно моделировать роботов как в сложных условиях помещений, так и снаружи.

Симулятор состоит из сервера gzserver, который занимается просчетом физики, столкновений и симуляцией сенсоров. К серверу могут подсоединяться клиенты, например gzclient (для десктопа) и gzweb (для браузера). Именно они занимаются рендерингом моделей.

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

Gazebo включен в полный установочный пакет ROS, поэтому дополнительно ничего устанавливать не нужно. Для headless конфигурации требуется gzweb. О нем я расскажу в следующих частях.

OpenAI Gym

OpenAI — некоммерческая исследовательская компания, занимающаяся искусственным интеллектом, одним из основателей которой является Илон Макс.
OpenAI Gym — это библиотека Python, которая предоставляет API для разработки и сравнения RL алгоритмов с огромным количество виртуальных сред и общим API. Gym уже имеет множество готовых окружений, в том числе для игр Atari.

openai_ros

Мой проект основан на пакете openai_ros. Этот пакет реализует архитектуру, которая была предложена командой The Construct. Ребята из The Construct разработали общую структуру, которая реализует необходимый API для управления симуляцией и описывает API для интеграции Gazebo в Gym, требующий минимальной реализации. Предложенная структура состоит из трех логических слоев (фактически можно использовать любое количество), самый низкий из них является еще одним “клеем”, который соединяет Gym API с Gazebo. Подробней об этом в следующей части, когда мы будем разбирать код.

Собираем все вместе

Для начала нам нужно создать рабочую директорию для catkin. catkin — это система автоматизации сборки наподобие CMake, которая включена по умолчанию в пакет установки ROS:

и склонировать необходимые пакеты ROS.

MIT Racecar

Нам потребуется разработанная в MIT модель робота со всеми сенсорами.

openai_ros

neuroracer

Ну и, собственно, сам проект

Далее нужно скомпилировать все эти пакеты

Так же нужно установить все необходимые python библиотеки.

Запуск симуляции

Для запуска любого пакета ROS нам прежде всего нужно загрузить в текущую сессию терминала все ROS пакеты, которые мы скомпилировали:

Теперь мы можем запустить симуляцию Racecar робота:

Эта команда запустит мастер сервер ROS, сервер Gazebo вместе с его UI (на десктопе), загрузит робота и мир для него.

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

И тоже самое во втором терминале для нашего RL алгоритма:

Эта команда запустит наш neuroracer_gym_rl пакет, который реализует простенький Q-Learning алгоритм в нашем окружении Gym. Его мы разберем в следующей части.

Те, кому не терпится, могут найти исходный код тут. Забегая вперед, скажу, что после нескольких дней обучения на сервере с картой GeForce GTX 1080 Ti 11GB RAM, этот простой алгоритм толком ничему не научился. В следующей части я причислю возможные причины, но вы уже сейчас можете поэкспериментировать со своей реализацией.

Заключение

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

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

Ссылки

[1] (M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng. Ros: an open-source robot operating system. In ICRA workshop on open source software, volume 3, page 5. Kobe, Japan, 2009.

[2] N. P. Koenig and A. Howard. Design and use paradigms for gazebo, an open-source multi-robot simulator. In IROS, volume 4, pages 2149–2154. Citeseer, 2004.

[3] L. P. J. S. J. S. J. T. W. Z. Greg Brockman, Vicki Cheung. Openai gym, 2016, arXiv:1606.01540

Источник

Начало работы с обучением укреплению и Open AI Gym

Дата публикации Feb 22, 2019

Это третья из серии статей по обучению подкреплению и открытому AI Gym. Часть 1 можно найтиВот, а часть 2 можно найтиВот,

Введение

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

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

Это где OpenAI Gym приходит.

Он был разработан с целью стать стандартизированной средой и эталоном для исследований в области естественных наук.

В этой статье мы будем использовать среду OpenAI Gym Mountain Car, чтобы продемонстрировать, как начать использовать этот захватывающий инструмент, и показать, как Q-learning можно использовать для решения этой проблемы.

В этом руководстве предполагается, что на вашем компьютере уже установлен OpenAI Gym. Если вы этого не сделали, инструкции по установке можно найтиВотдля Windows иВотдля Mac или Linux.

Проблема Горных Автомобилей

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

На сайте OpenAI Gym проблема Mountain Car описывается следующим образом:

Чтобы начать с этой среды, импортируйте и инициализируйте ее следующим образом:

Изучение окружающей среды

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

Вы можете увидеть размер этих пространств, используя:

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

По умолчанию эти три действия представлены целыми числами 0, 1 и 2. Однако мы не знаем, какие значения могут принимать элементы вектора состояния. Это можно найти с помощью:

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

Одним из способов решения этой проблемы является использование глубоких Q-сетей (DQN). DQN объединяют глубокое обучение с Q-обучением, используя глубокую нейронную сеть в качестве аппроксиматора для Q-функции. DQN были успешно применены для разработки искусственного интеллекта, способного играть в видеоигры Atari.

Однако для такой простой задачи, как проблема с Горным автомобилем, это может быть немного излишним.

Это уменьшает количество пар «состояние-действие» до 855, что теперь позволяет выполнить условие, необходимое для схождения Q-обучения.

Резюме Q-Learning

В первой статье этой серии мы подробно рассмотрели алгоритм Q-обучения. При использовании этого алгоритма мы предполагали одномерное пространство состояний, поэтому нашей целью было найти оптимальную Q-таблицу,Q(s, ).

В этой задаче, поскольку мы имеем дело с двумерным пространством состояний, мы заменяемQ(s, ) сQ(s1,s2, ), но в остальном алгоритм Q-обучения остается более или менее неизменным.

Напомним, что алгоритм выглядит следующим образом:

гдевесэто скорость обучения иdставка дисконтирования;

6. Повторите шаги 2–5 до схождения.

Q-Learning в OpenAI Gym

Чтобы реализовать Q-learning в OpenAI Gym, нам нужны способы наблюдения за текущим состоянием; предпринимать действия и наблюдать за последствиями этих действий. Это можно сделать следующим образом.

Начальное состояние среды возвращается при сбросе среды:

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

В целях отслеживания эта функция возвращает список, содержащий среднее суммарное вознаграждение за каждый прогон из 100 эпизодов. Он также визуализирует движения горной машины в последних 10 эпизодах, используя env.render() метод.

Среда визуализируется только для последних 10 эпизодов, а не для всех эпизодов, поскольку визуализация среды значительно увеличивает время выполнения кода.

Предположим, что мы принимаем скорость обучения 0,2, ставку дисконтирования 0,9, начальное значение эпсилона 0,8 и минимальное значение эпсилона 0. Если мы запустим алгоритм для 500 эпизодов, в конце этих эпизодов машина запустилась чтобы понять, что ему нужно отскочить назад и четвертым, чтобы набрать обороты, необходимые для подъема на гору, но сделать это можно только на полпути.

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

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

Составляя график среднего вознаграждения в сравнении с номером эпизода для 5000 эпизодов, мы можем видеть, что первоначально среднее вознаграждение является довольно плоским, при этом каждый цикл заканчивается после достижения максимальных 200 движений. Это этап исследования алгоритма.

open gym что это. Смотреть фото open gym что это. Смотреть картинку open gym что это. Картинка про open gym что это. Фото open gym что это

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

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

Резюме

В этой статье мы продемонстрировали, как можно использовать RL для решения проблемы OpenAI Gym Mountain Car. Чтобы решить эту проблему, необходимо было дискретизировать наше пространство состояний и внести небольшие изменения в алгоритм Q-обучения, но, кроме этого, использовался тот же метод, который использовался для решения простой проблемы мира сетки в первой статье. в этой серии.

Но это только одна из многих сред, доступных пользователям в Open AI Gym. Для читателей, заинтересованных в самостоятельном использовании навыков, которые они изучили в этой статье, я рекомендую поэкспериментировать с любой другой проблемой Classic Control (доступной здесь), а затем перейти к задачам Box 2D.

Постоянно модифицируя и опираясь на алгоритм Q-обучения, должно быть возможно решить любую из сред, доступных пользователям OpenAI Gym. Тем не менее, как и во всем, первым шагом является изучение основ Это то, что нам удалось сделать сегодня.

об авторе

Я ученый с более чем 15-летним опытом работы в индустрии данных. У меня есть докторская степень в области статистики в Австралийском национальном университете и степень магистра компьютерных наук (машинное обучение) в Технологии Джорджии. Вы можете связаться со мной на LinkedInВот,

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *