Wat is de link tussen AI en poker? Dries Verbeeck vertelde ons alles over dit onderwerp, tijdens onze maandelijkse Moonshot talk. Deze keer vond de presentatie plaats in ons kantoor te Hasselt, Corda Campus.
Hoe heeft AI leren bluffen?
1. Hoe speel je poker?
Dries begon zijn Moonshot presentatie met de spelregels, goed om weten vooraleer je het spel begint te spelen.
Wanneer men het over poker heeft, praten ze meestal over ‘No Limit Texas Hold’em’. Hier zitten 3 tot 9 spelers aan één tafel. Elke speler krijgt twee kaarten die persoonlijk voor hen zijn. De andere spelers kennen deze kaarten niet. Daarnaast liggen er nog 5 gemeenschappelijke kaarten op het bord. Met deze 7 kaarten zouden de spelers een zo goed mogelijke combinatie moeten maken. Elk bedrag kan worden ingezet, er zijn geen limieten.
De tweede variant genaamd ‘Heads Up No Limit Texas Hold’em' is vergelijkbaar met ‘No Limit Texas Hold’em' maar dan met twee spelers in plaats van 9. Dit maakt het voor AI een stuk makkelijker omdat er minder beslissingen zijn die genomen kunnen worden.
De laatste variant heet ‘Pot Limit Texas Hold’em', dit is dan weer vergelijkbaar met ‘Heads Up No Limit Texas Hold’em', het enige verschil is dat de inzet (€) gelimiteerd is, wat maakt dat de aantal beslissingen die hier genomen kunnen worden, drastisch verminderen.

Menselijke tactieken, een gegeven die we in ons achterhoofd moeten houden, want ook dit is belangrijk om te weten. Afhankelijk van welke spelers je voor je hebt, kunnen de strategieën veranderen.
Enkele voorbeelden:
NIT : Een passieve speler, iemand die al zijn kaarten zal ‘folden' tot hij goede kaarten in handen heeft.
Tight and Aggressive : De speler gaat het spel verhogen (raisen) waardoor hij meer durft te bluffen dan een NIT-speler.
Loose and Aggressive : Deze speler durft nog meer te bluffen en gaat net dat tikkeltje verder dan de Tight and Aggressive.
Fish : Hier vallen alle recreatieve spelers onder die de regels van het spel wel kennen, maar geen strategie volgen.
Maniac : Spelers die veel geld in zetten en die er niets om geven.
2. Waarom is poker zo moeilijk om te leren voor AI?
Geluk: als er een all-in gebeurd, kan het zijn dat de ene speler voor komt te staan op de andere speler. In poker kan heel het spel nog veranderen met een allerlaatste kaart.
Onzekerheid: Als onze kaarten zeer goed zijn voor de ‘flop’ (Wat is een flop? Bij poker verwijst de flop naar het omdraaien van de eerste drie speelkaarten) ga je sterk kunnen ‘raisen’. Wat maakt dat na de flop de situatie helemaal anders kan zijn en kunnen de kaarten in je hand geen waarde meer hebben.
Incomplete informatie: Dit is de belangrijkste reden. Binnen het schaken of het dammen, is alle informatie gekend. Je weet perfect op voorhand hoe de opstelling van het bord er zal uit zien, welke acties je zelf en tegenstander kan nemen. Met poker weet je dit niet, dat maakt het moeilijker.
Meerdere spelers: Het is statistisch gezien moeilijker om te winnen en er gaan meerdere beslissingen genomen moeten worden.

3. Wat zijn de verschillende poker-AI varianten?
- Hand-gebaseerde systemen: Deze systemen gaan simplistisch kijken naar welke kaarten we in ons hand hebben. Hebben we azen of koningen? Dan kunnen we het spel net iets agressiever gaan spelen.
Regel-gebaseerde systemen: Als de tegenstander x zou doen, gaat de andere speler y voorleggen, ongeacht welke kaarten hij in zijn hand heeft.
Machinale systemen: Deze maken gebruik van CFR (Counter factual regret minimization).
Poker is een spel, gebaseerd op incomplete informatie. Op een bepaald moment gaan de spelers een actie moeten kiezen. Ze weten op voorhand niet of de actie die ze genomen hebben positief zal uitdraaien. Met CFR kunnen we de AI-agent trainen op de data die hij in het verleden al heeft opgeslagen (door gespeeld te hebben). Zo kunnen we de regrets (actiestappen die we eigenlijk niet willen nemen) minimaliseren.
4. De geschiedenis van poker-AI
Het eerste computerprogramma die in staat was om poker te kunnen spelen, werd ontworpen door Michael Bowling in 1984. Het was een zeer simplistische versie van het pokerspel.
De vernieuwde versie werd gemaakt in 1997, door Tuomas Sandholm. Deze versie kon ‘Heads Up limit hold 'em’ spelen. Op het internet kan je maar weinig informatie terugvinden over deze gebeurtenissen. Of het effectief de aller-eerste was, is moeilijk te zeggen. We mogen er wel steevast vanuit gaan dat deze versies een strategie hadden met een gerichte visie en niet zomaar uit de mouw geschud werden.
Vanaf 2006 werden de versies interessanter. Polaris (poker bot) ontwikkeld het eerste échte artificiële intelligentie spel. Ze hebben het programma getest door 4 dezelfde matches te spelen tegen menselijke spelers. Het spel bestond uit 500 handen en beide spelers kregen dezelfde kaarten. Op deze manier zou het geluk in het spel, geminimaliseerd worden. Tijdens deze 4 matches waren er: 1 win, 1 draw en 2 losses.
In 2015 kwam Libratus (poker bot) op de markt. Deze poker bot werd ook ontworpen door Tuomas Sandholm. De eerste versie die ‘Heads up no limit Texas hold’em’ kon spelen. Het spel werd voornamelijk gebaseerd op CFR (machinaal). Ze hebben het programma getest doormiddel van een 20-daags tornooi te organiseren met 4 menselijke spelers. Elke avond werd het programma geüpdatet met de kennis die de menselijke spelers aan de computer gaven. Zo werd het programma telkens slimmer.
DeepStack kwam in 2017 uit. Tot op de dag van vandaag is DeepStack het beste programma voor Heads-up No-limit. Dit spel gebruikt drie tactieken: deep learning (van handen), heuristic search en look ahead tree. (Link naar YouTube kanaal)
Laatste programma die we in deze blog gaan beschrijven heet Pluribus, ontworpen in 2019 door Facebook AI Lab. Ze slaagden er in om in No Limit Texas Hold’em te winnen tegen meerdere spelers.
Het spel werd in het totaal met 1000 handen gespeeld, elke ronde duurde ongeveer 30 seconden.
(Groene lijn = aantal chips die gewonnen werd door Pluribus)

5. Kan AI gebruikt worden om poker te leren?
Solver is een programma, uitgevonden om AI te gebruiken bij poker.(Solvers is een verzamelnaam voor alle programma’s die advies kunnen geven over het spelen van poker op basis van ingegeven informatie) Het programma berekent grafieken op basis van stackgrootte en stackpositie. Ze omvatten niet de volledige context. Met solvers kan je wel te weten komen wie welke handen gespeeld heeft en welke speler er geraised heeft. Deze wiskundige informatie is beschikbaar, maar moeilijk toe te passen in een écht menselijk spel.
Om te testen dat AI zou kunnen helpen om poker beter uit te leggen en te begrijpen, hebben we twee scenario’s voorgelegd aan ChatGPT en Piosolver.
Voorbeeld 1: Twee koningen
De speler in kwestie heeft twee koningen in zijn hand. In poker is dit de tweede beste starthand, zo’n kaarten krijg je niet vaak, daarom wilt hij hier het maximale uit halen. Zoals je kan zien (screenshot), ligt er een aas op de flop. Een groot probleem voor de speler, alle slechtere handen ‘aas 2’, ‘aas 3’, ‘aas 4’ die liggen op dit moment voor op ons. Er moet een keuze gemaakt worden: gaat de speler verder spelen met zijn hand (2 koningen), gaat hij het voorzichtig aan pakken of gaat hij bluffen?
Dit scenario werd aan ChatGPT en PioSolver voorgesteld:
Het probleem:
De speler heeft de 2e beste hand in poker
Veel handen kunnen de speler verslaan op deze flop
De losse en agressieve tegenstander gaat all in
Wat is de beste aanpak?
ChatGPT:
Overweeg deze 3 factoren:
- Wat is de kans dat je tegenstander een goede hand heeft?
- Hoeveel chips zitten er in de pot?
- Denk aan je eigen stack
Piosolver:
- Afhankelijk van vorige acties van de tegenstander
- Afhankelijk van het aantal resterende chips


Voorbeeld 2: Twee koningen
De speler in kwestie heeft twee azen gekregen. De flop heeft drie ruiten. Vijf ruiten in het spel zou een flush kunnen geven. Als de speler zou callen en winnen, gaat dit hem veel geld op leveren, maar zou je dat risico nemen? Folden zou ook kunnen aangezien de tegenstander ‘alles’ in zijn hand zou kunnen hebben of helemaal niets.
Het probleem:
We hebben de beste pokerhand
We zijn bijna in de laatste fase van een toernooi
Een speler die de laatste paar handen als een gek speelde, gaat all-in
Als we folden, kunnen we een kleine winst maken
Als we callen en winnen, kunnen we veel geld verdienen
Als we callen en verliezen, verliezen we geld
ChatGPT:
Overweeg deze 3 factoren:
- Wat is de kans dat je tegenstander een goede hand heeft?
- Hoeveel chips zitten er in de pot?
- Denk aan je eigen stack
Piosolver:
- Afhankelijk van vorige acties van de tegenstander
- Afhankelijk van het aantal resterende chips


6. Wat zijn de risico’s van poker AI?
Online is er niet veel te vinden over de verschillende risico’s.
Weinig bekende informatie over AI/botdetectie op de populairste website
De meeste bots spelen GTO. Zeker geen slechte strategie, maar ook niet onfeilbaar.
(Wat is GTO? GTO staat voor Game Theory Optimal. De wiskundig “optimale” strategie. (Sterke handen raisen, zwakke handen folden.)Deepstack is alleen heads up
Pluribius is niet open source
Ben je net zo geïnteresseerd in AI-bots als Dries? Wil je jezelf hier verder in verdiepen?
September is het ideale moment om nieuwe, frisse talenten aan te trekken. IDA is actief op zoek naar enthousiaste stagiaires die vastberaden zijn om hun kennis naar een hoger niveau te tillen.
Are you the one? Ben jij op zoek naar een leuke stage plaats met top-collega's? Dan ben je bij IDA aan het juiste adres. Aarzel niet om meer informatie te vragen!