Узнай первым
о важных новостях

Мы будем присылать уведомления
о горячих новостях и статьях!

Так будут выглядеть оповещения, которые появятся на экране.

Хочу знать! Буду оставаться в неведении

Покерный AI с Эриком Джексоном. Часть I

Эрик Джексон – компьютерный ученый, который увлекается областью покерного AI I – здесь и далее обозначение искусственного интеллекта). Первая часть интервью с ним охватывает как теоретические, так и практические аспекты покерной игры ботов.

Расскажите о себе и своем прошлом за пределами покера.

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

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

Всегда ли Вас интересовал покер?

Эрик: В покер я начал играть примерно в 2003 году, когда работал в Google. Один раз в неделю после работы у нас проходил небольшой мультитейблинговый турнир, пока HR его не закрыли. Примерно в то же время я начал играть и онлайн, в основном в SnG на Party Poker. В какой-то момент PokerStars дали мне для игры $5, и я попытался пройти с этой суммой как можно дальше, играя в основном фулл-ринговые NL кеш игры. Насколько я помню, я выиграл более $2000, и играл некоторое время $1/$2, но потом проиграл немного и был вынужден после Черной Пятницы сделать кеш аут.

Что толкнуло Вас к решению начать работать в сфере покерного AI?

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

Вы говорите, что покинули Google в 2006 году, следовательно, в этой сфере вы около восьми лет? Сколько времени вы посвящаете этому делу?

Эрик: Скорее, лет шесть. После ухода из Google я пару лет практически не работал. Я бы сказал, что это было что-то вроде работы на полставки. Обычно, на написание кода уходит несколько месяцев. После этого я позволяю программе несколько месяцев работать самостоятельно, чтобы она «изучила» как нужно играть. В течение этого периода мне нужно было лишь периодически проверять программу и убеждаться, что все идет нормально. В конце остается около месяца для экспериментов, настроек и подготовки продукта к представлению на соревнование.

Я так понял, что до сих пор Вы работали исключительно в Hold’em`е. Это было только из-за его популярности или на Ваш выбор повлияли другие факторы?

Эрик: Я работал только в Hold’em`е, а если более конкретно, то только в лимитном и безлимитном хедс-апах. В Computer Poker Competition традиционно было три игры – две я только что упомянул, а также 3-мах лимит, это именно то, что привлекло мое внимание.

Есть ли у Вас отдельные боты для различных размеров столов, форматов и т.д.? Или Вы работаете в более общем Hold’em AI?

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

Почему соревнование не включает в себя другие игры вроде Омахи, Стада или дро? Разве не было бы интересно работать с любой из них?

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

Так что же делает игру «особо интересной»?

Эрик: Когда вы отклоняетесь от фиксированного размера ставки (например, limit holdem) к переменным размерам ставок (например, no-limit или pot-limit holdem), размер дерева игры (технически термин, означающий структуру игры, — прим. CGM) разрывается, потому что каждый размер бета является эффективным и уникальным. Мы по-прежнему применяем алгоритмы из того же семейства, но есть и отличия. Я бы назвал эти игры умеренно отличающимися. Просто они гораздо сложнее, поэтому наши решения намного дальше от идеальной неэксплуатируемой игры.

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

Вы сказали, что боты несколько месяцев обучаются игре, прежде чем выйдут на соревнование. Играют ли они сами против себя в течение этого времени? Обучаются ли они в ходе соревнований, или же их стратегия фиксируется в тот момент, когда вы их вводите?

Эрик: Мои боты не адаптируются в ходе игры. Прежде чем они сыграют первую руку в покер, проходит долгая фаза «обучения», о которой я говорил, где они пытаются найти стратегию, близкую равновесию Нэша. Но как только они начнут играть, они не смогут подстраиваться под оппонента или менять свою стратегию.

Что касается самого процесса обучения, да, он играет сам с собой. Я использую алгоритм, который называется гипотетической минимизация потерь (CFR), и который в последние годы был доминирующим подходом в сообществе. Мы начинаем с произвольных стратегий для двух позиций (баттон и большой блайнд) и затем играем каждую стратегию против другой. На каждой итерации мы вычисляем новую стратегию для каждой позиции. Окончательный вариант стратегии – это среднее из всех стратегий, изученных в каждой итерации.

Расскажите более подробно о CFR, или эту информацию можно изложить только на техническом языке?

Эрик: Да, довольно много технических аспектов, но ничего страшного. Подумайте о стратегии как о задании вероятностей каждому возможному действию во всех возможных вариантах игр. Если например для NLHE у вас есть полная стратегия, то одна запись в дереве стратегии скажет вам о том, что если у вас KSpadeKHeart на ривере, и до этого момента были 3х-колл-чек-чек-чек-чек, а борд ASpade-QHeart-7Diamond-JHeart-2Club, то вы должны чекать с некоторой вероятностью Р1, бетить полпота с вероятностью Р2, бетить пот с вероятностью Р3 и т.д. У вас также могли бы быть другие вероятности для других возможных размеров ставок. И тогда вам нужно разрабатывать эти вероятности для каждой возможной руки, для каждого возможного борда с каждой возможной комбинацией бетов до данного момента.

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

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

Продолжение следует…

ОБСУДИТЬ

Источник: http://www.pokeroff.ru

Комментарии

Комментариев пока нет.

или через свою социальную сеть.