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

Теорема о градиенте политики

Как продифференцировать то, по чему берётся ожидание — и почему это работает

Шаг 107 из 117 · ~28 мин

Другой подход

До сих пор политика получалась как побочный продукт: выучили ценности, взяли жадное действие. Можно иначе — параметризовать политику πθ\pi_\theta и оптимизировать её напрямую градиентным подъёмом.

Зачем, если работает первое:

через ценностинапрямую
непрерывные действияargmaxaQ\arg\max_a Q — отдельная задачаестественно
стохастическая политиканужен костыльестественно
гарантии на табличных задачахсильныеслабее
устойчивость при аппроксимации«смертельная триада»лучше

Первые две строки — практические причины, по которым в робототехнике и в языковых моделях используют именно градиент политики.

Трудность и её решение

Максимизируем J(θ)=Eτπθ[R(τ)]J(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}[R(\tau)]. Проблема сразу: параметры стоят в распределении, по которому берётся ожидание, а не в функции под ним. Обычное дифференцирование под знаком интеграла не проходит.

Решает это тождество, известное как score-function trick — то же самое, что в блоке 3:

θpθ(x)=pθ(x)θlogpθ(x)\nabla_\theta p_\theta(x) = p_\theta(x)\, \htmlData{k=trick}{\nabla_\theta \log p_\theta(x)}

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

θJ=Eτ[R(τ)θlogpθ(τ)]\nabla_\theta J = \mathbb{E}_{\tau}\big[R(\tau)\,\nabla_\theta \log p_\theta(\tau)\big]

Что сокращается в траектории

Вероятность траектории — произведение динамики среды и политики:

pθ(τ)=p(s0)tP(st+1st,at)πθ(atst)p_\theta(\tau) = p(s_0)\prod_t P(s_{t+1}\mid s_t, a_t)\, \pi_\theta(a_t\mid s_t)

Берём логарифм — произведение превращается в сумму. Берём градиент по θ\thetaвсе слагаемые с динамикой исчезают, потому что от θ\theta не зависят:

θlogpθ(τ)=tθlogπθ(atst)\nabla_\theta\log p_\theta(\tau) = \sum_t \nabla_\theta \log\pi_\theta(a_t\mid s_t)

Вот главный результат урока. В формуле градиента не осталось ни PP, ни p(s0)p(s_0) — только логарифмы вероятностей собственных действий. Модель среды не нужна не потому, что мы её оценили, а потому, что она сократилась.

Собирая всё, получаем теорему о градиенте политики:

θJ=E[tGtθlogπθ(atst)]\nabla_\theta J = \mathbb{E}\Big[\sum_t \htmlData{k=weight}{G_t}\, \htmlData{k=direction}{\nabla_\theta \log \pi_\theta(a_t\mid s_t)}\Big]

Читается она буквально: увеличивает вероятность сделанного действия, а говорит, насколько сильно — и с каким знаком. Хорошее действие становится вероятнее, плохое реже.

Что при этом не нужно

Стоит перечислить, потому что список длиннее ожидаемого:

  • модель среды — сократилась;
  • дифференцируемость среды — награда входит множителем, через неё не дифференцируем;
  • дифференцируемость награды — она может быть хоть двоичной, хоть выданной человеком;
  • знание функции ценности — достаточно наблюдённого возврата.

Третий пункт — тот, из-за которого метод применим к выравниванию языковых моделей (уроки 130–140): «человеку понравился ответ» не является дифференцируемой функцией параметров, и это неважно.

Ограничение: дисперсия

Цена за общность — огромная дисперсия оценки. Множитель GtG_t — сумма случайных наград всего эпизода, и она умножается на градиент. Посмотрите на readout «дисперсия градиента» в виджете, пока базовая линия выключена.

A2%B1%C97%

рука вероятность

скорость обучения 0.1
шагов 200
ожидаемая награда
1.959
дисперсия градиента
0.0315
смещение оценки
2.6e-3
базовая линия
0
Три руки с наградами 1, 0 и 2. Кривая под столбиками — ожидаемая награда по ходу обучения. Столбец «смещение оценки» сравнивает выборочный градиент с точным, который для бандита известен в замкнутой форме: он остаётся около нуля независимо от базовой линии, и это то, что означает несмещённость.

Урок 070 занимается ровно этим числом.

Итог

  • Параметры стоят в распределении, и score-function trick возвращает градиент в форму ожидания.
  • В логарифме траектории динамика среды сокращается — модель не нужна по построению.
  • Награда входит множителем, поэтому её дифференцируемость не требуется.
  • Формула читается как «сделать хорошее вероятнее», и это буквально то, что она делает.
  • Плата — дисперсия, и следующий урок про то, как её уменьшать.

Источники

Проверки

0 из 2
  1. Откуда берётся формула

    Отметьте все верные утверждения о теореме о градиенте политики.

  2. Точный градиент на бандите

    На бандите ожидание берётся по конечному числу действий, поэтому градиент политики считается точно, без выборки. Пусть политика — softmax по логитам θ\theta, а награда действия aa детерминирована и равна rar_a.

    Реализуйте 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 — суммарная по компонентам дисперсия однопримерной оценки, то есть i(aπ(a)[(rab)([i=a]π(i))]2gi2)\sum_i \Big(\sum_a \pi(a)\big[(r_a-b)([i=a]-\pi(i))\big]^2 - g_i^2\Big), где gig_i — точная компонента;
    • expected_reward = aπ(a)ra\sum_a \pi(a) r_a.

    Проверить себя можно так: при равномерной политике и наградах 1,0,21, 0, 2 градиент равен (0,13,+13)(0, -\tfrac13, +\tfrac13) при любой базовой линии.

    функция exact_policy_gradient

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

    Ctrl/⌘ + Enter