Обучение с подкреплением и выравнивание
Теорема о градиенте политики
Как продифференцировать то, по чему берётся ожидание — и почему это работает
Другой подход
До сих пор политика получалась как побочный продукт: выучили ценности, взяли жадное действие. Можно иначе — параметризовать политику и оптимизировать её напрямую градиентным подъёмом.
Зачем, если работает первое:
| через ценности | напрямую | |
|---|---|---|
| непрерывные действия | — отдельная задача | естественно |
| стохастическая политика | нужен костыль | естественно |
| гарантии на табличных задачах | сильные | слабее |
| устойчивость при аппроксимации | «смертельная триада» | лучше |
Первые две строки — практические причины, по которым в робототехнике и в языковых моделях используют именно градиент политики.
Трудность и её решение
Максимизируем . Проблема сразу: параметры стоят в распределении, по которому берётся ожидание, а не в функции под ним. Обычное дифференцирование под знаком интеграла не проходит.
Решает это тождество, известное как score-function trick — то же самое, что в блоке 3:
Это просто производная логарифма, переписанная в другую сторону. Но эффект в том, что после подстановки градиент снова становится ожиданием по тому же распределению — а ожидание можно оценить выборкой.
Что сокращается в траектории
Вероятность траектории — произведение динамики среды и политики:
Берём логарифм — произведение превращается в сумму. Берём градиент по — все слагаемые с динамикой исчезают, потому что от не зависят:
Вот главный результат урока. В формуле градиента не осталось ни , ни — только логарифмы вероятностей собственных действий. Модель среды не нужна не потому, что мы её оценили, а потому, что она сократилась.
Собирая всё, получаем теорему о градиенте политики:
Читается она буквально:
Что при этом не нужно
Стоит перечислить, потому что список длиннее ожидаемого:
- модель среды — сократилась;
- дифференцируемость среды — награда входит множителем, через неё не дифференцируем;
- дифференцируемость награды — она может быть хоть двоичной, хоть выданной человеком;
- знание функции ценности — достаточно наблюдённого возврата.
Третий пункт — тот, из-за которого метод применим к выравниванию языковых моделей (уроки 130–140): «человеку понравился ответ» не является дифференцируемой функцией параметров, и это неважно.
Ограничение: дисперсия
Цена за общность — огромная дисперсия оценки. Множитель — сумма случайных наград всего эпизода, и она умножается на градиент. Посмотрите на readout «дисперсия градиента» в виджете, пока базовая линия выключена.
рука вероятность
- ожидаемая награда
- 1.959
- дисперсия градиента
- 0.0315
- смещение оценки
- 2.6e-3
- базовая линия
- 0
Урок 070 занимается ровно этим числом.
Итог
- Параметры стоят в распределении, и score-function trick возвращает градиент в форму ожидания.
- В логарифме траектории динамика среды сокращается — модель не нужна по построению.
- Награда входит множителем, поэтому её дифференцируемость не требуется.
- Формула читается как «сделать хорошее вероятнее», и это буквально то, что она делает.
- Плата — дисперсия, и следующий урок про то, как её уменьшать.
Источники
- Sutton и др. — Policy Gradient Methods for RL with Function Approximation — Исходная формулировка теоремы
- Sutton, Barto — Reinforcement Learning, An Introduction — Глава 13, вывод и REINFORCE
Проверки
0 из 2Откуда берётся формула
Отметьте все верные утверждения о теореме о градиенте политики.
Точный градиент на бандите
На бандите ожидание берётся по конечному числу действий, поэтому градиент политики считается точно, без выборки. Пусть политика — softmax по логитам , а награда действия детерминирована и равна .
Реализуйте
exact_policy_gradient(logits, rewards, baseline)— верните[first_component, last_component, variance, expected_reward]:- компоненты градиента $\dfrac{\partial J}{\partial \theta_i} = \sum_a \pi(a),(r_a - b), \big([i = a] - \pi(i)\big)$ — верните нулевую и последнюю;
variance— суммарная по компонентам дисперсия однопримерной оценки, то есть , где — точная компонента;expected_reward= .
Проверить себя можно так: при равномерной политике и наградах градиент равен при любой базовой линии.
Загрузка редактора…
Ctrl/⌘ + Enter