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

Преимущество и GAE

Непрерывное семейство между TD и Монте-Карло, задаваемое одним числом

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

Между двумя крайностями

Урок 050 показал два способа оценить возврат: полный наблюдённый (Монте-Карло, несмещён, шумен) и одношаговый с бутстрэппингом (TD, смещён, спокоен). Между ними есть непрерывное семейство:

At(n)=rt+γrt+1++γn1rt+n1+γnV(st+n)V(st)A_t^{(n)} = r_t + \gamma r_{t+1} + \dots + \gamma^{n-1} r_{t+n-1} + \gamma^n V(s_{t+n}) - V(s_t)

При n=1n = 1 это TD, при n=n = \infty — Монте-Карло. Вопрос «какое nn» не имеет хорошего ответа, и GAE решает его иначе: взять все сразу, с экспоненциальными весами.

A^t=l0(γλ)lδt+l,δt=rt+γV(st+1)V(st)\hat{A}_t = \sum_{l \ge 0} (\gamma\htmlData{k=lam}{\lambda})^l\, \htmlData{k=delta}{\delta_{t+l}}, \qquad \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)

Что приятно: считается это одним обратным проходом по эпизоду, рекуррентно.

A^t=δt+γλA^t+1\hat{A}_t = \delta_t + \gamma\lambda\,\hat{A}_{t+1}

Никаких сумм по nn — одна строка кода.

Крайние случаи и то, что между

Возьмём δ=[0.5,0.2,0.3,0.1]\delta = [0.5, -0.2, 0.3, 0.1] и γ=0.99\gamma = 0.99:

λ\lambdaA^0\hat{A}_0что это
000.5000.500ровно δ0\delta_0, то есть TD
0.50.50.4870.487почти TD
0.950.950.6600.660рабочее значение
110.6930.693сумма всех δ\delta, то есть Монте-Карло

Заметьте, что при λ=0\lambda = 0 ответ равен первой невязке, а при λ=1\lambda = 1 — их дисконтированной сумме kγkδk=0.693\sum_k \gamma^k\delta_k = 0.693. Оба предела проверяются подстановкой в формулу.

имеет наглядное прочтение: он задаёт эффективный горизонт оценки преимущества,

11γλ\frac{1}{1-\gamma\lambda}

λ\lambda при γ=0.99\gamma = 0.99горизонт
0.900.909.29.2 шага
0.950.9516.816.8 шага
0.990.9950.350.3 шага

То есть λ\lambda — не абстрактный коэффициент, а ответ на вопрос «на сколько шагов вперёд мы доверяем наблюдениям, прежде чем положиться на VV». Именно поэтому рабочие значения лежат около 0.950.95: десятки шагов обычно достаточно, чтобы увидеть последствия действия, и мало, чтобы набрать шум всего эпизода.

Два дисконта, а не один

Тонкость, которую стоит различать. В GAE фактически два параметра дисконтирования:

что делает
γ\gammaзадаёт задачу: какие последствия вообще важны
λ\lambdaзадаёт оценку: как далеко доверять выборке

Смешивать их не стоит: γ\gamma менять нельзя, не меняя того, что оптимизируется (урок 010), а λ\lambda — можно свободно, это чисто статистический выбор. На практике обе ручки крутят вместе, и это источник путаницы: ухудшение при γ=0.9\gamma = 0.9 означает другую задачу, а при λ=0.9\lambda = 0.9 — другой компромисс смещения и дисперсии в той же задаче.

A1%B0%C99%

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

скорость обучения 0.15
шагов 300
ожидаемая награда
1.985
дисперсия градиента
0.0296
смещение оценки
3.6e-3
базовая линия
1.985
На бандите эпизод состоит из одного шага, поэтому λ ни на что не влияет: суммировать нечего, и GAE вырождается в обычное преимущество. Это полезная проверка формулы — в однократной задаче все члены семейства совпадают, и различие между ними появляется только с длиной эпизода.

Вес равен награде минус ожидаемая награда — то есть ровно преимущество.

Что даёт преимущество вместо возврата

Собирая уроки 020, 070 и этот, получаем цепочку замен, каждая из которых снижает дисперсию:

вес в градиентенедостаток
R(τ)R(\tau), весь эпизоднаграды до момента tt не относятся к делу
GtG_t, reward-to-goабсолютный уровень награды добавляет шум
GtV(st)G_t - V(s_t)шум всей оставшейся траектории
A^tGAE\hat{A}_t^{\text{GAE}}смещение из-за неточной VV

Последняя строка честно называет цену. GAE смещён при λ<1\lambda < 1, и смещение тем больше, чем хуже VV. Отсюда практическое следствие: качество критика определяет, какое λ\lambda можно себе позволить. С плохо обученной VV малое λ\lambda вредно, потому что вся оценка опирается на неё; с хорошей — выгодно.

Итог

  • Между TD и Монте-Карло лежит семейство nn-шаговых оценок; GAE усредняет их с весами (γλ)l(\gamma\lambda)^l.
  • Считается одним обратным проходом: A^t=δt+γλA^t+1\hat{A}_t = \delta_t + \gamma\lambda\hat{A}_{t+1}.
  • λ=0\lambda = 0 даёт TD, λ=1\lambda = 1 — Монте-Карло; проверяется подстановкой.
  • Эффективный горизонт оценки равен 11γλ\frac{1}{1-\gamma\lambda} — это и есть смысл λ\lambda.
  • γ\gamma задаёт задачу, λ\lambda — оценку; путать их нельзя.
  • Смещение GAE зависит от качества критика, и это ограничивает выбор λ\lambda.

Источники

Проверки

0 из 2
  1. Что задаёт λ

    Отметьте все верные утверждения о GAE.

  2. Обратный проход GAE

    Реализуйте gae(rewards, values, gamma, lam). Списки rewards и values имеют одинаковую длину nn; ценность за концом эпизода считайте нулевой. Верните [first_delta, first_advantage, last_advantage, effective_horizon]:

    • δt=rt+γV(st+1)V(st)\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t), где V(sn)=0V(s_n) = 0 — верните δ0\delta_0;
    • first_advantage и last_advantage — значения A^0\hat{A}_0 и A^n1\hat{A}_{n-1}, посчитанные обратной рекуррентностью A^t=δt+γλA^t+1\hat{A}_t = \delta_t + \gamma\lambda \hat{A}_{t+1} с A^n=0\hat{A}_n = 0;
    • effective_horizon = 11γλ\dfrac{1}{1-\gamma\lambda}.

    Проверить себя можно так: last_advantage всегда равно δn1\delta_{n-1} — за последним шагом суммировать нечего, и λ\lambda на него не влияет.

    функция gae

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

    Ctrl/⌘ + Enter