Зачем разделять выбор действия и оценку его качества?
Q-learning учится на отдельных переходах, не зная таблицу вероятностей среды:
одно наблюдение подставляется вместо математического ожидания, и ошибка этой
подстановки со временем усредняется. Actor–critic решает ту же задачу
разделением труда: actor меняет поведение, critic оценивает, оказалось ли
действие лучше ожидания.
Один переход вместо полной модели
В марковском процессе решений итерация ценности опиралась на
сумму по всем s′ с известными вероятностями P(s′∣s,a). Робот в
настоящем коридоре, станция велопроката, накопитель в здании такой таблицы не
имеют. Им доступен один-единственный факт опыта — четвёрка
(st,at,rt+1,st+1).
Из этой четвёрки нужно извлечь всё. Идея temporal difference проста до
неприличия: там, где уравнение Беллмана требует ожидания, подставим одну
случайную реализацию и сделаем маленький шаг в её сторону. Ожидание
восстановится не в одном обновлении, а в среднем по многим.
Q-learning оценивает ценность действия при оптимальном продолжении. Для
наблюдаемого перехода беллмановская цель равна
yt=rt+1+γa′maxQ(st+1,a′).
Разница между целью и текущей оценкой называется ошибкой временной разности:
δt=yt−Q(st,at).
Она и есть весь учебный сигнал:
Q(st,at)←Q(st,at)+αtδt.
Если переход оказался лучше текущего ожидания, δt>0 и ценность растёт.
Если хуже — падает. Обновления шумны, потому что вместо ожидания стоит одна
реализация, но в среднем они направлены к решению уравнения Беллмана.
Беллман писал это про задачу с известной моделью. TD-методы берут то же
свойство и превращают его в правило пересчёта одной ячейки таблицы по одному
наблюдению — без суммы, без вероятностей, без карты мира.
Почему подстановка одного перехода работает
Запишем истинное уравнение оптимальности для пары (s,a):
Q∗(s,a)=E[r+γa′maxQ∗(s′,a′)].
Оператор в правой части обозначим TQ. Он является сжатием: для любых
таблиц Q1,Q2
∥TQ1−TQ2∥∞≤γ∥Q1−Q2∥∞.
Если бы мы умели вычислять TQ точно, повторное применение сходилось
бы к неподвижной точке Q∗ по теореме Банаха. Мы не умеем: у нас есть только
несмещённая выборочная версия
TQ(s,a)=r+γa′maxQ(s′,a′),E[TQ]=TQ.
Поэтому TD-обновление — это в точности стохастическая аппроксимация из
урока о SGD: шаг делается по зашумлённой оценке нужного
направления. Тот же аппарат, та же плата — дисперсия, и та же награда —
отсутствие необходимости знать всё сразу.
Волна ценности идёт назад
Пока таблица пуста, TD-ошибка отлична от нуля только там, где встретилась
настоящая награда. В следующем эпизоде ненулевой становится соседняя ячейка, и
знание ползёт от цели к старту со скоростью один переход за эпизод.
Рис. 71.1. Новость о награде движется назад по одному состоянию за эпизод
Цепочка из пяти состояний, награда +1 в конце, α=0,5, γ=1.
Слева обновления идут по ходу движения: после первого эпизода изменилась лишь
последняя ячейка (0,5), после второго — предпоследняя (0,25), и до
старта сигнал доходит только к пятому эпизоду (0,031). Справа тот же опыт
перепрошит в обратном порядке: старт получает 0,031 уже после первого
эпизода. Данные одни и те же — порядок обновлений решает, как быстро знание
доходит до начала.
Отсюда два практических вывода. Первый: длинные цепочки обучаются мучительно
медленно, и именно поэтому существуют n-шаговые возвраты и повтор опыта в
обратном порядке. Второй: скорость обучения — свойство не только алгоритма, но
и того, в каком порядке ему скармливают собственную память.
Каким должен быть шаг
Табличный Q-learning сходится к Q∗ с вероятностью 1 при двух условиях:
каждая пара (s,a) посещается бесконечно часто, а шаги удовлетворяют условиям
Роббинса–Монро
t∑αt(s,a)=∞,t∑αt2(s,a)<∞.
Первое требование означает «шагов хватит, чтобы уйти от любой начальной
ошибки», второе — «шум в конце концов усредняется». Постоянный шаг второму
условию не удовлетворяет: оценка вечно дрожит вокруг цели с амплитудой порядка
α. Классический выбор — αn=1/np с p∈(0,5;1], где n
— число посещений именно этой ячейки.
На реальной задаче эту разницу видно глазами: на нашей станции велопроката
(о ней ниже) постоянный шаг α=0,02 за 8000 эпизодов дотягивает лишь
до 88,21 руб., постоянный α=0,6 — до 101,04 руб., а убывающий
αn=1/n0,7 — до 111,15 руб. при оптимуме 114,88 руб.
Off-policy: действуем одним правилом, учим другое
Поведение агента может быть ε-жадным, но цель содержит
maxa′Q(s′,a′) — оценку идеального продолжения. Значит, Q-learning учит
жадную target-policy по данным, собранным другой, исследующей behavior-policy.
Это и называется off-policy.
SARSA поступает иначе: в цель подставляется действие, которое агент
действительно выбрал:
Разница выглядит косметической — maxa′Q(s′,a′) против Q(s′,a′) — но она
меняет то, о чём вообще идёт речь.
Обрыв: цена оптимизма
Возьмём сетку 4×8. Старт слева внизу, цель справа внизу, между ними
нижний ряд — обрыв: попадание в него стоит −100 и возвращает на старт.
Каждый обычный шаг стоит −1. Оба алгоритма живут по одной и той же
ε-жадной политике с ε=0,1 и α=0,5.
Рис. 71.2. Off-policy идёт по краю, on-policy отходит от края
Жадные маршруты после обучения и средний возврат по 100 запускам. Q-learning
находит кратчайший путь длиной 9 шагов по самому краю: он оценивает жадное
продолжение, в котором случайных шагов не бывает. SARSA строит обход длиной
13 шагов через верхние ряды, потому что его цель помнит про ε-шум,
который иногда столкнёт агента вниз. Средний возврат за последние 100 эпизодов:
−30,7 у Q-learning против −20,7 у SARSA. Оптимальная политика найдена
одним, а живётся лучше другому.
Это не дефект Q-learning, а честный ответ на другой вопрос. Q-learning
отвечает: «как ходить, если исследование выключат». SARSA: «как ходить, если я
останусь таким же нервным». Выбор между ними — вопрос о том, кто будет
исполнять политику, а не о том, чья математика красивее.
Исследование нельзя выключить слишком рано
Жадная политика
π(s)=argamaxQ(s,a)
использует накопленное знание, но ничего не проверяет. Ячейка с ошибочно низкой
оценкой не будет посещена никогда, и ошибка останется навсегда. Самый простой
ремонт — ε-greedy:
π(a∣s)={1−ε+ε/∣A∣,ε/∣A∣,a=argmaxbQ(s,b),иначе.
На нашей станции велопроката при нулевой инициализации и ε=0 агент
навсегда застревает в политике «ничего не завозить» и получает 25,00 руб.
против оптимума 114,88 руб. Достаточно ε=0,3, чтобы за 6000
эпизодов дойти до 113,40 руб., причём даже расточительное ε=0,6
даёт 113,16 руб.: исследование стоит дорого во время обучения, но оценивается
жадная политика, а она от него только выигрывает.
Фельдбаум: управление, которое учится по дороге
Дилемму «изучать или использовать» в советской теории автоматического
управления сформулировали раньше, чем появилось обучение с подкреплением.
Александр Аронович Фельдбаум в 1960–1961 годах опубликовал в «Автоматике и
телемеханике» цикл статей «Теория дуального управления». Его тезис: если
характеристики объекта неизвестны, управляющее воздействие обязано играть
двойную роль — вести объект к цели и одновременно доставлять информацию о нём.
Оптимальное управление в условиях неопределённости не бывает чисто
исполнительным: оно всегда содержит пробующую составляющую, и величина этой
пробы сама подлежит оптимизации.
Наше ε — самая грубая из возможных реализаций этой идеи: проба, не
зависящая ни от состояния, ни от того, много ли мы уже знаем. Фельдбаум ставил
вопрос строже — какой должна быть оптимальная проба, если есть апостериорное
распределение параметров объекта. Ответ в общем виде оказывается вычислительно
чудовищным, и вся последующая история — от
бандитов с UCB и Томпсоном до современного RL — это поиск
приемлемых приближений к дуальному управлению.
Станция велопроката: учимся без таблицы вероятностей
Возьмём реальные данные: 17 379 часов почасовых наблюдений велопроката — тот же
файл, что в уроке о базисных признаках. Спрос на станции в час
t — случайная величина с распределением, снятым прямо с этих наблюдений:
минимум приходится на 4 часа ночи (в среднем 0,00 велосипеда), пик — на 17
часов (3,69 велосипеда).
Среда устроена так: ёмкость станции 10 велосипедов, эпизод длится сутки, старт
с пятью велосипедами. Каждый час агент выбирает завоз at∈{0,1,2} по 2
рубля за велосипед, затем приходит спрос dt и обслуживается
min(qt+at,dt) поездок по 5 рублей:
Мы, авторы задачи, знаем распределение спроса и можем посчитать точный оптимум
обратным динамическим программированием: V∗=114,88 руб. за сутки. Агент
его не знает: у него 792 ячейки (t,q,a) и поток переходов.
Рис. 71.3. Ученик без модели догоняет точный оптимум
Слева — реальный почасовой спрос, из которого построена среда. Справа —
ценность жадной политики, посчитанная точно, по мере накопления опыта.
Q-learning с убывающим шагом достигает 98% оптимума за 5250 эпизодов и
заканчивает на 114,22 руб. — отставание 0,66 руб. Табличный actor–critic
выходит на 107,10 руб.: мягкая стохастическая политика платит за плавность.
Политика «никогда не завозить» даёт 25,00 руб. — цена отсутствия обучения.
Actor и critic: разделение труда
Актёр πϕ(a∣s) — дифференцируемая стратегия. Критик Vψ(s) —
оценка ценности состояния. Тот же TD-сигнал
δt=rt+1+γVψ(st+1)−Vψ(st)
работает для обоих, но по-разному. Критик уменьшает δt2, актёр
получает направление
ϕ←ϕ+ηδt∇ϕlogπϕ(at∣st).
Формула читается буквально: «если получилось лучше ожидаемого, сделай это
действие вероятнее». Величина δt служит приближением преимущества
Aπ(s,a)=Qπ(s,a)−Vπ(s),
и это ключевой момент: актёр учится не на награде, а на разнице между
случившимся и обычным.
Для дискретных действий актёр обычно выдаёт softmax
πi=ezi/∑jezj, и градиент логарифма имеет простой вид
∇zlogπk=ek−π.
Вероятность выбранного действия растёт, все остальные пропорционально
уменьшаются — единичная сумма сохраняется автоматически.
Почему baseline не смещает, но помогает
Градиент политики можно записать через любую функцию b(s), не зависящую от
действия:
∇ϕJ=E[(Qπ(s,a)−b(s))∇ϕlogπϕ(a∣s)].
Вычитание b(s) ничего не меняет в ожидании, потому что
Зато дисперсия меняется сильно: выбор b(s)=Vπ(s) убирает из сигнала всё,
что относится к состоянию, а не к решению. В задаче, где любое действие в
богатом состоянии приносит +100, а в бедном −100, без baseline актёр учит в
основном шум состояния. Именно поэтому критик в actor–critic не роскошь, а
средство борьбы с дисперсией — ровно как в
уроке о смещении и разбросе, только теперь дисперсия убивает не
прогноз, а обучение.
Критик ошибается — актёр расплачивается
Актёр не имеет собственного доступа к истине: он видит только δt,
которую выдал критик. Добавим к TD-сигналу независимый шум
N(0,σ2) — модель критика, который ошибается не систематически,
а просто беспорядочно.
Слева — механика: положительные δ у третьего действия поднимают его
вероятность с 0,333 до 0,97 за шесть десятков обновлений. Справа — что
бывает, когда сигнал испорчен: на станции велопроката за 8000 эпизодов чистый
actor–critic доходит до 105,63 руб., при шуме критика σ=10 — до
94,40 руб., при σ=25 — до 90,68 руб. Потеря почти пятнадцати рублей
вызвана не плохой политикой, а плохой оценкой: актёр усиливает случайные
действия, приняв ошибку критика за свидетельство.
Сколько шагов брать до того, как поверить критику
Между чистым TD (один шаг и оценка) и Monte Carlo (весь эпизод) лежит семейство
n-шаговых возвратов:
Gt(n)=k=0∑n−1γkrt+k+1+γnV(st+n).
Малое n означает много доверия критику: мало дисперсии, но всё его смещение
попадает в цель. Большое n — много реального опыта: смещение уходит,
дисперсия суммы наград растёт линейно по n.
Модельный пример с фиксированным seed: цепочка из 12 шагов, награды
N(1,1), истинная ценность 12, критик систематически занижает остаток
пути в 0,6 раза. Одношаговая цель даёт смещение −4,40 и ошибку 20,33;
полный Monte Carlo избавляется от смещения, но набирает дисперсию и даёт 11,95;
минимум 10,40 приходится на n=9. Кривая у минимума плоская — точное значение
n обычно не критично, критично не оказаться на краю.
Максимум шумных оценок смещён вверх
Даже если каждая оценка Qa несмещённа, максимум по действиям —
нет. По неравенству Йенсена для выпуклой функции максимума
EamaxQa≥amaxEQa.
Для двух независимых N(0,σ2) разница считается точно:
Emax=σ/π≈0,564σ. Эксперимент на 100 000
наборов подтверждает: при σ=1 и двух действиях средний максимум равен
0,566, при десяти действиях — 1,539. При σ=0,1 и десяти
действиях смещение падает до 0,154 — оно пропорционально шуму, а значит,
исчезает только вместе с ним.
Рис. 71.6. Оптимизм максимума и как его разъединить
Слева: истинная ценность всех действий равна нулю, но средний максимум оценок
положителен и растёт с числом действий. Справа: модельная задача, где левое
действие ведёт в состояние с восемью бесполезными действиями (награда
N(−0,1;1)), а правое сразу даёт ноль. За первые 50 эпизодов
Q-learning выбирает заведомо плохое «влево» в 86,2% случаев, Double
Q-learning — в 23,1%; к концу обучения 11,2% против 7,0% при оптимуме 5%.
Усреднение по 500 запускам.
Лекарство — разделить выбор действия и его оценку:
y=r+γQθˉ(s′,argamaxQθ(s′,a)).
Одна таблица выбирает, вторая оценивает, и один и тот же благоприятный шум
редко используется дважды. Идея та же, что при разделении обучающей и
проверочной выборок в уроке о переобучении: нельзя выбирать и
подтверждать по одним и тем же числам.
От таблицы к сети: replay, target-сеть и deadly triad
Для изображения или непрерывного состояния таблица невозможна. Заменим её сетью
Qθ(s,a) и минимизируем
L(θ)=E[(r+γa′maxQθˉ(s′,a′)−Qθ(s,a))2].
Два костыля делают это работоспособным. Target-сеть с параметрами θˉ
обновляется медленнее основной — иначе цель убегает синхронно с предсказанием и
задача превращается в погоню за собственным хвостом. Replay buffer перемешивает
прошлые переходы: соседние наблюдения в потоке почти одинаковы, и градиенты по
ним не независимы.
Лаборатория TD
Q-learning, SARSA и actor–critic в мире с обрывом
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Здесь видно всё сразу. Оставьте Q-learning и следите, как окраска ценности
расползается от цели к старту — это тот же процесс, что в таблицах рисунка
71.1, только на плоскости. Затем сравните трёх учеников при одном и том же
ε=0,1: жадный маршрут Q-learning прижмётся к обрыву, SARSA уйдёт
наверх, и при этом средний возврат у SARSA окажется выше. Поставьте
ε=0 и нажмите «забыть всё»: обучение остановится почти сразу —
таблица не может исправить того, чего не пробует. Наконец, поднимите α
до 0,9 и посмотрите, как ценности начинают дрожать: таблица повторяет последний
шумный опыт вместо того, чтобы усреднять.
Offline-ловушка
Предположим, взаимодействовать со средой нельзя, а есть журнал старой политики.
Q-learning всё равно берёт максимум по действиям — включая те, которых в
журнале почти нет. Аппроксиматор способен назначить им произвольно высокое
значение, bootstrap перенесёт это значение назад, и агент уверует в
несуществующий выигрыш. Это extrapolation error, и она тем сильнее, чем уже
поддержка данных:
надёжно⟺μданные(a∣s)>0всюду, гдеπновая(a∣s)>0.
Безопасные offline-методы либо штрафуют действия вне поддержки, либо строят
консервативные оценки Q. Но первый вопрос должен быть другим: нужен ли здесь
RL вообще. Если решения не влияют на будущие состояния, достаточно
контекстного бандита. Если для фиксированного действия есть
хорошие метки исхода, хватит обычного обучения с учителем.
Что должно быть в отчёте
Кривая обучения — самая обманчивая картинка в RL: она показывает результат
поведения с исследованием, а внедряют обычно политику без него. Минимальный
честный отчёт содержит:
ценность итоговой политики без exploration noise, отдельно от кривой;
разброс по нескольким seed, а не одну «удачную» кривую;
показатели, ради которых всё затевалось (рубли, пики, отказы), а не только
reward;
число нарушений ограничений и поведение в редких состояниях;
деградацию при сдвиге среды — например, при переносе вечернего пика спроса
на другие часы без дообучения.
От перехода к устойчивой политике
Q-learning переносит уравнение Беллмана в поток наблюдаемых переходов:
подставляет одну реализацию вместо ожидания и платит за это дисперсией и
смещением максимума. SARSA отвечает на другой вопрос — как жить с собственным
шумом. Actor–critic отделяет выбор действия от оценки продолжения, покупая
низкую дисперсию ценой доверия к критику. Общее у них одно: агент учится на
данных, которые сам же и породил, поэтому исследование, поддержка действий и
честная оценка важнее красивой финальной кривой. Устойчивость нейросетевого RL
достигается устройством эксперимента, а не одной формулой.