DAgger (Dataset Aggregation) — метод донавчання моделі, інтегрований у платформу Universal Game AI. Він призначений для усунення типової проблеми навчання за демонстраціями: модель навчається відтворювати коректну поведінку, однак не отримує прикладів відновлення після помилки.
Під час стандартного клонування поведінки користувач записує демонстрації коректного проходження. Після навчання модель відтворює цей досвід до моменту, коли опиняється в стані, який не представлений у навчальній вибірці. У такій ситуації агент не має достатньої інформації для коректного продовження дії, що призводить до накопичення помилок. Це обмеження є загальним для систем, що навчаються виключно на успішних демонстраціях.
DAgger вирішує цю задачу шляхом збору корекцій безпосередньо в моментах, коли модель відхиляється від очікуваної поведінки.
Принцип роботи
Процес DAgger побудований на взаємодії користувача з уже навченим агентом під час автономної гри:
- Користувач запускає навчену модель, яка виконує дії самостійно.
- Поки поведінка агента відповідає очікуванням, користувач спостерігає без втручання.
- У разі помилки або ризику некоректної дії користувач перехоплює керування, виконує необхідні дії та коригує поведінку агента. Система автоматично передає контроль користувачу.
- Після періоду без активності з боку користувача контроль повертається моделі, і агент продовжує автономну гру.
Цикл повторюється протягом сесії. Користувач не записує повне проходження рівня заново, а вносить точкові корекції лише в проблемних фрагментах.
Формування навчальних даних
Під час сесії DAgger система не зберігає весь ігровий процес. Фрагменти, де модель демонструє коректну поведінку, не потрапляють до навчальної вибірки, оскільки ця інформація вже представлена в початкових демонстраціях.
Записуються лише кадри, на яких користувач виконав втручання, разом із коротким попереднім відрізком, що фіксує стан гри безпосередньо перед корекцією. Кожен такий фрагмент містить пару «проблемний стан — коректна дія для виходу з нього», що відповідає прикладам, яких не вистачало в початковому датасеті.
Окремо реалізовано розділення вводу моделі та користувача. Під час автономної гри модель генерує власні команди керування. Після перехоплення контролю система фіксує лише дії користувача, без змішування з попередніми діями агента. Це забезпечує чистоту зібраних корекцій і коректність подальшого навчання.
Переваги перед додатковим записом демонстрацій
Альтернативний підхід — самостійний повторний запис демонстрацій у місцях, де модель демонструє слабкі результати. Такий метод має два системні недоліки. По-перше, користувач заздалегідь визначає проблемні зони без гарантії, що вони збігаються з фактичними точками відмови агента. По-друге, у ручному записі користувач, як правило, не потрапляє в ті стани, у які агент заходить самостійно під час автономної гри.
DAgger інвертує цю логіку: проблемні стани виявляються в процесі автономної гри самою моделлю, а користувач надає приклад коректного виходу з кожного такого стану. Навчальні приклади формуються саме в точках фактичної відмови, а не в заздалегідь припущених сценаріях.
Донавчання моделі
Після завершення сесії зібрані корекції можуть бути використані для продовження навчання поточної моделі без перезапуску з нуля. Нові дані додаються до початкових демонстрацій з підвищеною вагою, що відображає їхню більшу цінність для усунення конкретних прогалин у поведінці агента.
Процес має ітеративний характер: кожен цикл «автономна гра — корекція — донавчання» покращує проходження проблемних ділянок. Зменшення частоти необхідних втручань з боку користувача є основним індикатором ефективності методу.
Навчання за демонстраціями формує у моделі уявлення про коректну поведінку. DAgger доповнює цей процес прикладами відновлення після помилки — сценарієм, який складно охопити виключно ручним записом успішних проходжень.