- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (dqn, ppo, sac) и примеров применения в сборке. Сравнение методов, их применимость для задач манипуляции нежёсткими объектами.»
- •Аннотация
- •Содержание
- •Список сокращений и условных обозначений
- •Введение
- •Системный анализ разработки интеллектуального агента с применением обучения с подкреплением
- •1.1 Общая характеристика и современные тенденции применения искусственного интеллекта и машинного обучения в игровой индустрии и симуляциях
- •1.2 Анализ задач и определение требований к интеллектуальному агенту. Характеристика целевых сред и сценариев тестирования
- •1.3 Описание потоков данных и бизнес-процессов
- •1.4 Обзор и сравнительный анализ игровых движков и фреймворков для реализации обучения с подкреплением
- •1.5 Анализ проблематики выбора архитектуры агента, настройки гиперпараметров и обеспечения стабильности обучения
- •1.6 Патентный поиск
- •1.7 Анализ существующих методов и алгоритмов обучения с подкреплением (dqn, ppo, sac) для задач навигации, управления и принятия решений в виртуальной среде
- •1.7.1 Математическая формализация процесса обучения и алгоритмов ppo и sac
- •1.8 Применимость алгоритмов dqn, ppo и sac для задач манипуляции нежёсткими объектами в роботизированной сборке
- •1.9 Выводы по главе 1
- •2. Методы и технологии разработки и исследования интеллектуального агента в среде unity
- •2.1 Применение фреймворка Unity ml-Agents Toolkit для создания среды обучения, конфигурации агентов и нейронных сетей
- •2.1.1 Архитектура искусственной нейронной сети и конфигурация гиперпараметров
- •2.2 Обзор и сравнительный анализ алгоритмов обучения с подкреплением, методов предобработки данных и техник ускорения обучения
- •2.3 Методы сбора, обработки и визуализации метрик обучения (cumulative reward, loss, entropy) для анализа поведения и эффективности агента
- •2.3.1 Итеративная настройка и эволюция функции подкрепления (Reward Engineering)
- •2.4 Методы оценки производительности, обобщающей способности и устойчивости обученного агента в детерминированных и стохастических условиях
- •2.5 Технологический стек и архитектурные решения для интеграции модели машинного обучения (Python) с игровой логикой и физическим движком (c#/Unity)
- •2.6 Выводы по главе 2
- •3.Экспериментальные исследования и анализ результатов работы интеллектуального агента
- •3.1 Характеристика экспериментального стенда и условий проведения эксперимента
- •3.2 Сравнительный анализ эффективности алгоритмов ppo и sac в задаче навигации
- •3.3 Исследование влияния сенсорной системы и формирования функции вознаграждения
- •3.4 Анализ влияния гиперпараметров на сходимость алгоритма ppo
- •3.5 Абляционные исследования: влияние архитектуры сенсоров и функции вознаграждения на процесс обучения
- •3.6 Профилирование производительности и анализ вычислительной нагрузки в режиме реального времени
- •3.7 Программная реализация алгоритмов поведения и управления агентом
- •3.8 Тестирование и валидация обученной модели в режиме инференса
- •3.9 Выводы по главе 3
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
3.Экспериментальные исследования и анализ результатов работы интеллектуального агента
3.1 Характеристика экспериментального стенда и условий проведения эксперимента
Для проведения экспериментов по обучению нейронных сетей и сравнительного анализа алгоритмов PPO и SAC был развернут высокопроизводительный программно-аппаратный комплекс. Выбор конфигурации стенда был обусловлен высокими требованиями к параллельным вычислениям: одновременному расчету физики множества твердых тел и оптимизации весов глубоких нейронных сетей.
Вычислительные эксперименты проводились на оборудовании со следующими базовыми характеристиками: многопоточный центральный процессор архитектуры x64 (необходим для эффективного расчета физики независимых агентов), дискретный графический ускоритель с поддержкой программно-аппаратной архитектуры NVIDIA CUDA (объем видеопамяти от 8 ГБ для работы с объемными тензорами) и оперативная память стандарта DDR4 объемом 16 ГБ, обеспечивающая хранение больших буферов воспроизведения опыта (Replay Buffer) без обращения к файлу подкачки.
Программное окружение стенда включало в себя следующие компоненты:
Unity 6 LTS (Long Term Support) — среда симуляции физики и визуализации. Использование LTS-версии гарантирует детерминированность работы встроенного физического движка PhysX и стабильность API на протяжении всего цикла исследований.
ML-Agents Toolkit Release 21 — фреймворк для интеграции Unity с Python. Инструмент предоставляет встроенный коммуникатор на базе протокола gRPC, обеспечивающий высокоскоростной асинхронный обмен тензорами наблюдений и действий между C#-средой и внешним процессом-тренером.
Python 3.9 + PyTorch (с поддержкой CUDA) — бэкенд для математической оптимизации алгоритмов глубокого обучения. Данная библиотека была выбрана благодаря поддержке динамических вычислительных графов, что оптимально подходит для архитектуры Actor-Critic.
В качестве тестового полигона использовалась специализированная сцена TrainingEnvironment, содержащая 20 изолированных и абсолютно идентичных параллельных копий лабиринта. Использование мультиагентной среды (Multi-Agent Environment) позволило увеличить поток генерируемых данных (experience throughput) в 20 раз по сравнению с одиночным запуском. Это не только существенно сократило астрономическое время обучения модели (wall-clock time), но и способствовало стабилизации градиентов при обновлении весов нейронной сети, так как в один обучающий пакет (batch) попадал разнообразный опыт от агентов, находящихся в независимых пространственных ситуациях.
Важным условием проведения эксперимента являлась настройка временных параметров симуляции. Для максимального ускорения процесса сбора данных обучение запускалось с ускорением внутриигрового времени (Time Scale = 100). При этом шаг фиксированного обновления физики (Time.fixedDeltaTime) был строго зафиксирован на значении 0.02 секунды. Такой подход исключил возникновение артефактов коллизий при высоких скоростях расчетов и гарантировал физическую достоверность процесса обучения, идентичную условиям реального времени при инференсе.
3.2 Сравнительный анализ эффективности алгоритмов ppo и sac в задаче навигации
Ключевым этапом исследования стало сравнение двух подходов к обучению с подкреплением: Proximal Policy Optimization (PPO) и Soft Actor-Critic (SAC) [32]. Критериями сравнения выступали: скорость сходимости (sample efficiency), стабильность вознаграждения и вычислительная нагрузка на систему.
Анализ обучения алгоритма PPO:
В ходе обучения агента методом PPO (On-Policy) наблюдалась стабильная, монотонная динамика роста кумулятивного вознаграждения. График функции вознаграждения (Cumulative Reward) демонстрировал плавный подъем, начиная с отрицательных значений (обусловленных штрафами за время и падения), и достиг плато в диапазоне 0.9 – 0.95 к 60 000 – 80 000 шагов симуляции.
Ключевой особенностью PPO стала высокая стабильность процесса: дисперсия награды (разброс значений) уменьшалась по мере обучения. Это свидетельствует о том, что стохастическая политика агента постепенно становилась детерминированной, и агент уверенно выбирал оптимальный маршрут. График Environment/Cumulative Reward_hist для модели PPO можно увидеть на рисунке 3.1.
Рисунок 3.1 - График Environment/Cumulative Reward_hist для алгоритма PPO
Анализ обучения алгоритма SAC:
Эксперимент с алгоритмом SAC (Off-Policy) показал принципиально иную динамику. Благодаря механизму переиспользования опыта из буфера (Replay Buffer), алгоритм продемонстрировал сверхбыструю сходимость. Значение средней награды достигло уровня 0.9 уже к 2 000 – 5 000 шагов. Однако график обучения характеризовался высокой волатильностью (скачками), где награда могла падать до -1.5 в промежуточных эпизодах.
Это объясняется встроенным в SAC механизмом максимизации энтропии: алгоритм намеренно заставляет агента совершать субоптимальные, хаотичные действия для исследования среды, что в условиях лабиринта с краями приводило к частым падениям. Кроме того, обновление градиентов на каждом шаге симуляции создавало значительную нагрузку на канал связи между Unity и Python, что визуально выражалось в задержках («лагах») симуляции. На рисунке 3.2 можно увидеть график сравнения моделей PRO и SAC.
Рисунок 3.2 - график сравнения моделей PRO и SAC
Вывод по эксперименту:
Алгоритм SAC показал лучшую эффективность использования данных (Data Efficiency), обучившись в 10-15 раз быстрее по количеству шагов среды. Однако PPO продемонстрировал лучшую вычислительную стабильность и предсказуемость поведения в реальном времени. Для финальной реализации системы был выбран результат работы PPO, так как он обеспечивает более плавное движение агента без рывков, характерных для высокоэнтропийной политики SAC.
