- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (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
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
2.3 Методы сбора, обработки и визуализации метрик обучения (cumulative reward, loss, entropy) для анализа поведения и эффективности агента
Для объективной оценки процесса обучения и итоговой эффективности разработанного интеллектуального агента применялся систематический сбор и анализ метрик с использованием инструментария TensorBoard [39].
В процессе обучения симулятор Unity (компонент Academy) непрерывно генерировал сырые данные (взаимодействия со средой, полученные штрафы и награды), которые посредством протокола gRPC передавались во внешнее Python-окружение для агрегации и вычисления градиентов. Анализ динамики обучения проводился на основе визуализированных графиков скалярных величин.
Выбор внутренних компонентов нейронной сети был обусловлен теоретическим анализом свойств функций активации и методов стохастической оптимизации.
В скрытых слоях перцептрона использовалась функция активации Swish, определяемая формулой:
|
(2.3.1) |
где σ — сигмоидальная функция, а β — обучаемый или фиксированный параметр.
В отличие от традиционной функции ReLU (max(0, x)), Swish является гладкой и немонотонной функцией. Она не имеет "мертвых зон" (областей с нулевой производной при отрицательных значениях аргумента), что критически важно для глубокого обучения с подкреплением. В задачах RL градиенты часто бывают зашумленными и нестабильными; использование ReLU может привести к проблеме "умирающих нейронов", когда часть сети перестает обновляться. Swish позволяет сохранять небольшой отрицательный градиент, обеспечивая более стабильный поток информации через сеть при обратном распространении ошибки.
В качестве алгоритма оптимизации весов нейронной сети использовался Adam (Adaptive Moment Estimation). Этот метод сочетает в себе преимущества двух других популярных расширений стохастического градиентного спуска: AdaGrad и RMSProp. Adam вычисляет индивидуальные адаптивные скорости обучения для различных параметров на основе оценок первого и второго моментов градиентов.
Формально правило обновления параметров θ на шаге t выглядит следующим образом:
|
(2.3.2) |
где η — начальная скорость обучения (learning rate), m̂t — скорректированная оценка первого момента (среднего) градиента, v̂t — скорректированная оценка второго момента (нецентрированной дисперсии).
Применение Adam обосновано тем, что в задачах навигации ландшафт функции потерь часто имеет сложную форму с множеством локальных минимумов и "седел". Способность Adam адаптировать шаг обучения для каждого веса позволяет алгоритму быстрее преодолевать плоские участки поверхности ошибок и эффективнее сходиться к оптимуму по сравнению с классическим SGD.
Ключевой метрикой, отражающей успешность обучения, выступало среднее кумулятивное вознаграждение (Environment/Cumulative Reward). На начальных этапах обучения данный показатель имел резко отрицательные значения из-за экзистенциальных штрафов и частых падений агентов за пределы платформы в процессе хаотичного исследования (exploration). По мере стабилизации политики график продемонстрировал логарифмический рост, выйдя на асимптоту (плато) со значением 0.95 - 0.98, что близко к максимально возможной награде (1.0). График Environment/Cumulative Reward изображен на рисунке 2.2.
Рисунок 2.2 - График Environment/Cumulative Reward
Важным индикатором баланса между исследованием и эксплуатацией (exploitation) служила метрика энтропии политики (Policy/Entropy). Высокое начальное значение энтропии свидетельствовало о стохастическом поиске пути в лабиринте. По мере прохождения шагов обучения значение энтропии закономерно и плавно снижалось, что подтверждало формирование детерминированной и уверенной стратегии навигации агента.
Дополнительно отслеживалась метрика длины эпизода (Environment/Episode Length). Зафиксированное на графиках снижение данного показателя напрямую коррелировало с ростом кумулятивной награды. Это свидетельствует о том, что интеллектуальный агент научился находить кратчайший пространственный маршрут до целевого объекта, минимизируя временные затраты и, соответственно, избегая накопления отрицательного подкрепления. График Policy/Entropy изображен на рисунке 2.3.
Рисунок 2.3 - График Policy/Entropy
Комплексный анализ визуализированных метрик позволил научно подтвердить корректность выбранной архитектуры нейронной сети, функции вознаграждений и констатировать успешное завершение процесса обучения модели. Итоговая обученная политика была экспортирована в кроссплатформенный формат .onnx для последующего внедрения (инференса) в среду Unity в качестве полностью автономного контроллера поведения агента.
