- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (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 Исследование влияния сенсорной системы и формирования функции вознаграждения
Для подтверждения гипотезы о необходимости сложной сенсорной системы был проведен анализ поведения агента в условиях ограниченной наблюдаемости.
Анализ влияния Ray Perception Sensor 3D:
В базовой версии агента, получавшего только вектор координат цели, наблюдался эффект «слепого движения»: агент пытался минимизировать расстояние до цели по прямой, упираясь в стены лабиринта. Внедрение лидара (Ray Perception Sensor 3D) с конфигурацией лучей (3 луча на 90 градусов) позволило агенту детектировать препятствия с тегом Wall.
Анализ обученной модели показал, что нейронная сеть научилась интерпретировать сигналы сенсора как «отрицательный стимул». При сокращении дистанции луча до стены (значение сенсора стремится к 0), сеть генерировала управляющее воздействие в противоположную сторону, реализуя маневр уклонения. Агента с включенными красными лучами сенсора можно увидеть на рисунке 3.3.
Рисунок 3.3 - Агент в Unity с включенными красными лучами сенсоров
Анализ функции вознаграждения (Reward Shaping):
Введение «экзистенциального штрафа» (existential penalty) в размере -1 / MaxSteps на каждом шаге оказало решающее влияние на скорость прохождения лабиринта. Сравнительный анализ показал, что без данного штрафа агент склонен к «ленивому» поведению: он мог совершать циклические движения в безопасной зоне, не стремясь к цели, чтобы избежать риска падения (награды -1.0). Штраф за время перестроил функцию полезности: агенту стало «невыгодно» существовать долго, что вынудило его искать кратчайшие траектории к целевому объекту (награда +1.0).
3.4 Анализ влияния гиперпараметров на сходимость алгоритма ppo
Достижение оптимальной производительности агента, продемонстрированной в разделе 3.2, потребовало проведения серии экспериментов по настройке гиперпараметров (Hyperparameter Tuning). В алгоритмах семейства Actor-Critic крайне важно соблюдать баланс между скоростью обучения (learning rate) и размером пакета обновления (batch size). В ходе исследования было протестировано три конфигурации гиперпараметров.
Конфигурация 1 (Высокая скорость обучения): learning_rate = 1.0e-3, batch_size = 64.
Гипотеза заключалась в том, что агрессивный шаг градиентного спуска ускорит поиск оптимальной политики. Однако на практике это привело к расходимости алгоритма. Агент слишком резко менял политику поведения при получении первого положительного вознаграждения, что приводило к «катастрофическому забыванию». На графике функции потерь (Loss) наблюдались резкие скачки, а кумулятивная награда не превышала нулевой отметки.
Конфигурация 2 (Большой размер буфера, малый пакет): buffer_size = 4096, batch_size = 32.
Данная конфигурация показала более стабильные, но критически медленные результаты. Нейронная сеть обучалась слишком долго, так как градиенты вычислялись на слишком малых порциях данных, не репрезентативных для общей картины лабиринта. Эффективность использования данных (sample efficiency) резко упала.
Конфигурация 3 (Оптимальная): learning_rate = 3.0e-4 (с линейным убыванием), batch_size = 128, buffer_size = 2048.
Линейное убывание скорости обучения (learning rate schedule) позволило агенту активно исследовать среду на ранних этапах (при высоком LR) и совершать ювелирные корректировки весов на поздних этапах (когда LR стремится к нулю), закрепляя успешный опыт обхода препятствий. Размер пакета в 128 опытов обеспечил достаточную статистическую значимость для расчета стабильного градиента, что полностью нивелировало проблему расходимости сети. Именно эта конфигурация легла в основу итоговой модели.
