Q‑learning
В прошлой части MCTS планировал, проигрывая партии в голове. Теперь агент будет учиться на собственном опыте — методом проб, ошибок и вознаграждений, постепенно составляя карту того, какое действие в каком состоянии выгоднее.
Учиться на вознаграждении
Представьте существо, которое ничего не знает о мире. Оно в некотором состоянии
Этот цикл «агент ↔ среда» и есть суть обучения с подкреплением (Reinforcement Learning):
Стрелки, Home и End — переход между объектами и стрелками; Enter или пробел — открыть пояснение; Escape — закрыть. Tab — выйти из диаграммы.
Объекты и связи диаграммы
- агент
- Хранит правило выбора действия по текущему состоянию.
- среда
- Изменяет состояние в ответ на действие и назначает награду за переход.
- действие агента
- От «агент» к «среда».Единственный сигнал, которым агент непосредственно влияет на среду.
- новое состояние и награда
- От «среда» к «агент».Ответ среды после выполненного действия.
Награду будущего мы ценим чуть меньше, чем награду сейчас. Поэтому суммарная отдача с момента
При
Ценность действия: Q(s,a)
Ключевая идея — завести число
Но
Как учить Q на опыте
Мы не знаем матожидание, но можем подталкивать оценку к наблюдаемому результату после каждого шага. Пожив один переход
Выражение в скобках — «ошибка предсказания» (TD-error).
Величина в квадратных скобках — насколько реальность разошлась с ожиданием. Шаг
Целиком алгоритм — это тот же шаг обновления, завёрнутый в цикл по эпизодам:
Q-learning
- инициализировать
для всех - повторять для каждого эпизода:
начальное состояние - пока
не терминальное: - выбрать действие
по ε-жадной стратегии - выполнить
: получить награду и новое состояние - вычислить цель
- обновить
Именно этот цикл крутится в интерактивах ниже — по одному эпизоду за нажатие кнопки. Больше ничего в Q-learning нет.
Дилемма исследования — снова
Если всегда брать текущее лучшее действие, агент рискует не найти по-настоящему хороший путь. Простейшее лекарство —
Учим агента игре в камни
Возьмём ту же игру, что и в части про MCTS: куча из 15 камней, за ход берём 1–3, кто взял последний — победил. Теперь состояние — это число камней на ходу агента, действия — «взять 1/2/3», а награда
Агент играет против случайного соперника и после каждого хода обновляет
Начните с одного эпизода и найдите изменившиеся оценки ближе к концу партии. Затем обучите агента на серии эпизодов и сравните действия в одной строке таблицы. Может ли равенство текущих оценок означать, что действия действительно равноценны?
Прогоните пару сотен эпизодов и посмотрите на столбцы: агент сам, без всякой теории игр, выясняет, какие ходы ведут к победе против случайного соперника — цвета в таблице «прорастают» из выигрышных состояний в проигрышные, ровно как награда
Мир-сетка: ценность в пространстве
Игра в камни одномерна. Чтобы увидеть, как ценность растекается по состояниям, перейдём к классике RL — gridworld. Агент 🤖 стартует в углу и ищет путь к цели ⚑ (награда
Сначала запустите один эпизод и найдите посещённые клетки. Затем добавьте серию эпизодов: как меняются оценки возле цели и у старта? Различайте текущую оценку клетки и действие, которое агент иногда выбирает для исследования.
Сначала стрелки хаотичны, а карта серая — агент блуждает. Но с каждым эпизодом награда цели «протекает» на соседние клетки: сначала загораются клетки рядом с ⚑, потом их соседи, и так до старта. Через сотню-другую эпизодов стрелки складываются в оптимальный маршрут в обход ловушки.
Планирование против обучения
MCTS и Q-learning решают одну задачу — «что делать?» — но с разных сторон. Один думает наперёд под текущую ситуацию, другой помнит опыт всех прошлых ситуаций.
- ПланированиеСтроит дерево под конкретное состояние прямо сейчас. Не хранит знание между ходами. Нужна модель игры, чтобы прокручивать партии.
- ОбучениеКопит таблицу ценностей из опыта многих эпизодов. Переиспользует её всюду. Модель не нужна — учится прямо из наград среды.
Оба страдают от размера пространства состояний. Q-таблица не влезет для го или шахмат, а MCTS в одиночку слишком поверхностен. Решение оказалось в их союзе:
Сверху — обучение, снизу — планирование. Две стороны одной медали.