Обучение с подкреплением и выравнивание
Модели мира
Выучить среду и планировать в ней — где это выигрывает и чем платит
Вернуть модель
Уроки 030–040 показали, что с моделью среды задача решается прямо. Уроки 050 и далее обходились без неё, потому что она неизвестна. Третий вариант: выучить её.
Ключевое решение — предсказывать не наблюдение, а
Что это даёт
| преимущество | почему |
|---|---|
| эффективность по данным | одна траектория обучает модель, а модель порождает сколько угодно |
| планирование | можно перебрать варианты, не трогая среду |
| перенос | модель среды не зависит от награды: сменилась задача — политика новая, модель та же |
| безопасность | ошибки происходят в воображении |
Третья строка часто оказывается решающей. Модель динамики учит физику, а не цель; при смене цели её не нужно переучивать. Ценностные методы и градиент политики так не умеют — у них цель вшита в то, что они выучили.
Чем платит
Ошибки модели накапливаются. Прогноз на шаг вперёд точен, на пятьдесят — обычно нет. Планирование в неточной модели даёт планы, оптимальные для несуществующей среды, и это главный режим отказа.
Оптимизатор эксплуатирует модель. Ровно та же беда, что с выученной наградой в уроке 130: планировщик найдёт места, где модель ошибочно обещает многое. Отсюда ансамбли моделей — план оценивают по нескольким, и расхождение между ними служит признаком того, что доверять здесь нельзя.
Сложность. Вместо одной сети — три или четыре, плюс планировщик, плюс их взаимодействие.
Два способа использовать модель
| подход | как | цена |
|---|---|---|
| планирование (CEM, MPC) | на каждом шаге перебрать последовательности действий, взять лучшую | дорого в момент действия |
| обучение политики в воображении | генерировать траектории моделью и учить на них обычный RL | дёшево в момент действия |
Первый способ не требует обучения политики вовсе: перебрали, сделали первый шаг плана, на следующем шаге пересчитали. CEM делает это итеративно — сэмплирует последовательности, оставляет лучшие, подтягивает к ним распределение, повторяет. Это то же самое, что было в блоке 3 (урок 170), только в пространстве планов.
Второй способ и есть Dreamer: модель порождает воображаемые траектории, actor-critic из уроков 070–080 учится на них. Реальная среда нужна только чтобы улучшать модель.
Горизонт планирования
Число, определяющее всё. Слишком короткий горизонт — близорукие планы; слишком длинный — накопленная ошибка модели превращает план в фантазию. Разумный выбор связан с тем, насколько быстро расходятся прогнозы ансамбля: планировать стоит настолько далеко, насколько модели ещё согласны между собой.
Полезно сопоставить с из урока 010. Там горизонт задавал задачу, здесь — предел доверия к модели, и это разные величины. Обычно второй заметно короче первого, и это нормально: короткий план плюс функция ценности на его конце покрывают длинный горизонт задачи.
терминал стена
- горизонт 1/(1−γ)
- 10
- значение старта
- -0.108
- изменение за проход
- 7.0e-1
- проходов до сходимости
- 7
Итог
- Модель мира возвращает то, что отняли уроки 050 и далее, но выученной, а не заданной.
- Предсказывают латентное состояние, а не наблюдение: пиксели в основном не относятся к делу.
- Главные выигрыши — эффективность по данным и независимость модели от награды.
- Главный отказ — накопление ошибки и её эксплуатация планировщиком; лечится ансамблями.
- Использовать модель можно планированием или обучением политики в воображении.
- Горизонт планирования ограничен доверием к модели и обычно короче горизонта задачи.
Источники
- Ha, Schmidhuber — World Models — Обучение в латентном пространстве и планирование во сне
- Hafner и др. — Dream to Control (Dreamer) — RSSM и обучение политики по воображаемым траекториям
- Chua и др. — Deep Reinforcement Learning in a Handful of Trials (PETS) — CEM-планирование и ансамбли моделей
Проверки
0 из 2Выученная среда
Отметьте все верные утверждения о моделях мира.
Накопление ошибки модели
Пусть модель ошибается на за один шаг, а динамика растягивает уже имеющееся расхождение с коэффициентом (липшицева константа). Тогда накопленная за шагов ошибка ограничена суммой геометрической прогрессии.
Реализуйте
model_error(eps, lipschitz, horizon, gamma)— верните[accumulated, task_horizon, discount_weight, error_per_weight]:accumulated= , а при — просто (обработайте этот случай отдельно, иначе получите деление на нуль);task_horizon= ;discount_weight= — суммарный вес шагов плана в дисконтированном возврате;error_per_weight=accumulated/discount_weight— накопленная ошибка на единицу полезного веса плана.
Последняя величина и есть то, что стоит минимизировать при выборе глубины: она растёт с горизонтом из-за первого множителя и падает из-за второго.
Загрузка редактора…
Ctrl/⌘ + Enter