Добро пожаловать. Знакомство с тренажерным залом 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 обучения для решения простой среды тренажерного зала с открытым ИИ. Спасибо за чтение. Не стесняйтесь комментировать и высказывать свое мнение.

Дополнительные ресурсы: