Сделано с помощью Unity: Футбольные роботы с ML-Agents

Наш Сделано с Unity: Серия AI демонстрирует проекты Unity, созданные авторами для различных целей, в которых задействованы наши продукты искусственного интеллекта. В данном примере ML-Agents расширил возможности разработчиков ИИ, позволив им быстро и легко создавать среды машинного обучения и обучать агента играть в футбол, а затем передавать его настоящему роботу.
Инструментарий Unity Machine Learning Agents Toolkit (ML-Agents) позволяет пользователям легко приступить к обучению с подкреплением (RL) с помощью Unity. ML-Agents предоставляет пользователям множество примеров сред и архитектур моделей, которые они могут использовать для начала работы с RL. Пользователи могут настраивать гиперпараметры, экспериментируя и улучшая полученные модели. Все это происходит без необходимости создавать окружение Unity или импортировать активы, а также без необходимости кодирования. В этом проекте японской компании Ghelia Inc. используется футбольная среда ML-Agents для обучения агента игре в футбол. Полученная RL-модель была затем развернута на реальных роботах Sony toio для игры в футбол. Это захватывающий пример перехода от симуляции к реальному миру с помощью роботов, использующих ML-Agents для обучения.
Мы взяли интервью у Рё Симидзу, генерального директора и президента компании Ghelia, Хидекадзу Фурукава, ведущего программиста отдела инноваций и стратегии бренда, и Масатоси Учида, менеджера отдела инноваций отдела инноваций и стратегии бренда, чтобы узнать, что вдохновило их на создание этого проекта. Читайте далее, чтобы узнать, как они использовали ML-Agents Toolkit для обучения реального робота игре в футбол и как мяч для гольфа вписывается в этот сценарий.
Что вдохновило вас на создание проекта?
Ghelia - это компания, которая занимается разработкой приложений для обучения с подкреплением. Основатель Ghelia, Хироаки Китано, запустил RobocupSoccer и разработал AIBO в компании Sony. Ранее наша команда уже создавала демонстрационный аэрохоккей, но поскольку он состоял из множества различных компонентов, его было не очень удобно переносить. Когда мы начали обсуждать создание еще одной демонстрационной версии, чтобы объяснить клиентам, что такое обучение с подкреплением, мы хотели получить что-то, что было бы легче носить с собой. Поскольку у ML-Agents уже была футбольная среда, было разумно использовать маленьких и портативных роботов Sony toio для создания футбольной игры, которая также могла бы привести к появлению вирусного контента.

Чтобы применить обучение с подкреплением к реальному роботу, он должен существовать в среде моделирования. К счастью, у toio уже есть симулятор под названием toio SDK for Unity. Добавив к нему пакет ML-Agents, мы сразу же смогли использовать его для обучения. Хотя toio SDK предоставил модели роботов для Unity, нам все равно нужно было создать мяч. Мы использовали физический движок Unity, чтобы воссоздать мяч в симуляторе, и нам нужно было найти реальный мяч, который бы соответствовал результатам симуляции. Оказалось, что мяч для гольфа дает реальные результаты, которые отражают результаты тренировок. Положение мяча определялось в симуляции с помощью значения трансформации Unity, а в реальном мире - с помощью распознавания изображений с помощью OpenCV и камеры.

Мы использовали мяч для гольфа, чтобы изобразить футбольный мяч, но чтобы повысить скорость распознавания, мы покрасили его в красный цвет. Удивительно, но с помощью одного iPhone и его камеры мы смогли обнаружить мяч, управлять всеми восемью роботами (это была футбольная игра четыре на четыре) и делать выводы с помощью модели ML-Agents.

Поначалу было много собственных голов, поэтому мы постарались предусмотреть отрицательную награду за собственный гол. Однако это привело к тому, что голкиперы не защитили свои ворота. Когда мы пробовали давать положительное вознаграждение за перемещение мяча, обе команды просто ходили взад-вперед, не забрасывая мяч в ворота, по сути, тянули время. Наконец, мы решили начислять одно очко за ввод мяча в ворота соперника и отнимать одно очко за то, что мяч был забит.
Иногда было трудно определить, почему реальные роботы работают не так хорошо, как в симуляторе. Например, иногда вывод не срабатывал, потому что мы управляли роботом на слегка наклоненном полу. В других случаях мяч отскакивал не так, как в симуляторе, и роботы реагировали не так, как ожидалось. Кроме того, позиционирование камеры было довольно чувствительным и требовало миллиметровой точности, что затрудняло ее ежедневную настройку на месте проведения мероприятия. После каждого крупного набора улучшений модели мы тренировались около трех дней. В итоге нам потребовалось около шести тренировок, чтобы добиться результата.
В демонстрационном примере ML-Agents после гола агенты выстраиваются в исходную позицию, но для настоящих роботов все не так просто. Некоторые задачи, например, избежание столкновений между тоями, было сложно решить только с помощью обучения с подкреплением. Изначально мы пытались разработать функцию вознаграждения для этого сценария, но в итоге решили его эвристически.

Если бы был спрос, мы бы обязательно рассмотрели возможность сделать этот проект с открытым исходным кодом. Более подробную информацию об этом проекте вы можете найти в нашем блоге (на японском языке).
ИИ, особенно глубокое обучение, очень увлекателен, но он недостаточно хорошо изучен. Вы не сможете в полной мере оценить его красоту и сложность, пока не поработаете с ним воочию, а жаль, поэтому мы призываем разработчиков Unity по всему миру попробовать его. Я хочу подчеркнуть, насколько увлекательным является машинное обучение, и что Unity ML-Agents - это система, которая позволит вам легко начать работу с машинным обучением или включить его в свой проект.
Приступайте к работе с Unity ML-Agents или узнайте больше о пакетах Unity Robotics уже сегодня. Если ваш проект требует параллельного проведения нескольких тренингов, свяжитесь с нами, чтобы узнать больше о нашем облачном предложении ML-Agents.
Хидеказу Фурукава также опубликовал японскую книгу под названием Unity ML-Agents Practical Game Programming, в которой подробно описывается, как начать работу с обучением с подкреплением с помощью ML-Agents.
