- •Курсовая работа
- •Тема: «Обучение с подкреплением в робототехнике: обзор алгоритмов (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.1.1 Архитектура искусственной нейронной сети и конфигурация гиперпараметров
Для реализации функции отображения наблюдений в действия (policy function) была спроектирована архитектура полносвязной нейронной сети прямого распространения (Multi-Layer Perceptron, MLP).
Поскольку агент обрабатывает разнородные данные (детерминированные векторы и массивы данных лучевого зондирования), входной слой сети выполняет конкатенацию этих признаков.
Общая архитектура сети (Actor-Critic) для алгоритма PPO состоит из следующих слоев:
Входной слой (Input Layer): размерность определяется суммой размерности непрерывных наблюдений (Space Size = 6) и нормализованных выходных данных компонента Ray Perception Sensor 3D.
Скрытые слои (Hidden Layers): конфигурация включает 2 скрытых слоя по 128 искусственных нейронов в каждом. Выбор размерности 128 обусловлен необходимостью сохранения баланса между выразительной способностью сети (способностью запоминать сложную геометрию препятствий) и вычислительной эффективностью при инференсе. В качестве функции активации скрытых слоев применяется Swish, демонстрирующая лучшую сходимость в задачах глубокого RL по сравнению с классической ReLU за счет гладкости производной.
Выходной слой (Output Layer): так как используется непрерывное пространство действий (Continuous Action Space), выходной слой актора генерирует два значения: вектор средних значений (Mean) и вектор стандартных отклонений (Standard Deviation) для нормального распределения, из которого сэмплируются финальные управляющие сигналы по осям X и Z.
Конфигурация гиперпараметров алгоритма PPO задавалась через конфигурационный YAML-файл ML-Agents.
Тонкая настройка данных параметров критически важна для успешного обучения. В таблице 2.X представлен итоговый набор гиперпараметров, обеспечивший успешную сходимость модели.
Таблица 2.1- Конфигурация гиперпараметров обучения (PPO)
Параметр |
Значение |
Описание |
batch_size |
128 |
Количество опытов в одной итерации градиентного спуска. |
buffer_size |
2048 |
Общее количество опытов, собираемых до обновления весов модели. |
learning_rate |
3.0e-4 |
Шаг (скорость) обучения. Использовалось линейное убывание (linear schedule). |
beta |
5.0e-3 |
Сила регуляризации энтропии. Увеличивает случайность действий на старте. |
epsilon |
0.2 |
Порог клиппинга (ограничения) изменения политики PPO. |
lambd |
0.95 |
Параметр обобщенной оценки преимущества (GAE), контролирующий дисперсию. |
num_epoch |
3 |
Количество проходов по буферу данных при обновлении. |
batch_size | 128 | Количество опытов в одной итерации градиентного спуска.
buffer_size | 2048 | Общее количество опытов, собираемых до обновления весов модели.
learning_rate | 3.0e-4 | Шаг (скорость) обучения. Использовалось линейное убывание (linear schedule).
beta | 5.0e-3 | Сила регуляризации энтропии. Увеличивает случайность действий на старте.
epsilon | 0.2 | Порог клиппинга (ограничения) изменения политики PPO.
lambd | 0.95 | Параметр обобщенной оценки преимущества (GAE), контролирующий дисперсию.
num_epoch | 3 | Количество проходов по буферу данных при обновлении.
Особое внимание при настройке среды уделялось синхронизации физического движка PhysX и шагов принятия решений (Decision Steps). Для обеспечения стабильности физических расчетов
параметр Time.fixedDeltaTime в Unity был установлен на значение 0.02 секунды (50 физических обновлений в секунду). Агент принимает решение каждый 5-й физический шаг (Decision Period = 5). К компоненту Rigidbody агента применялся режим Continuous Collision Detection (CCD), что предотвратило эффект туннелирования (прохождения агента сквозь стены лабиринта при высоких скоростях на поздних этапах обучения).
