[Из песочницы] Платформы для экспериментов по обучению с подкреплением и не только

habr.png

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

В этой статье приведен краткий обзор двенадцати подобных сервисов.

ALE: Arcade Learning Environment


→ Вводная статья
→ Репозиторий

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

Для алгоритма, функционирующего в среде ALE мир выглядит достаточно просто. Наблюдения — двумерные массивы 7-битных пикселей (размер массива 160 на 210 пикселей). Возможные действия — 18 сигналов, которые в принципе можно сгенерировать джойстиком приставки. Способ получения награды может варьироваться от игры к игре, но как правило это разница в очках на текущем и предыдущем кадрах.

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

MAgent


→ Вводная статья
→ Репозиторий

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

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

MAgent предоставляет исследователям возможность гибкой настройки своих окружений. Демо-версия содержит три предварительно настроенных экспериментальных среды: преследование (хищники должны обьединяться в стаю для эффективного преследования травоядных), сбор ресурсов в конкурентной среде, сражение двух армий (агенты должны освоить техники окружения, «партизанской войны» и т.д.)

Malmo


→ Вводная статья

Платформа для фундаментальных исследований в области машинного обучения построенная на базе популярной игры Minecraft. Minecraft — это 3D игра, в которой легко может быть создан динамичный мир нужной сложности. Предоставляет API для управления агентом, создания задач для него, проведения экспериментов.

Интересно и сложно.

ViZDoom


→ Сайт проекта

Основанная на популярной 3D игре Doom среда для экспериментов с компьютерным зрением и обучением с подкреплением. Можно создавать собственные сценарии/карты, использовать многопользовательский режим, режим в котором обучающийся агент наблюдает за действиями игрока и т.д. Среда достаточно быстрая (до 7000 FPS на один поток) и может работать как на Linux так и под Windows.

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

На сайте проекта есть тьюториал, видео демонстрации, примеры, подробная документация.

ELF: An Extensive, Lightweight and Flexible Research Platform for Real-time Strategy Games


→ Вводная статья
→ Репозиторий

Платформа для фундаментальных исследований алгоритмов обучения с подкреплением.
Позволяет хостить сделанные на базе C/C++ игры (так же как ALE). Кроме того, разработчики сделали на базе ELF упрощенную версию стратегии в реальном времени (RTS), которая может работать с производительностью до 4000 FPS на ядро на ноутбуке. Такая производительность позволяет обучать алгоритмы быстрее, чем в средах, где используются обычные RTS игры, не оптимизированные для того, чтобы исполняться быстрее чем в режиме real-time. Есть также варианты игры в режимах Tower defence и Capture the Flag.

Интересующимся может быть интересно также посмотреть презентацию Yuandong Tian из Facebook Research с ICML2017.

MazeBase


→ Вводная статья
→ Репозиторий

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

«Из коробки» система содержит десяток простых 2D игр сделанных на базе «мира из клеток». При создании мира разработчики вдохновлялись классической Puddle World, однако дополнили ее своими идеями и сделали перегенерацию карты при каждом запуске нового цикла обучения. Таким образом агент каждый раз обучается на мире, который он еще не видел.

OpenAI Gym/Universe


→ Вводная статья по GYM
→ Репозиторий Universe

Gym — это набор инструментов для исследований алгоритмов обучения с подкреплением. Он включает в себя постоянно пополняющуюся коллекцию тестовых сред для проведения экспериментов. Web-сайт проекта позволяет поделиться достигнутыми результатами и сравнить их с результатами других участников.

Среда Universe позволяет практически любую программу сделать тестовым окружением без необходимости обращения к ее внутренним переменным или исходному коду. Программа помещается в Docker контейнер, а взаимодействие с ней ведется через эмуляцию нажатий кнопок клавиатуры или событий мыши. Доступно более 1000 окружений (главным образом различные игры), в которых AI агент может совершать действия и получать наблюдения. Из этой тысячи несколько сотен содержат также сведения о «награде» за совершенное действие. Такие окружения также включают в себя скрипты для «прокликивания» стартовых меню программ и перехода сразу к содержательной части игры или приложения.

Пожалуй, Gym — лучший выбор для новичков.

Tensorflow Agents


→ Вводная статья
→ Репозиторий

Разработчики называют TensorFlow Agents инфраструктурной парадигмой. Основной фокус этой разработки сделан на ускорение обучения и тестирования алгоритмов за счет параллельного выполнения сразу большого числа имитационных сред и пакетной обработки данных на GPU и CPU. Таким образом расширяется «бутылочное горлышко», присущее большинству других пралтформ и ускоряется цикл отладки алгоритмов. При этом в качестве самих окружений используются приложения, поддерживающие интерфейс OpenAI Gym, а их как уже было написано выше сделано много и есть из чего выбрать.

Unity ML Agents


→ Репозиторий

Теперь можно создавать имитационные среды для машинного обучения используя Unity Editor. Работать они будут используя Unity Engine. Согласно предложенной парадигеме требуется определить и разработать код для трех объектов: Academy, Brain, Agent.

Academy — общие настройки среды, ее внутренняя логика. Кроме того Academy является родительским объектом для остальных сущностей модели.

Brain — обьект, в котором описывается логика принятия решений. Здесь может быть несколько вариантов — интерфейс к TensorFlow (через открытый сокет и Python API или через TensorFlowSharp), самописная логика основанная на эвристиках или ожидание ввода с клавиатуры и мыши для непосредственного управления агентом человеком-оператором.

Agent — объект, содержащий уникальный набор состояний, наблюдений. Предпринимающий уникальную последовательность действий внутри имитационной среды. «Тело» моделируемого объекта.

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

DeepMind Pycolab


→ Вводная статья
→ Репозиторий

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

Среди готовых примеров уже есть «Космические захватчики», «Лабиринт», аналог «Supаplex» и еще несколько небольших игр.

SC2LE (StarCraft II Learning Environment)


→ Вводная статья
→ Репозиторий

Среда для обучения игре в StarCraft II. StarCraft II — сложная задача для машинного обучения над решением которой многие лучшие умы бьются прямо сейчас. Сотни юнитов, неполная информация о карте вследствие наличия «тумана войны», огромная вариативность стратегий развития и награда отложенная на тысячи шагов. Похоже, StarCraft II станет следующей большой вехой в победах техник машинного обучения над человеком после победы в го.

Среда предоставляет open-source инструменты на Python для взаимодействия с движком игры. В дополнение к стандартным картам игры разработчики сделали несколько своих мини-игр для отладки различных элементов геймплея, таких как сбор ресурсов, сражения и т.д.

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

Coach


→ Сайт проекта
→ Репозиторий

Модульная Python-среда для отладки и алгоритмов обучения с подкреплением. Позволяет собирать имитационных агентов «из кусочков» и использовать всю мощь многопроцессорных систем в процессе оценки эффективности алгоритмов и обучения моделей.

Содержит встроенные state-of-the-art имплементации многих алгоритмов машинного обучения и может быть хорошей стартовой точкой для тех, кто хочет попробовать как работают различные алгоритмы, но не вникать глубоко в особенности их реализации.

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

Вместо заключения


Если что-то упустил — просьба написать в комментариях.

Если взять отпуск с 26 февраля по 7 марта, то можно отдыхать непрерывно 17 дней. Теперь у вас должно быть больше идей, чем можно заняться в это время.

© Habrahabr.ru