robossembler.org/docs/technologies/machine-learning-in-robotics.md

18 KiB
Raw Blame History

id title
machine-learning-in-robotics Применение машинного обучения в робототехнике

События

Conference on Robot Learning

Крупнейшая мировая конференция по обучению роботов (в 2020 году опубликовано 160 докладов и всё доступно для изучения)

Официальный Сайт | Youtube

Организации

Columbia Artificial Intelligence and Robotics Lab

Github

Проекты лаборатории:

Decentralized Multi-arm Motion Planner

Децентрализованный планировщик движений для ассамблей роботов манипуляторов. Планировщик обучен на 1-4 манипуляторах, но при этом показал свою работоспособность на произвольном количестве манипуляторов. То есть является масштабируемым.

В проекте использованы следующие python-библиотеки: PyTorch 1.6.0, pybullet, numpy, numpy-quaternion, ray, tensorboardX. Для визуализации симуляций в Blender одним из авторов была разработана библиотека pybullet-blender-recorder. Доступны предварительно обученные модели.

Сайт | Github | Видео | Paper

AdaGrasp: Learning an Adaptive Gripper-Aware Grasping Policy

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

Сайт | Github | Видео | Paper

Исследования

Sachin Vidyasagaran'2020

Видео-обзор исследования по основным алгоритмам обучения с подкреплением Используемое ПО: OpenAI Gym Исследование проводилось на базе виртуальной среды FetchReach-v1 от OpenAI. Обзор решений для обучения роботов от OpenAI Результат(в случае с манипулятором): DDPG показал крайне низкую производительность - достижение приемлемого результата к 600 эпохе обучения, остальные три намного лучше

  • Deep Deterministic Policy Gradient (DDPG) - 600
  • HindSight Experience Replay (DDPG+HER) - 100
  • Twin-Delayed DDPG (TD3+HER) - 150
  • Extended Twin-Delayed DDPG (ETD3+HER) - 100

Инструменты машинного обучения

OpenAI Gym

Наиболее распространённая библиотека для обучения с подкреплением

https://gym.openai.com

Gym-UnrealCV

Github

Реалистичные виртуальные миры для обучения с подкреплением. UnrealCV используется для связи Unreal Engine и Gym.

Unity ML Agents

Github

Проект для обучения агентов на Unity, интегрирована с gym. Среды мультяшные, не очень фотореалистичные.

Gym Ignition

Github | Документация | Пример применения (видео)

Фреймворк для создания воспроизводимых виртуальных сред для обучения с подкреплением. В Gym-ignition представлена попытка создания унифицированного программного интерфейса как для реальных роботов и сред, так и для виртуальных.

Фреймворк состоит из следующих компонентов:

  • ScenarI/O (Scene Interfaces for Robot Input / Output) - слой абстракции C++ для взаимодействия с виртуальными и реальными роботами. Этот слой позволяет скрыть детали реализации конкретного физического движка.
  • Gazebo ScenarI/O: Реализация интерфейсов ScenarI/O для взаимодействия с симулятором Ignition Gazebo. Предоставляются python-биндинги набором функций, сопоставимым с популярными альтернативами - например, pybullet и mujoco-py.
  • gym_ignition: python-пакет с набором инструментов для создания OpenAI Gym сред и обучения в них роботов. Пакет предоставляет такие абстрации как Task и Runtime для облегчения создания сред, которые могут запускаться прозрачно во всех реализациях ScenarI/O (различные симуляторы, реальные роботы, ...). Пакет также содержит функции для расчёта инверсной кинематики и динамики с несколькими физическими телами, поддерживающей плавающих роботов на основе библиотеки iDynTree.
  • gym_ignition_environments: Демонстрационные среды с образцовой структурой, созданные с помощью gym_ignition и gym-ignition-models.

MoPA-RL

Website | Github | Paper | Video

Фреймворк сочетает преимущества обучения с подкреплением без модели (model-free RL) и планировщика движения (motion planner, MP) на основе выборки с минимальными знаниями о конкретных задачах. Для задач, требующих касания манипулятором или его приспособлением других предметов целесообразно использовать RL-policy, а в задачах, где нужно перемещение манипулятора в сложных стеснённых условиях, используется планировщик. Ключевая роль алгоритма состоит в том, что в ходе решения задач выбирается либо планировщик движения, либо прямое выполнение политики обучения с подкреплением. Тем самым достигается высокая производительность. В симуляциях использовался движок физики Mujoco.

AirSim

Open source симулятор для автономных транспортных средств от Microsoft AI & Research. Интересен тем, что поддерживаются оба игровых движка для рендеринга - Unreal Engine и Unity(пока экспериментальная поддержка). Разработаны python-обёртки для OpenAI Gym и ROS.

Для поддержки URDF в AirSim разработан форк - UrdfSim.

RelMoGen

Leveraging Motion Generation in Reinforcement Learning for Mobile Manipulation | Paper

Gibson Environments

Сайт | Github

Набор виртуальных сред (в основном жилые помещения для людей) для обучение мобильных роботов. Используется bullet и gym-подобный интерфейс для взаимодействия с агентом.

Обучение с подкреплением - определения и подходы

Обучение с подкреплением (ОП) - разновидность алгоритмов машинного обучения, наряду с обучением без учителя и обучением с учителем.

Алгоритм состоит в следующем:

  • агент, руководствуясь стратегией (policy), воздействует (action, a) на окружающую среду с текущим состоянием (state, s)
  • в ответ агент получает новое состояние окружающей среды s' и награду r
  • на новом шаге агент меняет свою стратегию, чтобы максимизировать суммарное вознаграждение(value).

Отличие ОП и обучения с учителем

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

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

Дилемма исследования(exploration)/использования(exploitation) в ОП

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

Off-policy, on-policy

Off-policy - алгоритм ОП, где стратегия агента, воздействующего на среду (поведенческая стратегия), отличается от стратегии, которую обучают (целевая стратегия). Целевая стратегия фактически не используется для влияния на состояние среды.

On-policy - алгоритм, где воздействует на среду и обучается одна и та же стратегия. То есть стратегия обучается на тех же данных, которые генерирует.

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

Model-free, model-based

Модель описывает поведение окружеющей среды, то есть может предсказать её состояние в следующем шаге. Если модель есть и известна(model-based), то можно использовать алгоритмы планирования. Модель может быть известна заранее или формироваться в ходе взаимодействия с окружающей средой.

Model-free делятся на

  • Q-learning - алгоритм на основе обучения функции ценности действия); как правило это алгоритмы с разделённой стратегией(off-policy), чтобы сделать возможным обучение на базе предыдущего опыта, так как выборочные данные можно хранить в буфере воспроизведения.
  • Policy gradient (градиент стратегии, метод оптимизации стратегии); как правило, это on-policy алгоритмы с единой стратегией. Актор-критик (actor-critic) - разновидность алгоритма оптимизации единой стратегии (актор) c одновременным обучением Q-функции ценности (критик). Поскольку алгоритмы исполнитель–критик обучают и используют функцию ценности, они классифицируются как алгоритмы градиента стратегии, а не как гибридные.
  • Гибридные - сочетают обучение стратегии и функции ценности.

К model-based алгоритмам относятся

  • чистое планирование
  • встроенное планирование для улучшения стратегии и генерации выборки из аппроксимированной модели
  • динамическое программирование - семейство алгоритмов, в которых модель используется для оценивания функции ценности. Смысл в том, чтобы разбить задачу на меньшие перекрывающиеся подзадачи, а затем найти решение исходной задачи, объединяя решения подзадач. Является одним из самых простых подходов. Подходит для вычисления оптимальной стратегии, поскольку имеется точная модель окружающей среды. Cложность экспоненциально возрастает вместе с увеличением числа состояний.

Выбор алгоритма ОП

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