Self-play создаёт учебную программу без готового набора правильных ходов: соперник растёт вместе с агентом. Но игра против собственной текущей версии может вращаться по кругу. Нужны поиск, архив стратегий и оценка, которая не подыгрывает новому чемпиону.
Камень, ножницы, бумага уже предупреждают
Пусть строковый игрок выбирает смешанную стратегию , столбцовый — , а матрица выигрыша первого
Ожидаемый выигрыш равен . Равновесие Нэша — равномерная смесь . У неё нет единственного «лучшего хода»; ценна непредсказуемость.
Если обучать лучший ответ только против последнего соперника, стратегии вращаются: бумага побеждает камень, ножницы — бумагу, камень — ножницы. Новая версия сильнее предыдущей и всё же уязвима для более старой. Поэтому граф «версия 8 победила версию 7» не задаёт линейную шкалу мастерства.
Слева дана матрица win rate, справа стрелки показывают отношение «побеждает чаще 50%». Упорядочить вершины сверху вниз невозможно: граф содержит цикл. Серый столбец «против смеси» даёт другой, более устойчивый итог.
Игра как минимакс
В конечной игре с нулевой суммой первый игрок решает
второй —
Теорема фон Неймана утверждает равенство значений. Смешанные стратегии нужны не из-за слабости игрока, а потому, что чистый ход может быть эксплуатируем.
В последовательной игре состояние содержит позицию, действие — допустимый ход, терминальная награда . Это MDP с особой частью состояния: очередью хода соперника. Для симметричной игры ценность позиции с точки зрения текущего игрока меняет знак после перехода.
Почему self-play создаёт данные
В шахматах число возможных позиций огромно, а экспертные партии покрывают лишь узкую область. Self-play генерирует тройки:
где — улучшенное поиском распределение ходов, — итог партии. Сеть учится одновременно предсказывать policy и value:
Цель policy берётся не из человеческой записи, а из поиска. Цель value приходит только после конца партии и переносится ко всем посещённым состояниям. Это длинный credit assignment, знакомый по actor–critic, но с терминальным исходом.
Поиск MCTS и правило PUCT
Monte Carlo Tree Search многократно проходит дерево:
- выбирает перспективные рёбра;
- расширяет новую позицию;
- оценивает её сетью;
- переносит значение назад;
- после бюджета ходов строит policy из счётчиков посещений.
В AlphaZero-подобной схеме действие выбирают по
использует найденные результаты, prior направляет поиск, дробь поощряет мало посещённые ветви. Это локальная версия обмена между исследованием и использованием из задачи о бандитах: каждый узел решает её заново для собственных действий. В начале prior силён; с ростом фактические оценки получают больший вес.
Красный путь показывает selection по PUCT, новый узел обведён, рядом сеть выдаёт value и priors. Синие стрелки backup возвращают значение с чередующимся знаком. У рёбер подписаны до и после итерации.
Лаборатория лиги
Сначала обучайте только против последней версии и наблюдайте матрицу попарных игр. Затем включите выбор соперника из архива. Если в среде есть циклические стратегии, архив снижает забывание старых защит.
Поменяйте правило допуска чемпиона: одна серия из 20 игр даёт шумный вывод. Сравните его с 400 играми и перестановкой цвета/первого хода. Не принимайте процент побед без доверительного интервала.
Лига вместо зеркала
Архив хранит прошлые policy и специализированных соперников. Новая версия играет не только с собой, но и со смесью архива. Распределение соперников можно повышать для тех, против кого win rate около 50%: они дают информативные партии.
В population-based training несколько агентов развиваются параллельно. Meta-game строит матрицу результатов между ними, а затем выбирает смесь, устойчивую к лучшим ответам. Это ближе к равновесию, чем лестница одного рейтинга.
Однако архив увеличивает вычисления и может зафиксировать старые слабости. Нужна политика отбора: хранить разнообразные стратегии, а не каждую контрольную точку.
Оценка без утечки
Если кандидат участвовал в выборе тестовых соперников, результат оптимистичен. Нужен замороженный evaluation pool, не влияющий на обучение. Цвета и начальные позиции балансируют; seed фиксируют; повторяющиеся дебюты учитывают как зависимые наблюдения.
Для пары игроков можно оценить Elo:
Но Elo предполагает транзитивную одномерную силу. При циклах матрица попарных результатов содержит больше информации, чем рейтинг. Полезны exploitability, Nash averaging и performance profiles.
Связь с моделью Брэдли–Терри прямая: обе превращают разность скрытых баллов в вероятность победы, обе ломаются на систематической нетранзитивности.
Слева показаны win rates всех пар. В центре — одномерный Elo. Справа — остатки «наблюдаемая минус предсказанная вероятность»: треугольный рисунок выявляет цикл стилей, невидимый в одном числе.
От AlphaGo к AlphaZero
AlphaGo сочетала обучение на человеческих партиях, reinforcement learning и поиск. AlphaGo Zero начинала только с правил и self-play, а AlphaZero распространила схему на шахматы и сёги. Это не означает «данные не нужны»: партии self-play и вычисления поиска сами являются огромным набором данных, созданным системой.
Правила должны быть точными, симулятор — быстрым, результат — объективным. В открытом мире нет удобного терминального , а действия могут иметь необратимые последствия. Поэтому перенос self-play на диалог, экономику или безопасность требует модели оппонента и очень осторожной постановки.
Практика с OpenSpiel
OpenSpiel содержит реализации игр, алгоритмы и метрики. Для школьного исследования подойдут крестики-нолики, Kuhn poker или Leduc poker. У крестиков-ноликов можно вычислить точный minimax, поэтому это хороший unit test. Kuhn poker требует смешанных стратегий и скрытой информации.
Сравните три режима: self-play против последней версии, равномерный архив и лига с приоритетом соперников около 50% win rate. Одинаковый бюджет измеряйте не эпохами, а числом симуляций или позиций. Итогом должна быть полная матрица игр, а не одна победная серия.
Мини-исследование: стратегия, которая проходит турнир, но проигрывает лиге
Сконструируйте четыре агента для расширенной игры камень–ножницы–бумага. Первый играет равномерно, второй в 70% выбирает камень, третий является лучшим ответом ко второму, четвёртый — лучшим ответом к третьему. Проведите полную round-robin матрицу минимум по 10 000 партий на пару.
Теперь сравните три правила выбора чемпиона: win rate против непосредственного предшественника, средний win rate против всех и worst-case win rate против любого соперника. Рейтинги разойдутся. Участник, созданный как лучший ответ, может выглядеть великолепно в одной колонке и быть хрупким в остальных.
Составьте evaluation mixture из архива и вычислите expected win rate каждого агента. Затем найдите такую смесь, которая максимизирует минимальный результат против чистых соперников. Для маленькой матрицы это линейная программа. Полученная смесь может не включать агента с лучшим средним.
Этот опыт подготавливает попарные модели предпочтений: одномерный score удобен, но полная матрица хранит нетранзитивную структуру. На защите показывайте обе, если residual рейтинговой модели систематичен.
Повторите tournament после ограничения каждой пары лишь двадцатью играми. Bootstrap-ом пересэмплируйте исходы и получите распределение выбора чемпиона. Циклическая структура останется, но sampling noise добавит нестабильность. Разделите эти эффекты: uncertainty уменьшается новыми партиями, нетранзитивность — нет.
Для sequential games дополнительно меняйте первый ход и начальные позиции. Иначе агент может получить рейтинг за преимущество стороны. Матрица должна хранить paired results при обоих цветах, как блокированный эксперимент.
Лига сильнее последней версии
Self-play — генератор задач, подстраивающихся под текущий уровень. MCTS превращает оценки сети в улучшенные цели, а сеть возвращает поиску обобщение. Но нетранзитивность разрушает простую идею «новее значит сильнее». Архив, лига и независимое оценивание входят в алгоритм не меньше loss-функции.