Перейти к материалам
истории

Люди проиграли компьютеру в покер Программа Libratus выиграла у профессионалов два миллиона долларов

Источник: Meduza
Фото: Carnegie Mellon University

Люди проиграли компьютеру в очередную игру. Лучшие игроки в покер один на один оказались слабее программы Libratus. После 20-дневного матча люди проиграли компьютеру два миллиона долларов. «Медуза» рассказывает, как играла созданная двумя учеными программа и что чувствовали профессиональные игроки в покер, когда проигрывали машине.

Компьютер победил людей в шашки, шахматы и даже го — древнейшую игру, где важна интуиция. Гроссмейстеры го сдались последними: в 2016 году программа Alpha Go, созданная в Google DeepMind, победила Ли Седоля — одного из сильнейших игроков.

Шашки, шахматы и го — игры с полной информацией. Оба игрока видят, что происходит на доске и просчитывают свои ходы в зависимости от предполагаемых ходов противника. В покере по-другому: соперники не знают карт друг друга. Это делает задачу для компьютера сложнее — он не может просчитать все.

Существует несколько видов покера. Самый популярный — Техасский холдем. В него можно играть по-разному: за столом может быть разное число людей, может быть ограничение по ставкам. Самый распространенный вариант — безлимитный, когда ставка ограничена только количеством денег, которые есть у игрока.

Правила безлимитного Техасского холдема следующие. Объясним на примере варианта с двумя игроками, поскольку с компьютером играли именно так. Если вы умеете играть в покер, можете пропустить следующие два абзаца.

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

Когда на столе оказываются три карты, первый игрок может сделать ставку или передать ход сопернику — тот должен опять выбрать между ставкой или передачей ход. Такой круг торговли происходит всякий раз, пока на столе не появится пять карт — и потом еще раз, последний. Если кто-то сделал ставку, а другой не ответил — эту раздачу выигрывает тот игрок, кому не ответили. Если торговля доходит до конца, выигрывает тот, у кого сильнее комбинация.

Что такое Libratus

Программу Libratus («баланс» на латинском) создали ученые из Университета Карнеги Меллон — профессор Тумас Сандхольм и его студент Ноам Браун. Это условный наследник программы Claudico, которая в 2015 году проиграла профессиональным игрокам в покер.

Тумас Сандхольм и суперкомпьютер, который победил людей
Фото: Carnegie Mellon University

Сначала Libratus знала только правила покера — какие карты есть, какие комбинации сильнее, в какой последовательности ходят игроки. Создатели программы сказали ей играть самой с собой в покер, и она училась на своих ошибках. После нескольких триллионов раздач компьютер научился понимать, какие действия ведут к выигрышу, а какие к проигрышу — и действовал так, чтобы получить наибольшую прибыль.

Как уверяет Тумас Сандхольм, программе никогда не показывали историю раздач, сыгранных людьми. Подробнее про то, как работает алгоритм, — в научной публикации Сандхольма и Ноама Брауна.

«Да что ж это за хрень!»

Против Libratus играли четверо профессионалов, заработавших на покере миллионы долларов. Донг Ким, Джейсон Леc, Джимми Чу и Дэниэл МакАлэй — специалисты по игре в покер один на один. Лес и Ким в 2015 году играли против Claudico. Ким тогда выиграл, Лес — проиграл.

Матч проходил в течение 20 дней. Каждый день каждый из четырех игроков проводил за компьютером по 12 и больше часов. Они должны были сыграть 120 тысяч раздач. При каждой раздаче противникам давалось по 20 тысяч фишек.

Интерфейс программы, в которой играли люди с компьютером

В первые дни игроки думали, что им легко удастся найти изъян в программе. Со временем они убедились — это невозможно или как минимум непросто. Libratus начала выигрывать с первого же дня. Только на шестой день людям удалось сократить преимущество, но днем позже оказалось, что компьютер стал играть еще лучше. И так происходило раз за разом.

По словам Джейсона Леса, у него всегда было ощущение, что он играет против очень сильного человека, но компьютер атаковал гораздо агрессивнее. Как рассказывает Лес, однажды у него было на руках два валета. Это достаточно сильная карта, особенно при игре один на один. Лес сделал первую ставку, компьютер ответил. На столе появились три карты — восемь, семь, два, причем разных мастей (это означает, что нельзя собрать сильную комбинацию флаш). Соответственно, Лес был уверен, что сейчас он почти наверняка побеждает и сделал следующую ставку. В ответ компьютер поднял ставку в десятки раз.

«Я бы не сказал, что это было неправильно, но это выглядело как „Да что ж это за хрень“», — вспоминал потом Лес. Каждый вечер после игры люди получали логи программы — выяснилось, что у компьютера тогда был король-десять, то есть это был блеф. Человек никогда бы не сделал такую большую ставку с целью выиграть сравнительно маленький банк — на тот момент в банке было примерно шесть минимальных ставок.

Рядовые игроки в покер не умеют скрывать своих карт — обычно при хороших картах они ставят много, при плохих сбрасывают или ставят мало. Профессионалы играют более гибко — они варьируют ставки так, чтобы их противник по размеру ставок не мог определить, какие примерно у него карты. Компьютер справился с этой задачей блестяще: он разбивал свои ставки не на два-три-четыре размера, как делают профессионалы, а на 10 и больше. Людям было очень трудно понять, какие карты сейчас у их соперника. Компьютер научился и блефовать, и считывать блефы — то есть у него появились навыки, без которых невозможно выиграть в покер.

«Поначалу мы играли с ним, как с Claudico, и это было большая ошибка. Мы попробовали несколько стратегий, но они не работали. Мы попробовали играть с ним, как с человеком — но и это не работало, хотя все шло не так уж плохо. Мы меняли стратегии, чтобы найти уязвимости, но не преуспели в этом», — рассказал Донг Ким. В один из дней игроки от отчаяния стали поднимать ставки компьютера в 80 процентах случаев. И это не сработало.

В итоге на всех люди проиграли 1,8 миллиона долларов. Игра шла не на настоящие деньги, хотя и проходила в казино. Игроки поделят между собой 200 тысяч долларов, предоставленные спонсорами.

Что дальше

Libratus работал на суперкомпьютере с десятками процессоров, но Сандхольм уверен, что 99% игроков Libratus обыграет даже если ее запустить на обычном компьютере. Как подчеркивают создатели программы, их алгоритм не заточен под покер: технологию можно применять для любых игр с неполной информацией — для оценки рисков на бирже, при переговорах и в других областях.

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

Владимир Цыбульский