- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (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. Методы и технологии разработки и исследования интеллектуального агента в среде unity
2.1 Применение фреймворка Unity ml-Agents Toolkit для создания среды обучения, конфигурации агентов и нейронных сетей
В качестве программной платформы для проведения экспериментальных исследований и разработки интеллектуального агента был выбран игровой движок Unity в связке с официальным фреймворком ML-Agents Toolkit [43]. Выбор данного технологического стека обусловлен его высокой гибкостью, возможностью точной симуляции физических процессов (посредством встроенного физического движка PhysX) и наличием оптимизированного моста (communicator) для передачи тензорных данных между средой симуляции (C#) и процессом обучения нейронной сети (Python).
Для реализации интеллектуального поведения был спроектирован виртуальный полигон, представляющий собой топологически сложную среду — лабиринт со статичными препятствиями. Среда включает в себя пол (платформу), ограничивающие внешние бортики и внутренние перегородки.
Основным действующим субъектом среды является интеллектуальный агент (сферический объект), управляемый скриптом RollerAgent, унаследованным от базового класса Agent библиотеки ML-Agents.
Движение агента реализовано на основе физических законов: к компоненту Rigidbody агента применяется вектор силы в режиме ForceMode.VelocityChange. Данный режим позволяет применять мгновенное изменение скорости, игнорируя массу объекта, что повышает отзывчивость агента на малые корректировки политики (policy) со стороны нейронной сети.
Для обеспечения агента информацией о состоянии окружающей среды (наблюдениями), его архитектура была разделена на два информационных канала:
Векторные наблюдения (Vector Observations). В методе CollectObservations собираются детерминированные математические параметры: вектор направления от агента до цели (вычисляемый как разность их координат) и текущий вектор скорости агента. Общий размер пространства непрерывных наблюдений (Space Size) составил 6 значений.
Пространственное восприятие (Ray Perception Sensor 3D). Учитывая сложную топологию лабиринта, передачи одних лишь координат цели оказалось недостаточно. Без понимания геометрии препятствий агент сталкивался с проблемой застревания в локальных оптимумах, пытаясь двигаться к цели по прямой линии сквозь стены. Для решения этой проблемы в архитектуру агента была интегрирована сенсорная подсистема Ray Perception Sensor 3D, эмулирующая работу физического лидара. Данный компонент генерирует лучи с заданным углом обзора (Max Ray Degrees = 90) и плотностью (Rays Per Direction = 3), фиксируя объекты с заранее определенными тегами (Wall для стен и Target для целевого объекта).
На рисунке 2.1 можно увидеть настройки компонента Ray Perception Sensor 3D и лучи, исходящие от агента.
Рисунок 2.1 - настройки компонента Ray Perception Sensor 3D и лучи, исходящие от агента
Использование комбинированного подхода к сбору наблюдений позволило сформировать для нейронной сети исчерпывающий вектор состояния, достаточный для прохождения лабиринтов любой сложности. Конфигурация поведения агента осуществлялась через компонент Behavior Parameters, где тип пространства действий (Action Space) был определен как непрерывный (Continuous) с двумя осями (движение по осям X и Z).
