Reinforcement Learning это техника обучения агента действиям, основанная на вознаграждении или наказании за взаимодействие агента в среде. Напомним, что в RL агент выполняет ряд действий в среде, и на основе результатов его деятельности агенту назначается вознаграждение (или наказание), а на основе этого вознаграждения/наказания агент изменяет свои действия.
Рассмотрим игру одного агента против среды, например, пасьянс; агент может играть "против" среды несколько раз, и мы можем изменять среду (менять сложность, рандомизировать и т.д.), чтобы нацелить агента на конкретное обучение. А как насчет соревновательных игр с несколькими игроками, таких как AI Arena?
Можно создать противника как часть среды и запускать своего агента против этого противника; например, можно создать бойца, основанного на правилах, и тренировать своего агента RL против этого бойца. Этот метод, однако, имеет ограниченное применение. Этому есть множество причин, но три основные из них следующие:
Есть ли способ создать одного динамического противника, который автоматически меняется по мере тренировки нашего агента?
Да, есть! Почему бы не тренировать агента против самого себя?
Self-play - это именно то, что следует из названия: тренировка агента против самого себя в RL. В self-play ваш агент дублируется, и оба агента тренируются друг против друга. В каждой симуляции агенты обновляются поочередно.
Таким образом, ваш агент сопоставляется с динамичным противником, стратегия которого меняется и который находится примерно на уровне навыков агента. Со временем ваш агент может даже открыть новые, возможно, "сверхчеловеческие" стратегии!
<aside> ⬅️ Previous
</aside>
<aside> ➡️ Next
</aside>