- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (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.1 Итеративная настройка и эволюция функции подкрепления (Reward Engineering)
Разработка финальной функции вознаграждения, описанной в разделе 2.2, не была единовременным решением, а явилась результатом серии итеративных экспериментов. В задачах обучения с подкреплением формализация цели (Reward Engineering) часто оказывает большее влияние на итоговый результат, чем выбор архитектуры нейронной сети. В ходе исследования были протестированы три гипотезы формирования сигнала подкрепления.
Итерация 1: Разреженное вознаграждение (Sparse Reward) На первом этапе использовалась простейшая бинарная логика: агент получал +1.0 только при касании целевого объекта и -1.0 при падении с платформы. В промежуточных шагах награда была равна нулю. Эксперименты показали несостоятельность этого подхода для лабиринтов среднего и большого размера. Вероятность случайного нахождения выхода агентом, действующим хаотично (random walk), стремилась к нулю. Градиенты не обновлялись тысячами шагов, и нейросеть не могла выявить причинно-следственную связь между действиями и редким успехом. Это явление, известное как проблема исчезающего градиента в RL, потребовало перехода к более плотному (dense) вознаграждению.
Итерация 2: Вознаграждение на основе дистанции (Distance-based Reward) Для решения проблемы «слепого поиска» была введена награда, пропорциональная уменьшению евклидова расстояния до цели:
Хотя это ускорило начальное обучение, агент попал в ловушку локальных минимумов. В условиях П-образных стен лабиринта агент, руководствуясь жадным алгоритмом, упирался в стену, которая находилась геометрически близко к цели, но не имел стимула обойти её, так как любое движение в сторону или назад увеличивало дистанцию и давало отрицательную награду. Агент демонстрировал поведение «биения о стену», не пытаясь найти обходной путь.
Итерация 3: Гибридная схема с экзистенциальным штрафом Финальная версия функции вознаграждения объединила преимущества предыдущих подходов и устранила их недостатки. Ключевым решением стало введение малого, но постоянного штрафа за каждый такт времени (экзистенциальный штраф).
Эта компонента кардинально изменила мотивацию агента. Теперь «ничегонеделание» или топтание на месте (локальный минимум) стало «дорогим» с точки зрения кумулятивной награды. Единственным способом максимизировать функцию полезности стало скорейшее завершение эпизода. В сочетании с данными лидара, позволяющими видеть стены, это привело к формированию сложного поведения: агент научился жертвовать сиюминутной близостью к цели (двигаться назад или вбок), чтобы обойти препятствие и в конечном итоге прекратить накопление штрафов за время.
Таким образом, экспериментально доказано, что для навигационных задач в средах с препятствиями (Non-Convex Environments) использование функции вознаграждения, основанной исключительно на дистанции, является ошибочным. Оптимальной стратегией является использование разреженных терминальных наград в сочетании со штрафом за время, что вынуждает нейросеть самостоятельно аппроксимировать функцию навигации, а не следовать заранее заданному эвристическому правилу.
