DeepStack: Umelá inteligencia, ktorá sa naučila bluffovať a porazila pokrových profesionálov

Article cover

V šachu vidia obaja hráči všetky figúrky a v hre Go poznajú presnú polohu každého kameňa. Poker je však iný. Hráč nevidí súperove karty a nikdy presne nevie, či jeho stávka predstavuje silnú kombináciu, alebo iba dobre načasovaný bluff. Navyše ani výsledok rozdania nemusí ukázať, kto sa rozhodol správne. Hráč môže zahrať perfektne a prehrať, prípadne urobiť veľkú chybu a napriek tomu získať celý pot.

Práve preto bol poker dlhé roky považovaný za jednu z najťažších skúšok umelej inteligencie. Počítaču nestačí iba počítať pravdepodobnosti. Musí pracovať s neúplnými informáciami, odhadovať súperovu stratégiu a zároveň zostať nepredvídateľný. V roku 2017 vedci predstavili systém, ktorý ukázal, že umelá inteligencia dokáže zvládnuť aj túto výzvu. Volal sa DeepStack a ako prvý program preukázateľne porazil profesionálnych hráčov v heads-up no-limit Texas hold’eme.

DeepStack bol výskumný systém umelej inteligencie vytvorený pre heads-up no-limit Texas hold’em, teda hru medzi dvoma hráčmi bez pevne stanovenej maximálnej výšky stávky. Na jeho vývoji spolupracovali výskumníci z University of Alberta, Karlovej univerzity v Prahe a Českého vysokého učenia technického. Ich cieľom bolo vytvoriť stratégiu pre hru, v ktorej hráč nepozná všetky informácie, súper sa ho aktívne snaží oklamať a každá stávka môže mať množstvo rôznych významov. DeepStack nebol univerzálnou umelou inteligenciou. Nevedel viesť rozhovory ani hrať ľubovoľnú kartovú hru. Bol úzko špecializovaným systémom, no v úlohe, pre ktorú vznikol, dokázal prekonať profesionálnych hráčov.

Prečo je poker pre počítače taký náročný?

Na prvý pohľad môže Texas hold’em pôsobiť jednoduchšie než šach. Hrá sa iba s 52 kartami a hráč má v každom rozhodnutí niekoľko základných možností: check, bet, call, raise alebo fold. Skutočná komplikovanosť však nevychádza z pravidiel, ale z neistoty. Hráč nepozná súperove karty, a preto nemôže premýšľať iba o jednej konkrétnej kombinácii. Musí pracovať s celou skupinou možných hand, ktorú pokeroví hráči označujú ako range.

Ak súper pred flopom navýši, môže mať vysoký pár, silné eso, suited connectory, ale aj slabšiu kombináciu. Jeho ďalšie rozhodnutia robia niektoré handy pravdepodobnejšími a iné z jeho range postupne vylučujú. Otázka preto neznie iba: „Čo má súper?“ Hráč musí uvažovať nad tým, aké karty môže držať, ako často ich môže mať a čo jeho predchádzajúce akcie prezrádzajú o celej range. Rovnaký proces navyše prebieha aj opačným smerom. Každá stávka odovzdáva určitú informáciu, no zároveň môže byť pokusom o zavádzanie.

Ako sa DeepStack naučil bluffovať

Hráča, ktorý staví iba s veľmi silnými kombináciami, možno ľahko poraziť. Keď vloží peniaze do potu, súper môže bez väčších obáv zahodiť slabšie karty. Rovnako zraniteľný je hráč, ktorý bluffuje príliš často. Súper začne jeho stávky jednoducho častejšie dorovnávať. Silná pokerová stratégia preto potrebuje rovnováhu. Rovnakú akciu musí hráč používať so silnými handami, stredne silnými kombináciami aj bluffmi.

DeepStack preto nehľadal jednoduché odpovede typu „v tejto situácii vždy stav“. Vytváral pravdepodobnostné stratégie. V rovnakej situácii mohol časť času checknúť, inokedy použiť malú stávku a v určitom percente prípadov zvoliť veľký sizing. Jednotlivé akcie miešal tak, aby súper nedokázal jeho stratégiu jednoducho prečítať a zneužiť. Takýmto spôsobom vznikali aj jeho bluffy. DeepStack nebluffoval preto, že by cítil odvahu, strach alebo túžbu psychologicky zastrašiť protivníka. Bluff bol pre neho matematickou súčasťou správne vyváženej stratégie.

Heads-up no-limit hold’em obsahuje približne 10¹⁶⁰ rozhodovacích bodov. Každý hráč môže držať rôzne karty, na stole sa môžu objaviť tisíce kombinácií boardov a rozdielne veľkosti stávok vytvárajú ďalšie možné pokračovania. Takýto herný strom nemožno kompletne spracovať ani s mimoriadne výkonnou technikou.

Staršie pokerové programy preto používali rozsiahle zjednodušenia. Podobné situácie spájali do skupín a namiesto všetkých možných sizingov povoľovali iba niekoľko vopred vybraných veľkostí stávok. Ak však človek zvolil inú stávku, než systém očakával, program ju musel priradiť k najbližšej známej možnosti. Pri tomto zjednodušení mohli v stratégii vznikať slabiny. DeepStack zvolil odlišný prístup. Nesnažil sa vopred pripraviť odpoveď na každú možnú situáciu. Stratégiu prepočítaval priebežne počas hry.

Neurónová sieť ako pokrová intuícia

Základ systému tvoril princíp označovaný ako continual re-solving, teda priebežné opätovné riešenie aktuálnej situácie. Jeho fungovanie možno prirovnať k navigácii v automobile. Tá nemusí mať pripravený osobitný plán pre každú možnú zápchu, uzávierku či nesprávne odbočenie. Pozná aktuálnu polohu, cieľ a najbližšie okolie. Na základe týchto informácií vypočíta ďalšiu časť trasy a po zmene situácie výpočet zopakuje.

DeepStack pracoval podobne. Pri každom rozhodnutí vyhodnotil veľkosť potu, spoločné karty a možné range oboch hráčov. Následne vyriešil najbližšiu relevantnú časť hry. Po súperovej akcii celý proces zopakoval. Ani tento lokálny výpočet však nebolo možné vždy dokončiť až do konca rozdania. Keď sa DeepStack dostal do bodu, v ktorom by bolo ďalšie prehľadávanie príliš náročné, použil neurónovú sieť.

Tá na základe veľkosti potu, boardu a rangí oboch hráčov odhadla hodnotu vzniknutej situácie. DeepStack tak nemusel vypočítať všetky možné pokračovania až po river. Vzdialenejšiu budúcnosť nahradil dostatočne presným odhadom. Išlo teda o spojenie viacerých prístupov. Teória hier pomáhala vytvárať vyváženú stratégiu, prehľadávanie analyzovalo najbližšie rozhodnutia a neurónová sieť odhadovala situácie, ktoré už nebolo praktické dopočítať.

DeepStack nepotreboval analyzovať milióny rozdaní najlepších pokrových hráčov. Jeho cieľom nebolo napodobňovať ľudské rozhodnutia. Výskumníci namiesto toho generovali obrovské množstvo náhodných situácií s rozdielnymi boardmi, veľkosťami potu a rangami oboch hráčov. Tie následne riešili pomocou algoritmov teórie hier a výsledky použili ako tréningové dáta pre neurónovú sieť.

DeepStack sa teda neučil, ako by v danej situácii zahral úspešný profesionál. Učil sa, ako vyzerá strategicky výhodné riešenie. Príprava systému si vyžadovala rozsiahly výpočtový výkon. Počas samotnej hry však DeepStack dokázal fungovať na jednej grafickej karte NVIDIA GeForce GTX 1080 a jedno rozhodnutie mu v priemere trvalo približne tri sekundy.

Súboj proti profesionálnym hráčom

Skutočná skúška prišla na konci roka 2016. Proti systému nastúpilo 33 pokerových hráčov zo 17 krajín, ktorí spoločne odohrali 44.852 rúk. Každý účastník mal pôvodne odohrať 3.000 hier, pričom kompletnú vzorku napokon dokončilo 11 hráčov. DeepStack bol podľa upravených výsledkov v zisku proti všetkým jedenástim a proti desiatim z nich dosiahol individuálne štatisticky významné víťazstvo.

Aj proti najúspešnejšiemu účastníkovi bol systém v odhadovanom zisku. Výsledok tohto konkrétneho zápasu však nebol dostatočne výrazný na definitívny štatistický záver. Celkovo DeepStack prekonal celú skupinu o viac než štyri štandardné odchýlky od nuly, čo výskumníci označili za vysoko významný výsledok.

V pokri ale nestačí porovnať iba konečný počet získaných žetónov. Aj slabší hráč môže počas niekoľkých tisíc rozdaní dostávať lepšie karty, vyhrať viac all-inov a skončiť v zisku. Výskumníci preto použili metódu AIVAT, ktorá pomáhala znižovať vplyv náhody na výsledky. Využívala známe pravdepodobnosti a matematické hodnoty jednotlivých situácií, vďaka čomu dokázala presnejšie oddeliť kvalitu rozhodovania od krátkodobej variance. Použitie AIVAT znížilo štandardnú odchýlku výsledkov približne o 85 percent. Aj po tejto úprave zostalo víťazstvo DeepStacku presvedčivé.

Vyriešil DeepStack celý poker?

Víťazstvo nad profesionálmi napriek všetkému neznamenalo, že DeepStack matematicky vyriešil celý heads-up no-limit hold’em. Hra je príliš rozsiahla na to, aby bolo možné presne určiť, ako ďaleko bola jeho stratégia od dokonalej rovnováhy. Výskumníci sa síce snažili nájsť jej slabiny pomocou špeciálnych testov, no neobjavili jednoduchý spôsob, ktorým by bolo možné systém pravidelne porážať.

DeepStack navyše dokázal hrať iba heads-up no-limit hold’em. Nehral 6-max cash game, full-ring ani turnaje s meniacimi sa blindmi. Nepracoval s ICM, výplatnou štruktúrou alebo dynamikou viacerých hráčov a nevedel automaticky prejsť na Pot-Limit Omahu či mixed games. Zápasy prebiehali online, takže systém nevidel fyzické telly, mimiku ani nervozitu súperov. Jeho cieľom nebolo vytvoriť psychologický profil konkrétneho človeka, ale používať robustnú stratégiu, ktorú nemožno jednoducho zneužiť.

Napriek tomu sa ale postaral o začiatok novej éry. Rok 2017 bol pre pokrovú umelú inteligenciu prelomový. V rovnakom období sa objavil aj systém Libratus z Carnegie Mellon University, ktorý odohral 120.000 rozdaní proti štyrom elitným heads-up profesionálom a takisto dosiahol presvedčivé víťazstvo.

Ďalší významný krok prišiel v roku 2019, keď systém Pluribus porazil profesionálov aj v 6-max no-limit hold’eme. Vývoj bol mimoriadne rýchly. Kým v roku 2015 umelá inteligencia prakticky vyriešila heads-up limit hold’em, o dva roky neskôr porážala profesionálov v no-limit heads-upe a v roku 2019 už dokázala víťaziť aj pri stole s viacerými hráčmi.

Pred solverovou érou sa hráči učili najmä zo skúseností, diskusií, tréningových videí a analýz úspešných profesionálov. Vedeli, že potrebujú vyvážené range a dostatočné množstvo bluffov, no presné frekvencie často odhadovali intuitívne. Moderné solvery priniesli oveľa podrobnejší pohľad. Ukázali, prečo sa jedna kombinácia hodí na bluff a podobná nie, prečo má na určitom boarde zmysel malá stávka a na inom obrovský sizing alebo prečo sa konkrétna handa mieša medzi checkom a betom.

Temná stránka pokrovej umelej inteligencie

Vývoj silnej pokerovej AI priniesol aj nepríjemnú otázku: Čo sa stane, ak niekto podobnú technológiu použije počas online hry? Hráč nemusí odovzdať programu úplnú kontrolu nad účtom. Stačí, aby mu externý softvér v reálnom čase odporúčal najlepšie rozhodnutia. Takáto pomoc sa označuje ako real-time assistance, skrátene RTA. Používanie solverov po skončení hry patrí k bežnému štúdiu. Externá pomoc počas rozohraného rozdania je však na online pokrových platformách zakázaná.

Pokročilé systémy navyše nemusia pôsobiť mechanicky. Dokážu miešať stratégie, využívať náhodnosť a správať sa prirodzenejšie. Pokrové herne preto analyzujú časovanie rozhodnutí, správanie účtov, používané zariadenia, možné prepojenia medzi hráčmi a podobnosť ich stratégií. DeepStack bol akademický projekt, nie nástroj na podvádzanie. Napriek tomu ukázal, prečo musí byť ochrana online pokru technologicky rovnako pokročilá ako samotné strategické nástroje.

Najväčší význam DeepStacku nespočíval v tom, že dokázal rýchlejšie počítať pokerové kombinácie. To počítače zvládali už dávno. Jeho skutočným úspechom bola schopnosť rozhodovať sa bez úplných informácií. Nevidel súperove karty, nemohol prehľadať celý herný strom a nemal pripravenú odpoveď na každú možnú situáciu.

Namiesto toho priebežne analyzoval aktuálnu hru, pracoval s rangami, riešil najbližšie rozhodnutia a vzdialenejšiu budúcnosť odhadoval pomocou neurónovej siete. Dokázal bluffovať bez emócií a zostať nepredvídateľný bez ľudskej psychológie. Poker bol iba testovacím prostredím. Skutočná otázka znela, či dokáže umelá inteligencia robiť kvalitné rozhodnutia vo svete, v ktorom nepozná všetky fakty a druhá strana má vlastné skryté zámery. DeepStack ukázal, že odpoveď môže byť áno. A medzi prvými sa o tom presvedčili profesionálni pokeroví hráči na druhej strane virtuálneho stola.

 

Zdroje - YouTube, Wikipedia, Science.org, onlinegamblingwebsites