Обучение с подкреплением и выравнивание

Доверительная область

Ограничить шаг в пространстве политик, а не в пространстве параметров

Шаг 111 из 117 · ~26 мин

Не тот масштаб

Обычный градиентный шаг ограничивает изменение параметров: Δθϵ\|\Delta\theta\| \le \epsilon. Но нас интересует изменение политики, а связь между ними произвольна. Одинаковый сдвиг весов может почти ничего не изменить в одном месте и полностью переписать поведение в другом.

Проверим на softmax. Один и тот же сдвиг логита на 0.10.1 при разных исходных логитах:

логитывероятность допослеKL
(0,0)(0, 0)0.50000.50000.52500.52501.251031.25\cdot10^{-3}
(0.05,0)(0.05, 0)0.51250.51250.53740.53741.251031.25\cdot10^{-3}
(10,0)(10, 0)0.999960.999960.999960.999962.21072.2\cdot10^{-7}

Норма шага в параметрах одинакова, а расхождение политик различается в пять с половиной тысяч раз. Ограничивать Δθ\|\Delta\theta\| значит ограничивать не ту величину: в третьей строке шаг можно было бы сделать вдесятеро больше без всяких последствий, а в первой — нельзя.

Отсюда идея: мерить шаг в пространстве распределений, и естественная мера там — KL.

maxθ E[πθ(as)πold(as)A(s,a)]приE[KL(πoldπθ)]δ\max_\theta\ \htmlData{k=surrogate}{\mathbb{E}\Big[\frac{\pi_\theta(a\mid s)}{\pi_{\text{old}}(a\mid s)}A(s,a)\Big]} \quad\text{при}\quad \htmlData{k=constraint}{\mathbb{E}\big[\mathrm{KL}(\pi_{\text{old}} \,\|\, \pi_\theta)\big] \le \delta}

Почему ограничение обязано быть

— это off-policy оценка из урока 090, и она верна лишь локально. Точная связь такова: настоящее улучшение отличается от суррогатного не более чем на величину, растущую с расхождением политик,

J(πnew)J(πold)+L(πnew)суррогатCmaxsKL(πoldπnew)J(\pi_{\text{new}}) \ge \underbrace{J(\pi_{\text{old}}) + L(\pi_{\text{new}})}_{\text{суррогат}} - C\cdot \max_s \mathrm{KL}\big(\pi_{\text{old}}\|\pi_{\text{new}}\big)

То есть суррогат — нижняя граница истинного улучшения минус штраф за расхождение. Пока расхождение мало, максимизация суррогата гарантирует монотонное улучшение; когда велико — гарантия исчезает, и оптимизатор с удовольствием уйдёт туда, где оценка ничего не стоит.

Это и есть аккуратная формулировка того, что урок 090 показал измерением: при расхождении политик эффективный размер выборки падает, и данные перестают говорить о новой политике хоть что-то.

Как это решают

Задача с ограничением решается приближённо:

шагчто делает
линеаризовать цельградиент gg суррогата
квадратично приблизить ограничениеKL12ΔθFΔθ\mathrm{KL} \approx \frac12 \Delta\theta^\top F \Delta\theta
решитьΔθF1g\Delta\theta \propto F^{-1} g
подобрать длинулинейный поиск с проверкой ограничения

Матрица FF — информация Фишера (блок 5, урок 120), и шаг F1gF^{-1}g — это естественный градиент. Смысл: двигаться по кратчайшему пути в геометрии распределений, а не параметров.

Обращать FF явно нельзя — она размера «параметры × параметры». Используют сопряжённые градиенты с произведениями «матрица на вектор», которые считаются автоматическим дифференцированием без построения самой матрицы. Это работает, но сложно, и именно поэтому появился PPO.

Три способа ограничить шаг

отношение π/π_old целевая функция

без ограничения обрезка штраф KL
отношение r 1.1
ширина ε 0.2
преимущество A 1
штраф β 1
значение
1.1
производная
1
диапазон обрезки
0.8–1.2
Серая прямая — суррогат без ограничения: растёт неограниченно и потому оптимизируется в никуда. Жёлтая — со штрафом β·KL: гладкая, всегда имеет производную, но требует подбора β. Синяя — обрезка PPO: производная обращается в нуль за границей, и подбирать нужно ε, у которого есть понятный смысл «на сколько процентов разрешено менять вероятность».
подходкак ограничиваетцена
жёсткое ограничение (TRPO)KL δ\le \delta явносопряжённые градиенты, линейный поиск
штраф (KL penalty)вычитает βKL\beta\,\mathrm{KL}подбор β\beta, дрейф в ходе обучения
обрезка (PPO)обнуляет градиент за границейэвристика без гарантий

Третья строка честно говорит, чем PPO платит: обрезка не гарантирует ограничения на KL, она лишь убирает стимул уходить далеко. Иногда шаг всё равно оказывается большим — например если несколько эпох подряд идут по одним и тем же данным. Тем не менее именно PPO вытеснил TRPO, и следующий урок про то, почему.

Итог

  • Ограничивать нужно изменение политики, а не параметров: связь между ними произвольна.
  • Суррогатная цель — нижняя граница улучшения минус штраф за расхождение; вне доверительной области гарантия исчезает.
  • Естественный градиент F1gF^{-1}g — это шаг в геометрии распределений.
  • Три реализации ограничения: жёсткое, штраф, обрезка — с убыванием строгости и сложности.

Источники

Проверки

0 из 2
  1. Что и где ограничивать

    Отметьте все верные утверждения о доверительной области.

  2. Сколько политики в одном шаге

    Реализуйте step_divergence(logits, shift, index): политика — softmax по logits, а шаг прибавляет shift к логиту с номером index. Верните [new_probability, forward_kl, reverse_kl, max_ratio]:

    • new_probability — вероятность действия index после шага;
    • forward_kl = KL(πoldπnew)\mathrm{KL}(\pi_{\text{old}} \,\|\, \pi_{\text{new}});
    • reverse_kl = KL(πnewπold)\mathrm{KL}(\pi_{\text{new}} \,\|\, \pi_{\text{old}});
    • max_ratio = maxaπnew(a)/πold(a)\max_a \pi_{\text{new}}(a)/\pi_{\text{old}}(a) — величина, которую обрезает PPO.

    Обратите внимание, что две KL не совпадают: направление имеет значение, и путать их при отладке легко.

    функция step_divergence

    Загрузка редактора…

    Ctrl/⌘ + Enter