Добро пожаловать. Знакомство с тренажерным залом RL и OpenAI.
Мотивация для написания серии блогов об ИИ и роботизированных операционных системах:
Операционная система роботов (ROS) - это гибкая платформа для написания программного обеспечения для роботов. Это набор инструментов, библиотек и соглашений, которые призваны упростить задачу создания сложного и надежного поведения роботов на самых разных роботизированных платформах.
ROS используется для создания приложения для физического робота вне зависимости от реальной машины, что позволяет сэкономить средства и время. Эти приложения могут быть перенесены на физического робота без изменений.
Способность роботов принимать решения может быть поддержана с помощью ИИ. Случаи, когда агент-робот должен изучить оптимальные стратегии в многомерном пространстве состояний, часто означают, что генерировать достаточные обучающие данные с помощью реальных экспериментов непрактично. Это виды задач, в которых обучение с подкреплением лучше всего. Для многих других задач восприятия мы могли бы использовать глубокое обучение.
Мы могли бы обучить робота, используя обучение с подкреплением или глубокое обучение в симуляции, с возможностью затем передать это реальному роботу. Сегодня этот метод широко используется в обучении дронов, автономных транспортных средств, роботизированного оружия, складских роботов и этот список можно продолжить. Никогда не было лучшего времени, чтобы глубоко окунуться в эту местность.
Я был свидетелем того, что материалов об использовании ИИ для обучения роботов в ROS мало в Интернете, поэтому решил написать о них серию статей.
Статьи этой серии будут разделены на 3 части:
1. Сосредоточен на открытии интуитивного понимания обучения с подкреплением (RL), глубокого обучения с подкреплением (DeepRL) и глубокого обучения (DL).
2. Ориентирован исключительно на основы ROS.
3. Обучение роботов-агентов с использованием методов RL, DeepRL и DL в моделировании ROS.
Эта статья посвящена введению в обучение с подкреплением и тренажерный зал Open AI.
Проще говоря, обучение с подкреплением - это математический подход, при котором агент взаимодействует с окружающей средой, предпринимая действия, в которых он пытается максимизировать накопленное вознаграждение.
Агент в текущем состоянии (St) выполняет действие (At), на которое среда реагирует и реагирует, и возвращает агенту новое состояние (St + 1) и вознаграждение (Rt + 1). Учитывая новое обновленное состояние и награду, агент выбирает следующее действие, и цикл повторяется до тех пор, пока среда не будет решена или завершена. Ожидается, что в процессе агент узнает оптимальный набор действий, которые необходимо предпринять для достижения цели.
Но что это за окружающая среда?
Это зависит! Для дрона, который обучается маневрировать, открытое пространство, в котором он обучается, является его средой. Скорость, местоположение и уровень топлива могут определять его состояние. Для агента, обученного игре в шахматы, шахматная доска - это среда.
Что вы на самом деле имеете в виду, когда говорите, что агент взаимодействует с окружающей средой?
Среда должна позволять агенту выполнять действия в любом заданном состоянии среды, что должно приводить к переходу состояния и возвращать вознаграждение за переход в новое состояние.
Что это за награды? Почему окружение должно возвращать награду за переход в новое состояние?
Вознаграждения - это просто сигналы, с помощью которых мы сообщаем агенту о том, что он должен в конечном итоге достичь, это средства, с помощью которых агент понимает цель, а также использует значения вознаграждения для определения оптимального способа достижения цели.
В чем заключаются важные различия между методом подкрепления и обучением с учителем?
В случае обучения с подкреплением награда обычно откладывается. Например, в игре в шахматы награда за победу получается только после серии ходов, которые привели к положительному исходу. Это отличается от настройки контролируемого обучения, в которой обратная связь доступна сразу с помощью меток.
Действия, предпринятые в данный момент времени, влияют на будущие наблюдения. Например, направление, в котором робот решает двигаться, влияет на его будущее мировоззрение.
Каковы некоторые из сложных сценариев, в которых обучение с подкреплением помогает найти оптимальную стратегию?
- Награды откладываются, мышь, преследующая куски сыра, может попасть в ловушку! Так что немедленное вознаграждение на самом деле не имело большого значения.
- В ситуациях, когда результат действия неизвестен, вы можете не знать, как среда реагирует на данное действие. Рассмотрим сценарий фондового рынка: одни и те же действия / инвестиции могут не привести к аналогичным результатам.
- Возможно, вы не сможете полностью ощутить состояние мира. Во многих сценариях наблюдение за окружающей средой может не улавливать все важные параметры.
- Вознаграждение может быть стохастическим / вероятностным.
- Окружающая среда может измениться в процессе обучения.
Чтобы обучить агента с использованием RL, нужна среда, в которой агент может взаимодействовать, где состояние агента четко определено, могут быть предприняты действия и получены награды, верно?
Да, это правда.
Прежде чем применять алгоритмы RL к проблемам реального мира, мне нужна среда, в которой можно изучать, пробовать, тестировать и экспериментировать с методами RL !!! Что я должен делать?
Хорошо!! Тренажерный зал OpenAI здесь для вашего спасения !!!!!
OpenAI Gym - это набор инструментов / библиотека для разработки и сравнения алгоритмов обучения с подкреплением . Это gym
библиотека с открытым исходным кодом, которая дает вам доступ к стандартизированному набору сред.
Тренажерный зал - это набор сред, предназначенных для тестирования и разработки алгоритмов обучения с подкреплением. Это избавляет от необходимости создавать среду для опробования методов RL. Gym написан на Python. Существует также онлайн-таблица лидеров, где люди могут сравнивать результаты и код.
Вот некоторые подробности о библиотеке gym
.
import gym
Импортирует открытый модуль Python для тренажерного зала с искусственным интеллектом
gym.make("cartpole-v0")
Он загружает среду carpole, https://gym.openai.com/envs содержит список всех доступных сред.
Вот описание окружения тележки и цели, шест прикреплен незадействованным шарниром к тележке, которая движется по пути без трения. Маятник запускается вертикально, и цель состоит в том, чтобы предотвратить его падение за счет увеличения и уменьшения скорости тележки.
В любой момент времени состояние системы в среде тележки определяется 4-мя переменными:
Есть только 2 возможных действия.
Итак, цель задания - посмотреть на состояния и выбрать одно из двух действий, чтобы сбалансировать полюс.
Информация о любой данной среде может быть получена с помощью env.observation_space
, различные методы для этого объекта помогут вам лучше понять состояние и среду. Аналогичным образом методы объекта env.action_space
помогают понять пространство действия. Эти методы очень полезны, поскольку представление состояния и возможные действия различаются в зависимости от среды.
Перед запуском эпизода необходимо запустить функцию сброса,
env.reset()
Теперь вот как выполнить действие и получить новое состояние и связанную с ним награду в результате действия,
state, reward, done, info = env.step(action)
Давайте проведем эпизод по окружающей среде, давайте каждый раз выбираем случайное действие и посмотрим, как долго мы сможем удерживать шест в вертикальном положении.
Поскольку действия случайны, мы не сможем удерживать шест надолго,
На этом пока все! В следующем блоге я расскажу об интуиции, лежащей в основе значения Q, и об использовании Q обучения для решения простой среды тренажерного зала с открытым ИИ. Спасибо за чтение. Не стесняйтесь комментировать и высказывать свое мнение.
Дополнительные ресурсы: