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

Policy Gradient

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

Учить стратегию, а не ценности

Есть два взгляда на обучение с подкреплением. Value-based (Q-learning): выучить ценности Q(s,a), а действовать — жадно, беря максимум. Policy-based (policy gradient): выкинуть промежуточное звено и учить саму политикуπθ(as) — распределение вероятностей по действиям, задаваемое параметрами θ.

Для дискретных действий политику удобно задавать через softmax от «предпочтений» hθ(s,a): чем больше предпочтение, тем вероятнее действие.

πθ(as)=ehθ(s,a)behθ(s,b)

Политика вероятностная: даже «лучшее» действие берётся не всегда — это естественное исследование.

Как подкручивать θ

Цель — максимизировать ожидаемую отдачу по всем траекториям τ, которые порождает политика:

J(θ)=Eτπθ[G(τ)],θθ+αθJ(θ)

Заметьте знак «плюс»: это градиентный подъём — мы лезем вверх, к большей награде.

Загвоздка: награда рождается в среде, через неё не продифференцируешь. Спасает тождество лог-производной — весь фокус страницы умещается в одну строку:

θπθ=πθθlogπθ
θEπθ[G]=Eπθ[Gθlogπθ]

Градиент «переезжает» с недифференцируемого ожидания на logπ — а его мы дифференцировать умеем, это наша собственная softmax-политика.

Осталась одна тонкость: действие в момент t влияет только на будущие награды — прошлое оно изменить не может. Поэтому вместо отдачи всей траектории G(τ) каждому шагу честно приписывают лишь его «хвост» Gt (reward-to-go); ответ не меняется, а шума становится меньше. Так получается теорема о градиенте политики:

θJ(θ)=E[Gtθlogπθ(atst)]

Читается на удивление по-человечески: сдвинь параметры в сторону, которая делает выбранное действие вероятнее — но с силой, пропорциональной полученной отдаче. Хорошая отдача — усиливаем действие; плохая (отрицательная) — ослабляем. Это правило REINFORCE:

θθ+αθlogπθ(atst)(Gtb)

b — базовая линия (baseline): вычитаем «среднюю» отдачу, чтобы уменьшить шум. Ответ при этом не смещается:

E[bθlogπθ]=bθE[1]=0

Константа под градиентом вероятностей исчезает.

Для softmax градиент logπ считается в одну строчку и обнажает всю механику: повышаем предпочтение выбранного действия, понижаем — у остальных, пропорционально их текущей вероятности:

logπθ(as)h(s,b)=1[b=a]πθ(bs)

Собранный в цикл, алгоритм выглядит так:

Алгоритм

REINFORCE

  1. инициализировать предпочтения h(s,a)0
  2. повторять для каждого эпизода:
    1. разыграть эпизод по политике πθ: получить (s0,a0,r1,)
    2. посчитать отдачи Gt=k0γkrt+k+1
    3. для каждого шага t эпизода:
      1. h(st,b)+=α(Gtb)(1[b=at]πθ(bst)) для всех b

Softmax-бандит: политика вместо оценок

Простейший случай — одно состояние, несколько действий. У каждого автомата свой скрытый шанс выплаты; награда за раунд — R=1 (выигрыш) или R=0. Политика — softmax по предпочтениям ha. После каждого раунда правило REINFORCE двигает предпочтения, и полоски вероятностей π(a) перетекают к лучшему автомату.

Выполните несколько раундов по одному и сопоставьте награду с изменением вероятности выбранного действия. Затем сравните работу с базовой линией и без неё. Должно ли действие с нулевой наградой всегда получать одинаковую поправку?

Градиентный бандит

раунд 0
Автомат A
π = 25%
h = 0.00
1 / 4
Автомат B
π = 25%
h = 0.00
2 / 4
Автомат C
π = 25%
h = 0.00
3 / 4
Автомат D
π = 25%
h = 0.00
4 / 4
  • вероятность π(a)
  • высота = как часто политика берёт это действие
Все предпочтения равны 0 → политика равномерна.
Параметры модели
α (скорость)
0,1
Градиент политики меняет вероятностиПоправка зависит от награды относительно базовой линии и от текущих вероятностей. Базовая линия меняет шум оценки градиента, сохраняя её математическое ожидание при выполнении условий метода.

Выключите базовую линию и прогоните ещё раз: без вычитания среднего обновления куда «дёрганее» — это и есть проблема высокой дисперсии, ради которой baseline придумали. С ней политика сходится ровнее.

И второй опыт: выкрутите α на максимум и сбросьте. Пара случайных выигрышей — и политика может «залипнуть» на неверном автомате: вероятности заострились, остальные ручки почти не дёргаются, и исправить ошибку уже некому — исследование умерло вместе с энтропией распределения. Это главный практический риск softmax-политик: преждевременный коллапс. Лекарства — маленький шаг α или бонус за энтропию (так делает PPO).

Политика в пространстве

Тот же мир-сетка, что в части про Q-learning, но теперь в каждой клетке живёт не таблица ценностей, а распределениеπ(s) по четырём направлениям. Прозрачность каждой стрелки — вероятность соответствующего хода; яркая жирная стрелка — самое вероятное действие.

Начните с одного завершённого эпизода и проследите, какие действия получили поправки. Затем запустите серию эпизодов. Объясняйте изменение вероятностей через возврат, а не только через число посещений клетки.

Policy-gradient · Gridworld

0 эп.
25%25%25%+125%25%−125%25%25%25%25%25%25%
0эпизодов
шагов в последнем
исход
Параметры модели
α (скорость)
0,2
γ (дисконт)
0,95
Политика после серии эпизодовВероятности действий меняются по возвратам завершённых эпизодов. Улучшение не обязано происходить после каждого отдельного эпизода.

Обратите внимание на разницу с Q-learning: там мы красили клетки по ценности и брали argmax. Здесь мы вообще не оцениваем клетки — мы прямо лепим распределение действий, толкая вероятности туда, куда привели удачные эпизоды.

Три подхода — и их союз

За три части мы собрали три способа отвечать на вопрос «что делать?». Каждый силён по-своему.

Смысловые этапы метода
  1. ПланированиеДумает наперёд под текущее состояние, прокручивая партии. Не требует обучения, но ничего не помнит между ходами — и, главное, ему нужна модель среды, чтобы прокручивать варианты «в голове».
  2. Ценности (value-based)Учит Q(s,a), действует жадно. Эффективно по данным, но капризно при огромных и непрерывных пространствах действий.
  3. Политика (policy-based)Учит распределение действий напрямую. Годится для непрерывных действий и стохастичных стратегий, но шумит (большая дисперсия).

Их сила складывается в actor-critic: «актёр» πθ выбирает действия (policy gradient), а «критик» Vw оценивает состояния (как в Q-learning) и служит той самой базовой линией, гася дисперсию. Вместо грубой отдачи Gt актёр использует преимущество:

A(s,a)=r+γVw(s)Vw(s)
θθ+αA(s,a)θlogπθ(as)

Актёр учит политику, критик — ценности; преимущество связывает их в одно правило.