Обучение с подкреплением и выравнивание
Доверительная область
Ограничить шаг в пространстве политик, а не в пространстве параметров
Не тот масштаб
Обычный градиентный шаг ограничивает изменение параметров: . Но нас интересует изменение политики, а связь между ними произвольна. Одинаковый сдвиг весов может почти ничего не изменить в одном месте и полностью переписать поведение в другом.
Проверим на softmax. Один и тот же сдвиг логита на при разных исходных логитах:
| логиты | вероятность до | после | KL |
|---|---|---|---|
Норма шага в параметрах одинакова, а расхождение политик различается в пять с половиной тысяч раз. Ограничивать значит ограничивать не ту величину: в третьей строке шаг можно было бы сделать вдесятеро больше без всяких последствий, а в первой — нельзя.
Отсюда идея: мерить шаг в пространстве распределений, и естественная мера там — KL.
Почему ограничение обязано быть
То есть суррогат — нижняя граница истинного улучшения минус штраф за расхождение. Пока расхождение мало, максимизация суррогата гарантирует монотонное улучшение; когда велико — гарантия исчезает, и оптимизатор с удовольствием уйдёт туда, где оценка ничего не стоит.
Это и есть аккуратная формулировка того, что урок 090 показал измерением: при расхождении политик эффективный размер выборки падает, и данные перестают говорить о новой политике хоть что-то.
Как это решают
Задача с ограничением решается приближённо:
| шаг | что делает |
|---|---|
| линеаризовать цель | градиент суррогата |
| квадратично приблизить ограничение | |
| решить | |
| подобрать длину | линейный поиск с проверкой ограничения |
Матрица — информация Фишера (блок 5, урок 120), и шаг — это естественный градиент. Смысл: двигаться по кратчайшему пути в геометрии распределений, а не параметров.
Обращать явно нельзя — она размера «параметры × параметры». Используют сопряжённые градиенты с произведениями «матрица на вектор», которые считаются автоматическим дифференцированием без построения самой матрицы. Это работает, но сложно, и именно поэтому появился PPO.
Три способа ограничить шаг
отношение π/π_old целевая функция
- значение
- 1.1
- производная
- 1
- диапазон обрезки
- 0.8–1.2
| подход | как ограничивает | цена |
|---|---|---|
| жёсткое ограничение (TRPO) | KL явно | сопряжённые градиенты, линейный поиск |
| штраф (KL penalty) | вычитает | подбор , дрейф в ходе обучения |
| обрезка (PPO) | обнуляет градиент за границей | эвристика без гарантий |
Третья строка честно говорит, чем PPO платит: обрезка не гарантирует ограничения на KL, она лишь убирает стимул уходить далеко. Иногда шаг всё равно оказывается большим — например если несколько эпох подряд идут по одним и тем же данным. Тем не менее именно PPO вытеснил TRPO, и следующий урок про то, почему.
Итог
- Ограничивать нужно изменение политики, а не параметров: связь между ними произвольна.
- Суррогатная цель — нижняя граница улучшения минус штраф за расхождение; вне доверительной области гарантия исчезает.
- Естественный градиент — это шаг в геометрии распределений.
- Три реализации ограничения: жёсткое, штраф, обрезка — с убыванием строгости и сложности.
Источники
- Schulman и др. — Trust Region Policy Optimization — TRPO, суррогатная цель и гарантия монотонного улучшения
- Kakade, Langford — Approximately Optimal Approximate RL — Оценка ухудшения при смене политики, на которой стоит TRPO
Проверки
0 из 2Что и где ограничивать
Отметьте все верные утверждения о доверительной области.
Сколько политики в одном шаге
Реализуйте
step_divergence(logits, shift, index): политика — softmax поlogits, а шаг прибавляетshiftк логиту с номеромindex. Верните[new_probability, forward_kl, reverse_kl, max_ratio]:new_probability— вероятность действияindexпосле шага;forward_kl= ;reverse_kl= ;max_ratio= — величина, которую обрезает PPO.
Обратите внимание, что две KL не совпадают: направление имеет значение, и путать их при отладке легко.
Загрузка редактора…
Ctrl/⌘ + Enter