# World Models: Как Дэвид Ха и Юрген Шмидхубер научили ИИ обучаться в собственном воображении

Источник: https://www.youtube.com/watch?v=dPsXxLyqpfs
Канал: Yannic Kilcher
Опубликовано: 07.04.2018

---

В современном обучении с подкреплением (Reinforcement Learning) взаимодействие с реальной средой часто обходится слишком дорого: роботы тратят электричество и изнашиваются, а сложные симуляции требуют огромных вычислительных мощностей. Исследователь ИИ Янник Кильчер разбирает фундаментальную работу «World Models», авторами которой выступили Дэвид Ха из Google Brain и Юрген Шмидхубер, предложившие радикальное решение: позволить искусственному интеллекту обучаться внутри собственной «фантазии».

## 🧠 Концепция «моделей мира»: обучение в воображении
[[JUMP:0:00]]

Основная идея работы Дэвида Ха и Юргена Шмидхубера заключается в том, что агенту не нужно постоянно взаимодействовать с реальной средой, чтобы учиться [0:15]. Вместо этого он может построить внутреннюю модель того, как устроен мир, и тренироваться внутри этой модели. Янник Кильчер сравнивает это с человеческим воображением: мы можем проигрывать сценарии действий в голове, не совершая их в реальности [1:39].

Для демонстрации концепции авторы использовали две классические среды:

*   **Car Racing**: симулятор гоночного автомобиля, где нужно удерживать машину на трассе [0:56].
*   **VizDoom**: эксперимент в стиле игры Doom, где задача агента — уклоняться от огненных шаров, выпускаемых монстрами [1:10].

По мнению Янника Кильчера, такой подход позволяет минимизировать количество дорогостоящих запросов к среде, заменяя их работой с компактным математическим представлением мира [0:43].

## 🖼️ Компонент V (Vision): сжатие визуального опыта
[[JUMP:2:07]]

Первым этапом создания «модели мира» является сбор данных. Авторы запускают в среду агента со случайной стратегией поведения и собирают 10 000 примеров взаимодействия (rollouts) [2:20]. Эти данные используются для обучения первого компонента системы — вариационного автоэнкодера (VAE).

VAE выполняет роль «зрения» модели:

*   Он принимает на вход кадр видео (например, 64x64 пикселя) [2:58].
*   Пропускает его через кодировщик, сжимая в «латентное представление» (вектор $z$) размерностью от 10 до 100 [3:11].
*   Декодировщик пытается восстановить исходное изображение из этого сжатого кода [4:05].

Янник Кильчер отмечает, что благодаря сильному сжатию модель вынуждена игнорировать статичные и нерелевантные детали, такие как цвет потолка, и фокусироваться на критически важных объектах — например, на положении огненных шаров относительно игрока [4:44]. Таким образом, вектор $z$ становится абстрактным и эффективным описанием текущего состояния среды [5:09].

## 💾 Компонент M (Memory): предсказание будущего
[[JUMP:5:53]]

Второй компонент системы — рекуррентная нейронная сеть (RNN), которая отвечает за «память» и понимание динамики времени. В отличие от других подходов, которые пытаются предсказать будущие пиксели изображения напрямую, модель Дэвида Ха и Юргена Шмидхубера предсказывает эволюцию латентных векторов $z$ [6:53].

Особенности работы RNN в World Models:

*   Сеть обучается предсказывать следующее состояние $z$ на основе текущего состояния и предпринятого действия [7:22].
*   Используется механизм Mixture Density Network (MDN), который выдаёт не одно значение, а распределение вероятностей будущих состояний [8:15].
*   Введён параметр «температуры», который контролирует уровень стохастичности (случайности) предсказаний [7:49].

По утверждению Янника Кильчера, работа в латентном пространстве значительно упрощает обучение, так как это пространство гораздо меньше, чем полная размерность видеокадров [7:08]. К концу этого этапа у системы уже есть полноценная «модель мира»: она знает, что произойдёт, если совершить то или иное действие [8:57].

## 🎮 Компонент C (Controller): минималистичное управление
[[JUMP:9:10]]

Последний элемент — это контроллер, который непосредственно выбирает действия. Авторы намеренно сделали его максимально простым — это обычная линейная модель [9:26]. На вход контроллер получает два вектора:

1.  Текущее латентное представление от VAE ($z$).
2.  Скрытое состояние «памяти» от RNN ($h$), которое содержит контекст прошлых событий [9:39].

Янник Кильчер подчеркивает, что простота контроллера — это осознанный выбор авторов, чтобы доказать: основную интеллектуальную работу выполняет именно модель среды. Если модель мира хороша, то для принятия правильных решений достаточно самых простых вычислительных инструментов [9:53].

## 🌙 Эксперимент «Сон»: обучение в виртуальной реальности
[[JUMP:11:43]]

Самым впечатляющим результатом работы стал эксперимент по обучению агента исключительно внутри «воображения» RNN. Агент никогда не видел реальных кадров игры Doom во время обучения; он взаимодействовал только с галлюцинациями нейросети о том, как должны лететь огненные шары [13:59].

Основные этапы этого процесса:

*   Обучение VAE и RNN на случайных данных из реальной среды [13:45].
*   Создание «виртуальной среды», где RNN генерирует следующие состояния вместо игрового движка [11:16].
*   Обучение контроллера внутри этой галлюцинации [14:12].
*   Перенос (transfer) обученной политики в реальную игру [14:30].

Результаты показали, что агент, обученный «во сне», успешно справляется с реальной игрой и даже превосходит предыдущие алгоритмы в некоторых тестах OpenAI Gym [14:43].

## ⚠️ Проблема «читерства» и роль температуры
[[JUMP:15:10]]

В процессе обучения в воображении возникла специфическая проблема, которую авторы назвали «эксплуатацией модели» или читерством [16:04]. Если внутренняя модель среды содержит хотя бы малейшую ошибку (например, позволяет проходить сквозь стены или делает огненные шары невидимыми в определенных углах), агент неизбежно найдет этот баг и начнет его использовать для набора очков [16:18].

Чтобы предотвратить такое поведение, Дэвид Ха и Юрген Шмидхубер предложили использовать параметр температуры:

*   Повышение температуры делает предсказания модели более зашумленными и вариативными [15:36].
*   Вместо одного «идеального» будущего агент видит множество слегка отличающихся вариантов развития событий [17:00].
*   Это заставляет политику быть устойчивой к неопределенности: если в одном сценарии «баг» сработал, то в десяти других он приведет к поражению, что наказывает агента за попытки жульничать [17:15].

В завершение обзора Янник Кильчер отмечает, что статья написана очень живым и «прозаичным» языком, что редко встречается в академической среде [18:25]. Хотя авторы обсуждали возможность итеративного обучения (когда модель мира и контроллер улучшаются по очереди), в данной работе они ограничились последовательным подходом, оставив более сложные схемы для будущих исследований [17:59].