Обучение с подкреплением · часть 4

Actor‑Critic

Policy gradient шумел, Q-learning умел оценивать состояния. Поселим их в одном агенте: актёр выбирает действия, критик подсказывает, насколько каждое из них оказалось лучше ожидаемого — и учатся они одновременно, на каждом шаге.

Baseline, который зависит от места

В части 3 мы вычитали из отдачи базовую линию bодно число, среднюю отдачу по всем эпизодам. Но подумайте: честно ли хвалить действие за высокую отдачу, если агент и так стоял в шаге от цели? Из хорошей клетки любая прогулка принесёт много. И наоборот: из дальнего угла даже идеальный ход даст скромный результат — а глобальный baseline его накажет.

Хвалить нужно не за «высокую отдачу вообще», а за отдачу выше ожидаемой из этого места. То есть базовая линия должна зависеть от состояния:

θθ+αθlogπθ(atst)(GtV(st))

Вместо константы b — ценность состояния V(st): «сколько обычно приносит жизнь отсюда».

Одна беда: V(s) никто не знает. Решение уже у нас в руках — выучим её из опыта, как учили Q в части 2. Эту выучиваемую оценку и зовут критиком, а softmax-политику из части 3 — актёром. Актёр играет, критик оценивает игру.

Одно число, которое движет обоих

Раз критик есть, можно пойти дальше. REINFORCE ждал конца эпизода, чтобы узнать настоящую отдачу Gt. Но критик умеет предсказывать будущее — заменим хвост эпизода его оценкой, как делал Q-learning (bootstrap): Gtrt+1+γV(st+1). Тогда «насколько шаг оказался лучше ожидаемого» сжимается в одно число:

δt=rt+1+γV(st+1)что получилиV(st)что ожидали

Это та же TD-ошибка из части 2 — здесь она служит оценкой преимуществаA(st,at): выигрыша действия над «средним ходом» из st.

Красота в том, что одно и то же δt учит обоих. Критик сдвигает свой прогноз к реальности, актёр усиливает или ослабляет действие:

V(st)V(st)+αcδt
θθ+αaδtθlogπθ(atst)

Учимся на каждом шаге

Заметьте, что исчезло: нам больше не нужен конец эпизода. δt считается из одного перехода (s,a,r,s) — значит, обновляться можно сразу после каждого шага, как в Q-learning. REINFORCE копил всю траекторию и учился залпом; actor-critic учится на ходу.

Алгоритм

Одношаговый Actor-Critic

  1. инициализировать предпочтения h(s,a)0 и ценности V(s)0
  2. повторять для каждого эпизода:
    1. s старт
    2. покаs не терминальное:
      1. выбрать aπθ(s); выполнить: получить r и s
      2. δr+γV(s)V(s)(для терминального s: V(s)=0)
      3. V(s)+=αcδкритик
      4. h(s,b)+=αaδ(1[b=a]πθ(bs)) для всех bактёр
      5. ss

Онлайн-обновление — не косметика. Оно означает, что метод работает в задачах без конца: робот, который никогда не «доигрывает эпизод», сервер, балансирующий нагрузку непрерывно. REINFORCE там неприменим в принципе — ему некуда дождаться Gt.

Актёр и критик бок о бок

Знакомая сетка, но теперь у агента две «головы», и мы смотрим на обе сразу. Слева — критик: тепловая карта его прогноза V(s). Справа — актёр: веера стрелок-вероятностей, как в части 3. Они учатся одновременно от общего δ.

В одном эпизоде сопоставьте изменение оценки критика с изменением вероятности выбранного действия. Что происходит при положительной и отрицательной TD-ошибке? Затем запустите серию эпизодов и сравните поведение у цели и у старта.

Актёр и критик · Gridworld

0 эп.
Состояние среды и положение агента

Критик — функция ценности

0.000.000.00+10.000.00−10.000.000.000.000.000.000.00

Актёр — политика действий

25%25%25%+125%25%−125%25%25%25%25%25%25%
Запустите эпизод — на панели критика замигают обновления V.
0эпизодов
шагов в последнем
исход
Параметры модели
α актёра
0,25
α критика
0,5
γ (дисконт)
0,95
Политика и оценка состояния учатся вместеОдна TD-ошибка корректирует оценку критика и политику актёра. Полезность такого сигнала зависит в том числе от качества текущего критика.

Проверьте совет из Главы 3: поставьте αa больше αc и сбросьте — актёр начнёт уверенно ходить по указке ещё слепого критика, и обучение станет заметно более дёрганым. Вернёте αc вперёд — снова гладко.

Когда критик решает

Финальный эксперимент. Два агента — REINFORCE с baseline (часть 3) и actor-critic — учатся с нуля на одной карте, одинаковыми темпами. График показывает среднюю отдачу за эпизод: выше — лучше, оптимум отмечен ровной «полкой», к которой кривые должны прижаться.

Сначала сравните методы на короткой карте при одинаковом числе эпизодов, затем выберите длинный коридор. Отдельно оцените скорость обучения и колебания возврата. Достаточно ли одного показанного прогона, чтобы утверждать превосходство метода?

Гонка · кто быстрее выучится

Карта

Карта Короткая 4×4

+1−1
средняя отдача за эпизод (окно 20)
  • Actor-Critic
  • REINFORCE (с baseline)
Сравнение средней отдачи Actor-Critic и REINFORCEоптимум ≈ 0.90
Оба агента стартуют с нуля на одной карте. Запустите эпизоды.
0эпизодов у каждого
AC · средн. (посл. 20)
REINFORCE · средн. (посл. 20)
Скорость обучения двух методовКривые показывают поведение двух реализаций при заданных условиях и начальном состоянии генератора случайных чисел. Один прогон не устанавливает ни универсального преимущества, ни вероятности успеха метода.

Это и есть главный вывод части: преимущество критика растёт с горизонтом задачи. Короткие эпизоды прощают Monte-Carlo; длинные — нет.