Лабораторная 5. Робощупальце
0. Установка ML-Agents
Фреймвор ML Agents состоит из двух частей: обучение нейросети происходит в Python с использованием PyTorch, сбор данных и работа агентов - в Unity. Соответственно, для обучения нейросети нужно иметь установленные пакеты для Python, ставятся из репозитория (берём из release 22). Пакет для Unity придётся ставить в каждом проекте отдельно.
Инструкция по установке: https://github.com/Unity-Technologies/ml-agents/blob/release_22_docs/docs/Installation.md
1. Подготовка манипулятора
Если у вас нет подходящего манипулятора, можно воспользоваться заготовкой.
Если у вас есть свой манипулятор из курса физики в играх, можете переиспользовать его.
Для этого понадобится установить пакет ML Agents (через гит URL: https://github.com/Unity-Technologies/ml-agents.git?path=com.unity.ml-agents#release_22), добавить щупальцу компоненты `Behaivour Parameters`, `Desicion Requester` и собственный компонент, унаследованный от Agent. Пример можно подсмотреть в туториале.
2. Обучение
Подберите подходящие для алгоритма входные данные, попробуйте разные способы давать награды и штрафы и обучите модель (yaml конфиг можно взять из заготовки).
Для ускорения обучения разместите на сцене множество агентов или запустите несколько экземпляров Unity, а для оценки скорости и качества обучения используйте TensorBoard.
Помимо проекта, в качестве ответа приложите скриншоты важных, по вашему мнению, графиков из TensorBoard и не забудьте сохранить в проекте полученную модель.
P.S. Допматериалы
Статья про PPO https://arxiv.org/pdf/1707.06347
Документация от OpenAI о PPO https://spinningup.openai.com/en/latest/algorithms/ppo.html
Курс введение в RL:
Бонусное задание
Реализуйте любую аркадную игру (например, змейку) и обучите агента - 5 бонусных баллов.