Эрик Джексон - ученый и разработчик покерных ботов. И так как после создания непобедимого лимитного бота эта деятельность начала набирать популярность, в сегодняшнем интервью он расскажет нам о том, что привело его в эту область покера и о некоторых ньюансах ботоведения.


Расскажи нам о себе и о своем жизненном опыте, не связанным с покером?

Я учился в Стэнфорде, где получил степень доктора в области философии и символических систем. Получив степень, с 1995 по 2006 год я работал инженером-программистом в двух компаниях. Первой была Nuance (с 1995 по 2001) - производитель программного обеспечения для распознавания речи. Второй был Google (с 2001 по 2006).

Я всегда занимался деятельностью, связанной с разработкой искусственного интеллекта, будь то распознавание речи, понимание языка или другие проекты для Google. После ухода из Google я участвовал в различных конкурсах по обучению машин, среди которых были Netflix Prize и Computer Poker Competition. В последнем я принимаю участие уже несколько лет и в различных роялях, в том числе в качестве председателя конкурса и председателя учебного семинара, который проходит наряду с конкурсом.

Тебя всегда интересовал покер?

Я начал играть в покер где-то 2003 году, когда еще работал на Google. Мы устраивали небольшие турниры после работы раз в неделю. В то же время я начал играть онлайн, в основном одностоловые СнГ на Party Poker. В какой-то момент на PokerStars мне дали $5, и я решил попытаться раскрутиться с них, насколько это было возможно. В основном я играл NL Fullring столы. Насколько я помню, я раскрутился до $2000, и некоторое время играл NL200, но потом я сильно залился, и мне пришлось вывeсти дeньги после Черной пятницы.

Почему ты решил работать над созданием покерного искусственного интеллекта?

Я всегда считал эту область интересной, так как она сочетает как теоретические, так и практические задачи.

Ты ушел из Google в 2006 году, т.е. с этого момента прошло уже 8 лет. Сколько из них ты посвятил своей новой работе?

Где-то около шести лет. Это больше похоже на работу с неполным рабочим графиком. На написание кода обычно уходит несколько месяцев. После чего еще несколько месяцев программа самообучается, т.е. "учится" играть. В этот период мне нужно только следить, чтобы она работала корректно. В конце концов, перед самим конкурсом у нас остаётся где-то месяц, чтобы протестить её и привести в надлежащий вид.

Пока что ты работал только с Холдемом. Это исключительно из-за его популярности или были другие причины такого выбора?

Я работал только с Холдемом, а именно с лимитным и безлимитным хедз-апом. На Computer Poker Competition традиционно представлено только три игры – две, что я уже упомянул и лимитный Холдем для трех игроков. Это, в основном, и является причиной моего выбора.

Для разных столов и форматов ты разрабатываешь разных ботов? Или же твой бот более универсальный?

Для разных столов и форматов игры у меня разные боты, и, конечно, они разные для лимитного и безлимитного Холдема. Но основные алгоритмы этих ботов имеют много общего.

Почему не проводятся конкурсы по таким играм, как Омаха, Стад или Дро-покер? Было бы тебе интересно работать в этом направлении?

Не думаю, что такие игры как Омаха или семикарточный стад разительно отличаются от Холдема. Скорее всего, в них я бы применял те же алгоритмы. С Дро-покером, возможно, было бы сложнее, так как в нем есть дополнительные решения, но подход, в целом, отличался бы не особо.

В чем же заключаются эти разительные отличия?

Переходя от фиксированного размера ставок (как в лимитном Холдеме) на переменные (как в безлимитном или пот-лимит Холдеме) размеры дерева решений увеличиваются в разы, так как каждый возможный размер ставки это разный вариант розыгрыша. Мы все еще используем те же алгоритмы, но есть и отличия. Я бы назвал эти игры немного другими. Главным образом потому, что они намного сложнее, из-за чего наши решения будут намного сильнее отходить от идеальной неэксплуатируемой игры.

Переходя от хедз-апа к играм для трех и более игроков, все становится сложнее по многим причинам. Во-первых, дерево решений увеличивается до неописуемых размеров, ведь теперь у нас больше способов разыграть руку, учитывая дополнительных игроков. Во-вторых, как только вы выходите за пределы хедз-апа, используемые алгоритмы уже не могут соответствовать теории.

Ты сказал, что на обучение ботов требуется несколько месяцев. Все это время они играют против себя. Продолжает ли бот обучаться и дальше, или вы закрепляете его стратегию перед конкурсом?

Мои боты не аджастятся во время игры. Перед тем, как они сыграют свою первую руку, они проходят период "обучения", во время которого они пытаются максимально приблизиться к Равновесию Нэша в игре. Но как только они начинают играть с оппонентами, они не адаптируются к каким-либо изменениям в их стратегии.

Что касается процесса обучения бота, то его можно назвать игрой против самого себя. Я использую алгоритм, называемый контрфактуальной минимизацией сожаления, широко известный в последние годы. Мы начинаем с произвольных стратегий для двух позиций (баттон и большой блайнд), а затем позволяем каждой стратегии играть против друг друга. С каждым шагом мы вычисляем новую стратегию для каждой позиции. Финальная стратегия является средним значением всех изученных стратегий на каждой стадии (интерации).

Можешь рассказать нам подробнее про контрфактуальную минимизацию сожаления.

Это довольно техническая область, но, хорошо. Представьте, что стратегия это задача вероятностей всех возможных действий на всех возможных стадиях игры. В стратегии для безлимитного Холдема, например, одна ветка дерева говорит вам, что при игре 3х рейз-колл/чек-чек/чек-чек с KsKh на ривере As-Qh-Jh-7d-2c вы должны чекать с вероятностью P1, ставить половину банка с вероятностью P2, ставить банк с вероятностью Р3 и так далее. У вас могут быть другие вероятности для других возможных размеров ставок. В итоге у вас есть вероятности для всех возможных рук на всех возможных досках с каждой возможной комбинацией ставок до этого момента.

Применяя контрфактуальную минимизацию сожаления, мы многократно рассматриваем одну и ту же ситуацию и для каждой итерации вычисляем стратегию для каждого игрока. Мы работаем со значением, называемым "сожаление", для каждого действия в каждой стадии игры. Сожаление это то, насколько больше вы бы выиграли, разыграв руку определенным образом, отличающимся от предыдущих. Затем мы используем значение сожаления, чтобы настроить все вероятности.

Выполняя все больше и больше итераций, общее сожаление становится ниже, так как средняя стратегия, вычисляемая по всем предыдущим итерациям, становится все лучше и лучше. Это можно показать математически. Чем ниже становится сожаление, тем ближе мы приближаемся к равновесию Нэша, т.е. неэксплуатируемой игре.

Читайте продолжение: «Безлимитный Холдем всё ещё очень далек от решения!»