Policy Gradient
Q-learning учил ценности и действовал жадно. Теперь мы поступим смелее — будем настраивать саму стратегию: понемногу повышать вероятность действий, за которыми пришла большая награда, и понижать вероятность неудачных.
Учить стратегию, а не ценности
Есть два взгляда на обучение с подкреплением. Value-based (Q-learning): выучить ценности
Для дискретных действий политику удобно задавать через softmax от «предпочтений»
Политика вероятностная: даже «лучшее» действие берётся не всегда — это естественное исследование.
Как подкручивать θ
Цель — максимизировать ожидаемую отдачу по всем траекториям
Заметьте знак «плюс»: это градиентный подъём — мы лезем вверх, к большей награде.
Загвоздка: награда рождается в среде, через неё не продифференцируешь. Спасает тождество лог-производной — весь фокус страницы умещается в одну строку:
Градиент «переезжает» с недифференцируемого ожидания на
Осталась одна тонкость: действие в момент
Читается на удивление по-человечески: сдвинь параметры в сторону, которая делает выбранное действие вероятнее — но с силой, пропорциональной полученной отдаче. Хорошая отдача — усиливаем действие; плохая (отрицательная) — ослабляем. Это правило REINFORCE:
Константа под градиентом вероятностей исчезает.
Для softmax градиент
Собранный в цикл, алгоритм выглядит так:
REINFORCE
- инициализировать предпочтения
- повторять для каждого эпизода:
- разыграть эпизод по политике
: получить - посчитать отдачи
- для каждого шага
эпизода: для всех
Softmax-бандит: политика вместо оценок
Простейший случай — одно состояние, несколько действий. У каждого автомата свой скрытый шанс выплаты; награда за раунд —
Выполните несколько раундов по одному и сопоставьте награду с изменением вероятности выбранного действия. Затем сравните работу с базовой линией и без неё. Должно ли действие с нулевой наградой всегда получать одинаковую поправку?
Выключите базовую линию и прогоните ещё раз: без вычитания среднего обновления куда «дёрганее» — это и есть проблема высокой дисперсии, ради которой baseline придумали. С ней политика сходится ровнее.
И второй опыт: выкрутите
Политика в пространстве
Тот же мир-сетка, что в части про Q-learning, но теперь в каждой клетке живёт не таблица ценностей, а распределение
Начните с одного завершённого эпизода и проследите, какие действия получили поправки. Затем запустите серию эпизодов. Объясняйте изменение вероятностей через возврат, а не только через число посещений клетки.
Обратите внимание на разницу с Q-learning: там мы красили клетки по ценности и брали
Три подхода — и их союз
За три части мы собрали три способа отвечать на вопрос «что делать?». Каждый силён по-своему.
- ПланированиеДумает наперёд под текущее состояние, прокручивая партии. Не требует обучения, но ничего не помнит между ходами — и, главное, ему нужна модель среды, чтобы прокручивать варианты «в голове».
- Ценности (value-based)Учит
, действует жадно. Эффективно по данным, но капризно при огромных и непрерывных пространствах действий. - Политика (policy-based)Учит распределение действий напрямую. Годится для непрерывных действий и стохастичных стратегий, но шумит (большая дисперсия).
Их сила складывается в actor-critic: «актёр»
Актёр учит политику, критик — ценности; преимущество связывает их в одно правило.