Как искусственный интеллект победил человечество в покер
ИИ победил человека практически во всех играх, но теперь посягнул на святое – стал отбирать у человека деньги. Речь идет о коммерческом покере, в котором игроки силой своего ума и знанием математики зарабатывали хорошие суммы. Кажется, мы вступили в эру, когда нейросети сделают с покером то, что компьютеры сделали с шахматами. Вот только на шахматах никто так массово не зарабатывал.
Новости про ИИ часто воспринимают в отрыве от реальности. Вот где-то нейросеть чему-то научилась, вот смешные фотографии котиков собрала машина из миллиона других изображений, вот ученые заявили об очередном прорыве в деле распознавания образов… Редко когда кто-то думает, что действия ИИ затронут его лично. Но в покер играют многие, и для них эта статья может оказаться весьма мрачным предзнаменованием.
Чем интересен именно покер? Покер — это карточная игра с неполной информацией, в отличие от шахмат, шашек, нард, где оба игрока видят положение всех фигур на доске. В покере мы не знаем, какими фигурами (картами) обладает соперник. Всегда присутствует элемент неожиданности. Таким образом, покер является эталоном для исследований в области искусственного интеллекта. Это игра особой сложности, которая требует, чтобы машина принимала решения на основе неполной и часто вводящей в заблуждение информации.
Игра для человека, а не машин
Источник изображения
Итак, ИИ научился обыгрывать человека в шахматы, английские шашки, Го и еще в нескольких десятках игр, многие из которых дошли до наших дней из глубокой древности. Некоторые игры были решены полностью – т.е. компьютер нашел оптимальные ходы (ведущих к выигрышу либо для сохранения нейтрального положения) для всех положений на доске. Ответ машины искали долго – почти 20 лет компьютерная сеть, в которую в разные годы входило от 50 до 200 машин, произвела 10^14 вычислений.
Английские шашки – игра очень простая. В начальной позиции у каждого игрока по 12 шашек, расположенных в первых трёх рядах на чёрных клетках. «Простые» шашки могут ходить по диагонали на одно поле вперёд и бить только вперёд. Дамка может ходить на одно поле по диагонали вперёд или назад, при взятии ходит только через одно поле в любую сторону, а не на любое поле диагонали, как в русских или международных шашках. Взятие шашки соперника является обязательным.
Вы можете подумать, что машина побеждает методом простого перебора – то есть считает ВСЕ варианты каждого хода. На самом деле это не так. Оценочное минимальное количество неповторяющихся шахматных партий, вычисленное в 1950 году математиком Клодом Шенноном, составляет приблизительно 10^118. Количество атомов во вселенной в 10^40 раз меньше числа Шеннона. В таком пространстве возможностей ни один существующий компьютер не может видеть на все ходы вперед. Более того – метод перебора больше свойственен людям.
Вы удивитесь, но если сравнить «вычислительные возможности» компьютера и человеческого мозга, то окажется, что мозг является более совершенным компьютером, способным решать перебором глубже и дальше, чем машина! Как же тогда получается, что «железяка» побеждает? Все дело в подборе правильных алгоритмов и развитии сверточных нейронных сетей.
Техасский холдем — самая популярная на сегодня разновидность покера, игра с двумя карманными и пятью общими картами, используемыми всеми игроками при составлении комбинаций. В этой игре можно состязаться как ограничивая себя в ставках, так и без лимита (то есть играть на все деньги, что есть у игрока). Безлимитный холдем весьма сложен для компьютеров – трудно спрогнозировать действия игрока, который снова и снова поднимает ставку.
Если игроков всего двое, то на столе будет около 10^18 игровых ситуаций. Некоторые карточные комбинации эквивалентны между собой, что позволяет один и тот же алгоритм использовать снова и снова для подходящих ситуаций. Таким образом можно сократить окно возможностей до цифры 10^14 ситуаций.
Сколько же комбинаций в холдеме, где ставки не ограничены? Их там 10^160. Даже самый опасный вид холдема на первый взгляд проигрывает игре Го, в которой аж 10^170 комбинаций. Но тут стоит вспомнить, что в Го машина видит все ваши игровые фишки, а в покере – нет. Они для нее будут сюрпризом. Таким образом, учитывая «туман войны», скрывающий карты от глаз противника, даже 10^14 становятся для машины камнем преткновения. И это при игре один на один! А что будет, если добавить других игроков? Если добавить других игроков, виски и сигар получится прекрасный вечер джентльменов, в котором компьютер сгорит от напряжения.
Как боты учились побеждать
Источник изображения
Как вы понимаете, никто не горел желанием создавать бота, который стал бы проигрывать и проигрывать… это в нормальных условиях. Тогда, а это было в начале восьмидесятых годов прошлого века, создать компьютерную программу, которая работала бы в идеальных условиях. Так появился софт Orac, обладавший некоторыми интересными особенностями. Бот мог предсказывать поведение человека анализируя, сколько тому потребовалось времени на следующий ход. Если противник не задумываясь совершил определенный действия, бот по умолчанию считал, что речь идет о блефе.
Два десятилетия машины ничего не могли противопоставить человечеству, пока в 2007 не появился бот Polaris. Новый игрок в покер не возник на пустом месте – потребовалось 16 лет разработок исследовательской группой по компьютерному покеру в Университете Альберты. Polaris представляет собой сложную программу, состоящую из нескольких ботов. Polaris требует небольшой вычислительной мощности во время матча, поэтому он запускается на ноутбуке во время соревнований. Бот играет только один на один (то есть там, где минимально вмешательство удачи) и только в лимитированный холдем.
23-24 июля 2007 года Polaris сыграл против профессионалов по покеру. Polaris провел в ничью первый раунд, выиграл второй и проиграл последние два. 3-6 июля 2008 года Polaris участвовал в соревнованиях против шести профессиональных игроков в покер. Polaris одержал три победы. Версия Polaris, используемая в матче 2008 года, была намного сильнее версии 2007 года как по качеству игры, так и по способности изучать, какой стратегии придерживается противник. Тем не менее, эти победы ровным счетом ни на что не влияли – они проводились в идеальных условиях и в некоторых партиях человеку и машине раздавали одни и те же карты, чтобы нивелировать случайности.
Первым серьезным испытанием для людей стал турнир 2015-го года, в котором четверым лучшим игроком в покер противостояла программа Claudico. Вместо того, чтобы профессиональная команда покера создала стратегию, которую команда разработчиков вложила бы в бота, ученые постарались самостоятельно прописать алгоритмы игры. Задача оказалась настолько сложной, что для ее завершения потребовался суперкомпьютер с 16 терабайтами оперативной памяти.
Знаете, что случилось с Claudico? Бот проиграл. Да, человек снова доказал превосходства природы от бездушной машиной. Компьютер проиграл этот бой… но не войну.
Судный день для покера
Источник изображения
В 2017 году исследователи из университета Карнеги-Меллона представили нового бота. Libratus – компьютерная программа искусственного интеллекта, предназначенная для игры для игры в безлимитный техасский холдем. Да, речь зашла о том, чтобы выйти за ограничения идеального игрового мира, ведь создатели Libratus предполагают, что бот будет использоваться и для других целей, отличных от покера. Единственное ограничение, которое к нему применили – игра против одного человека.
Для создания Libratus потребовалось более чем 15 миллионов часов вычислений. Для сравнения – 2-3 миллиона отводили на Claudico. Вычисления проводились на новом суперкомпьютере в исследовательском центре Питтсбурга. Libratus не имеет фиксированной встроенной стратегии, а лишь обладает алгоритмом, который вычисляет стратегию непосредственно в ходе игры.
С 11 по 31 января 2017 года Libratus участвовал в турнире против четырех первоклассных игроков. Во время игры машина совершенствовала свою стратегию самостоятельно, анализируя весь предыдущий игровой процесс и результаты прошедшего дня, особенно учитывая неудачи. Поэтому компьютер смог постоянно устранять недостатки, выявленные у команды людей.
На 16-й день соревнований Libratus впервые преодолел барьер в 1 000 000 долларов и обошел по суммарному выигрышу команду людей. В конце турнира Libratus вышел победителем с существенным отрывом от преследователей. После нескольких триллионов раздач компьютер научился понимать, какие действия ведут к выигрышу, а какие к проигрышу — и действовал так, чтобы получить наибольшую прибыль.
Libratus играет тем лучше, чем лучше играет человек. Он учится на своих ошибках снова и снова. И даже умеет блефовать – позже люди по логам увидели, что бот сделал крупную ставку лишь бы сорвать маленький банк. Такое поведение не характерно для человека. Компьютер также научился считывать блеф человека.
Конец всех игр
Боты – большая проблема всех онлайн-казино. Не удивительно, что рядовые игроки, предпочитающий турниры в интернете, должны будут проходить сложную систему верификации, включая живую онлайн трансляцию. Всё, чтобы доказать – по ту сторону игрового стола действительно находится человек. Но является ли это гарантией, что нельзя будет каким-то образом запустить алгоритмы и притворяясь профессиональным игроком опустошать казино всего лишь силой одной программы?
Если вы не игрок, для вас есть и хорошая новость. Создатели Libratus считают, что его миссия гораздо более шире. Исследователи разработали ИИ для изучения любой игры или ситуации, в которой имеется неполная информация, а «противники» могут скрывать информацию или даже заниматься обманом. Из-за этого ИИ можно применить к другим, реальным проблемам, в том числе к кибербезопасности, деловым переговорам или медицинской диагностики.