Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Kunstmatige intelligentie verslaat menselijke Texas Hold'em-pokerspelers

Door , 112 reacties, submitter: ATS

Een systeem dat kunstmatige-intelligentiesoftware draaide met de naam Libratus heeft vier professionele Texas Hold'em-pokerspelers verslagen bij een toernooi dat twintig dagen duurde. In 2015 wisten menselijke spelers een ai-systeem nog te verslaan.

De Brains Vs. Artificial Intelligence: Upping the Ante-competitie begon 11 januari in het Rivers Casino in Pittsburgh. Vier pokerspeler gingen daar de strijd aan met Libratus bij Heads-Up, No-Limit Texas Hold’em-poker. De vier waren gespecialiseerd in deze vorm van poker voor twee personen en werden beschouwd als 's werelds beste spelers.

Naarmate het toernooi vorderde bleek al dat Libratus het initiatief naar zich toe trok. Aanvankelijk onderschatten de spelers het programma naar eigen zeggen. "De bot wordt elke dag beter en beter", zei een van hen anderhalve week geleden. In de nacht van maandag op dinsdag bleken ze verslagen te zijn. Daarmee lopen de vier 200.000 dollar mis.

Libratus, Latijn voor 'evenwicht', is ontwikkeld door Tuomas Sandholm, professor computerwetenschappen bij de Carnegie Mellon University, en de student Noam Brown. Het lastige voor de gekozen vorm van poker voor de ai is dat bluf een belangrijke rol speelt, evenals het nemen van beslissingen op basis van ontbrekende of misleidende informatie. Naarmate het toernooi vorderde, konden de algoritmes van Libratus de strategie verbeteren.

De berekeningen om zich aan te passen aan de speelwijze van de menselijke tegenstanders gebeurden 's nachts, na afloop van de wedstrijden van de dag in het Pittsburgh Supercomputing Center. Libratus draait daar vanaf het Bridge-cluster, dat in samenwerking met Hewlett Packard Enterprise is gebouwd. Het bestaat uit 800 nodes en beslaat daarmee 22.400 cores. Het programma kon 600 van die nodes, met elk 128GB ram, aan het werk zetten.

Volgens de onderzoekers hebben ze met de overwinning de lat voor kunstmatige intelligentie weer een stuk hoger gelegd. Uiteindelijk kunnen programma's als Libratus ingezet worden voor onderhandelingen over zakelijke overeenkomsten en het maken van medische behandelingen, verwachten ze.

Het is de zoveelste keer dat een ai een mens in een spel verslaat. Prominente eerdere overwinningen waren die van IBM's Deep Blue tegen Kasparov bij schaken en Googles DeepMind AlphaGo tegen LeeSe-dol bij Go.

Reacties (112)

Wijzig sortering
Het spel werd met oa counterfactual regret minimization opgelost.
Eerst wordt er een tree gegenereerd waar elke action (eg check, bet 2x, bet 2.5x...) sequence in zit, en alle actions gebeuren voor elke hand met een gelijke probabiliteit.
Dan wordt de EV (expected value) voor elke mogelijke actie van beide spelers onderzocht door enkele keren verder in de tree te gaan en wordt de probabiliteit voor elke actie voor elke hand langzaam aangepast.
Zo convergeert de strategie voor beide spelers naar een nash-equilibrium, dwz naar een unexploitable strategie. (weliswaar naar een nash-equilibrium voor het spel waar enkel de in-tree betsizes gebruikt kunnen worden)
Balanced play blijkt steeds het beste te zijn, zo hoort bij elke value-bet een bluf (met een correcte verhouding) zodat je tegenstander niet zomaar kan folden of callen.

Preflop en flop strategie werd op deze manier vooraf berekend voor 200BB stacks. Toen bleek dat de small-blind preflop strategie nog niet genoeg geconvergeerd was (de pros vonden een manier om de preflop sb call te exploiten), hebben ze de bot enkel 2.5X laten openen.

Maar wat als mijn strategie nu geen gebruik maakt van de bet en raise sizing uit de tree?
De onderzoekers hebben een endgamesolver ontwikkeld die vanaf de turn bet-size-agnostisch is, voor elke betsize vind het algoritme een exact optimaal antwoord zonder de hele tree opnieuw te berekenen.

Moest je zelf eens willen experimenteren met solvers/game theory optimal play, kan je de gratis versie van Piosolver (lost het spel op vanaf de turn) downloaden .

Klein voorbeeldje (een toy game, geen realistisch scenario):
board: 2c2d2h3s4c
pot: 10
eff.stack sizes: 20
OOP range (out of position = first to act): AA,QQ, JJ
IP range (in positie): KK
OOP heeft value hands en bluffs
IP heeft enkel bluff catchers.
betsizings: 50%,100%,add allin, en bij OOP include OOP bet

De opgeloste strategie: enkel allins of checks. aangezien OOP genoeg kan bluffen, moet IP een zeker percentage gaan callen, aangezien OOP anders altijd kan bluffen.
Als OOP bluft, riskeert hij 20 chips om 10 te winnen. De bluff moet dus ťťn op drie keer werken.
OOP kan eender welk percentage bluffen als IP 1/3 van de keren callt, aangezien de opbrengst voor een OOP bluf gemiddeld 0 zal zijn.
Hoeveel moet OOP bluffen? als OOP nooit bluft dan kan IP altijd folden bij een allin van OOP, en mag gratis en voor niets de pot krijgen als OOP checkt.

Als IP een allin callt van OOP moet hij 20/(20+20+10)=40% winnen. Onafhankelijk van hoe vaak IP callt, hij heeft een EV van 0 als IP 40% bluffs heeft en 60% value. Voor elke 1 value hands 2/3 bluffs dus. Omdat OOP niet genoeg value heeft om te bluffen met zowel QQ als JJ, zal hij met QQ,JJ beide slechts 1/3 bluffen.

Dit is een voorbeeld van een zeer eenvoudig equilibrium. Maar wat als OOP ook K7suited als bluff heeft en ip ook QQ in zijn range heeft ? Dan wordt het meteen gecompliceerder.

Wanneer je poker speelt vraag je je steeds af welke "range" je tegenspeler heeft. Door steeds de juiste blufs te vinden en steeds gebalanceerd te spelen zorg je ervoor dat je tegenstander je moeilijk kan exploiten. In dit voorbeeld zal je zo vaak mogelijk met K7 willen bluffen.

[Reactie gewijzigd door Wdude124 op 31 januari 2017 21:23]

Om de strategieŽn te genereren waar hier over gesproken wordt, heeft Libratus dagenlang tegen zichzelf gespeeld op de het Bridge-cluster waar in dit bericht ook al over gesproken wordt. Op deze manier heeft Libratus miljarden handen gespeeld en hier allerlei verschillende strategieŽn uit gedestilleerd. Als een strategie werkte, wordt de likelihood van deze strategie verhoogd en anders verlaagd.

In deze reddit thread legt de onderzoeker en maker van Libratus het ťťn en ander uit. Wat hij er onder andere in vertelt is dat de basis van de pokerbot gebaseerd is op reinforcement learning met een variant van CFR (waar Wdude124 een mooie uitleg van heeft gegeven), namelijk Monte Carlo CFR. Om de rekentijd wat te versnellen wordt er gebruik gemaakt van Regret-Based Pruning, hiermee wordt de selectie van de strategie beÔnvloed.

Voordat Libratus tegen deze mensen ging spelen, had hij alleen nog maar tegen zichzelf gespeeld. Geen Deep Learning op basis van een historie aan gespeelde handen/zetten/spellen (zoals AlphaGo).

Tijdens de dagen van de wedstrijd, werd Libratus 's nachts upgegrade met de hand history van die dag, waardoor hij zijn strategieŽn aan kon passen op de zwaktes van zijn tegenstanders. Dit stelde hem in staat meer te winnen.

In de wedstrijd werd ook een eigen variant van poker gespeeld, waarbij twee regels toegevoegd zijn om de geluksfactor te verminderen, namelijk :
1. All hands were mirrored. For example: when Player A got aces vs. kings at one table against the AI, Player B received the kings while the AI had aces at the same time. Thus no party could just run hot over the course of the challenge.
2. No hard all-ins. When a hand was all-in before the river no more cards were dealt and each player received his equity in chips. If a player was ahead 70/30 on the turn and got all-in, he was credited with 70% of the pot and the opponent got 30%. This also reduced the luck factor.
Libratus werkte tijdens de match ook op Bridges, maar Noam geeft aan dat het draaien van Libratus zelf niet heel gek veel langzamer is op een desktop en dat er extra pruning gebruikt kan worden indien er een tijdslimiet opgelegd wordt (waardoor hij waarschijnlijk zwakker zal worden). Response time wordt niet meegenomen door de bot. Dit is ook verteld aan de pro's, er worden dus geen "timing tells" gebruikt. De bot is geschreven in C++, maar is niet open source.

Cool concept en vooral dat het een keer iets anders is dan Deep Learning (na veel andere AI nieuwsartikelen).

[Reactie gewijzigd door Reynouts op 31 januari 2017 23:30]

Dus er bestaat best de kans dat er niet een algemeen goede pokerbot is ontstaan maar eentje die specifiek de zwaktes van deze spelers weet uit te buiten.

De vraag is dus hoeverre de spelers hun strategie hebben omgegooid.
Wat ik er uit opmaak is dat hij veel tegen zichzelf heeft gespeeld waar dus vele strategieŽn uitkomen. Vervolgens kan hij tegen een willekeurige speler deze strategieŽn proberen en op basis van de uitkomst veranderen.
A beautiful mind.
Dit is *exact* het eerste wat in mij opkwam toen ik de titel las
Preflop en flop strategie werd op deze manier vooraf berekend voor 200BB stacks. Toen bleek dat de small-blind preflop strategie nog niet genoeg geconvergeerd was (de pros vonden een manier om de preflop sb call te exploiten), hebben ze de bot enkel 2.5X laten openen.
Wat is je bron hiervan? Vooral dat laatste ben ik benieuwd naar.

Voor zover ik weet hebben de onderzoekers juist zelf geen strategieŽn of regels ingegeven en het lijkt me sketchy om zo een aanpassing zelf (dus niet als bot) "in-game" te maken.
Tijdens de laatste twitch livestream beantwoordden de onderzoekers vragen van de twitch-chat, helaas niet terug te bekijken als twitch vod atm.
Ze zouden alle streams mogelijk later nog uploaden naar YT.
Mischien niet de slimste opmerking maar, Hoe kan een AI winnen met poker doormiddel van berekeningen? word er dan ge-cheat? Poker is ook puur gokken lijkt mij als je bluffen meeteld. Dus hoe zou een AI weten dat die de pot gaat winnen? Ik sta perplex en kan niet echt een beeld vormen hoe dit te werk gaat.
Poker is ook puur gokken lijkt mij als je bluffen meeteld.
Bij puur gokken is de winnaar iedere keer iemand anders. Bij poker zie je echter iedere keer dezelfde groep spelers aan de finale tafels verschijnen. Dat betekent dat poker geen puur gokken is en dat er een fors element van vaardigheid aan vast moet zitten. En dat moet, in ieder geval in principe, te automatiseren zijn.

Hoe ze het precies gedaan hebben kan ik je ook niet vertellen, maar het komt er op neer dat ze een zelflerende programma de regels van poker hebben gegeven en het zichzelf hebben laten leren. Dit door letterlijk domweg proberen, dwz Biljoenen (>10^12) handen te spelen.

Daarnaast zullen ze ook wel het spel van de menselijke tegenstanders hebben geanalyseerd op patronen en voorkeuren. Mogelijk hebben ze zelfs de complete spelhistorie over de laatste paar jaar van de menselijke tegenstanders geanalyseerd.
Dus hoe zou een AI weten dat die de pot gaat winnen?
Dat weet hij niet, hij doet aan kansberekening en neemt dan de gok. Voor elke individuele hand is dat een behoorlijke gok, maar ze hebben 120.000 handen gespeeld en dan wordt het statistiek.
Ook belangrijk hierbij is een mentalstate bijhouden van je tegenstanders ťn jezelf (zoals waargenomen door je tegenstanders). Als je bijv. een aggressieve tegenstander hebt die veel bluft dan kun je dus vaker callen ookal heb je statistisch gezien niet een top hand. Als je een aantal keren gebluft hebt (en je tegenstander heeft je daarop betrapt) dan kan je voor de grap eens goed inzetten met een goede hand onder de veronderstelling dat je tegenstander dan denkt dat je bluft (en dus nŪet dat je veel inzet omdat je daadwerkelijk een goede hand hebt)..

Dit zijn allemaal variabelen die je in een intelligente zelf-lerende poker AI kunt inbouwen maar zijn wel dingen die je toch echt moet programmeren en die niet enkel en alleen door 'brute force' repetitie aan te leren zijn... kan wel, maar is gewoon zonde van compute power wanneer die dingen prima te abstraheren en kwantificeren zijn om ze in algoritmen in te bouwen. Ik mag er dan ook van uitgaan dat deze AI niet domweg met een statistiekentabel werkt (zoals jou post een beetje doet impliceren).
Het valt best uit te rekenen allemaal om in ieder geval je kansen wat te vergroten. Kijk hier maar is naar:

http://www.instructables....c-Introduction-to-Help-Y/

http://www.homepokergames.com/how-to-count-cards.php

En natuurlijk heb je de menselijke emoties niet die veel weg geven. Ik zit soms al met trillende handen als ik dreig te winnen als ik speel met een paar maten waar de jackpot twee tientjes is 8)7
Poker is ook puur gokken lijkt mij als je bluffen meeteld.
Dat is dus een van de grootste misvattingen die bestaat over poker, specifiek de populaire varianten als Texas Hold'em. Feitelijk bezien is een spelletje Texas Hold'em puur gokken - jij en je tegenstander krijgen 2 willekeurige kaarten, er vallen 5 willekeurige kaarten, en aan het eind heeft iemand gewonnen. Je hoeft geen genie te zijn om je te realiseren dat je met een 3 en een 6 niet bijzonder vaak zal winnen van 2 azen. Stomme pech is dus een extreem belangrijke component die de winst van die ene hand bepaalt.

Maar wel kwantificeerbare stomme pech. Het is prima te berekenen hoe groot de kans is dat er 2 drieen of 2 zessen gaan vallen en geen azen, of een 2, 4 en 5 voor een straight, of 3 zessen etc. Allemaal handen die 2 azen verslaan, en de kans erop statistisch te evalueren met brugklaswiskunde. Pak wat gevorderder wiskunde erbij en je weet ook de kans dat je tegenstander 2 azen heeft, of 2 heren. Tegen die tijd wordt het wel ietwat te veel data om in je hoofd nog te kunnen doen, maar met een heel datacenter...

Texas Hold'em heeft tevens het overzichtelijke voordeel dat er maar 169 starthanden zijn - 13 kaarten tot de macht 2 stuks. Ga nu eens 1000 handen spelen en jij en je tegenstander hebben een vergelijkbare hoeveelheid goede en slecht handen gehad. Een van jullie 2 heeft echter op dat moment meer chips op tafel liggen dan de ander, omdat ie beter z'n winkansen heeft weten te bepalen, of beter heeft weten te bluffen. Dat zijn de 2 factoren die naarmate je meer handen speelt steeds zwaarder gaan wegen dan de geluksfactor. Bluffen is pas gokken als je er geen onderbouwde reden toe hebt. Bluffen doe je als je daarmee je tegenstander de illusie aan kunt praten dat mee opbieden zijn eigen statistische kans op winst niet meer doet opwegen tegen de potentiele schade van het verlies. Dat is een strategische keuze, geen gok.

Professionele pokerspelers zijn menselijke calculators, die in bliksemtempo alle kanstabellen in hun hoofd kunnen evalueren om de keuze te maken of ze passen of meegaan. Die bij jouw blufbod direct in hun hoofd hebben of de kans 15%, 35% of 85% is dat je bluft. Die in combinatie met wat er op tafel ligt direct zien welke kaarten jij zou moeten hebben om die bid te rechtvaardigen, en wat dat jouw winkansen maakt tegenover hun eigen hand. En dat soort figuren spelen 24 tafels tegelijk en hebben aan het eind van de avond netto leuk verdiend. Omdat de geluksfactor zo enorm snel verdwijnt naarmate je meer handen speelt.

Vergis je overigens niet in dat iedere sport, tot aan schaken toe, een geluksfactor heeft. Ook Kasparov is makkelijker te verslaan als ie slecht geslapen heeft door een mug in z'n hotelkamer. Ook Ajax gaat wel eens onderuit tegen het eigen 2e elftal. Ook Sven Kramer maakt wel eens een verkeerde wissel. De kwaliteit van de sporter of het team zit hem in de voorspelbaarheid van zijn resultaten over een afdoende grote sample die de effecten van geluk marginaliseert. Zoals 34 wedstrijden in een seizoen, of emmers vol gouden plakken.
Een computer zal ten eerste altijd perfect zijn eigen slaagkans en die van zijn tegenstander kunnen berekenen. Verder kan je na x aantal potjes gaan voorspellen hoe je tegenstander gaat reageren in bepaalde situaties. Verder heeft de computer geen schrik om te verliezen want hij heeft geen besef van wat er op het spel staat.
Volgens mij is het besef wat er op het spel juist 1 van de dingen die hij mee weegt. Bij een AI is het zo van: Hoe meer informatie des te meer correlaties en verborgen verbanden hij kan ontdekken in zijn tegenstanders.

Indrukwekkend zeker.
Hij weegt mee wat er voor de tegenstander op het spel staat maar een computer gaat zich niet in het nauw laten drijven en een "hail Mary" doen.
Ik zou dat niet uitsluiten. Als hij leert dat dit soort tactieken winst oplevert kan hij zeker wel verbanden leggen waaruit hij besluit deze tactiek toe te passen.

Genoeg AI voorbeelden welke ons verbazen hoor. Ook besluiten en tactieken die wij mensen nooit bedacht hadden. Dat is JUIST de kracht van AI. Ook bij onderzoek naar medicijnen en andere zaken.
Een mens kan ook prima zijn eigen winkansen berekenen. Het zijn vaak dezelfde situaties, dus op een gegegeven moment weet je gewoon, 20% kans op een pair, 1/3 kans op een flush op de turn, 1/5 op de River etc.
Poker is juist naar mijn idee (speel het aardig vaak met vrienden, online of in een casino) ongeveer het enige kaartspel/casino game dat juist totaal niet puur gokken is.
Ik schat zelf dat het bij poker 75-85% kunde en 15-25% geluk is.
Klopt, dit omdat je voor het geld van je tegenstanders speelt en niet voor het geld van het casino. ;-)
mix van patroonherkenning bij de andere spelers, en statistische berekeningen.. lijkt me..
veel mensen zullen vaak een zelfde strategie er op na houden.

de a.i maakt gewoon een kansberekening of de bluf gegrond is of niet. (op basis van de kaarten)
aantal keren een bluf gedaan.

en elke nacht werd de pc bijgesteld op de speelwijze van de spelers.
zodoende kon de a.i dus goed berekenen of het een bluf was of niet.

en tuurlijk is het een spel van kans. maar als het win % beneden zo'n peil komt kan hij bijv folden of passen of noem het maar op.

ga bijvoorbeeld maar een spelletje poker tegen pro spelers spelen.. die weten vaak al welke kaarten jij hebt voordat je ze zelf gezien hebt (bij wijze van spreken)
Juist het bluffen maakt dat het geen gokken is.

Als het enkel ging om wie de meeste handen won dan was het wel gokken maar dat doet er niet toe.

Je kunt succesvol zijn in poker door 100 handen te verliezen (met bvb. 10 tokens per hand verlies) maar er vervolgens 1 te winnen van 100.000 tokens en dan heb je al een succesratio van 100:1.
Poker is ook puur gokken lijkt mij
Elke individuele hand wel. Maar over meerdere handen leer je elkaars strategie kennen en wordt het meer een strijd tussen de spelers dan tussen de kaarten om het zo maar te zeggen.
De AI wint niet alijd elke pot. Maar is gewoon net iets beter dan sommige menselijke tegenstanders. Bovendien worden de strategieen die de bot gebruikt er nog steeds door mensen ingeprogrammeerd.
http://www.volkskrant.nl/...is-geen-kansspel~a922881/

Interssant: deze hoogleraar heeft al eerder bewezen dat je goed kan worden in het spel, en dat de term gokken dus niet van toepassing is.
Hoe kan een AI winnen met poker doormiddel van berekeningen? word er dan ge-cheat? Poker is ook puur gokken lijkt mij
Tja wat is gokken? Er is in ieder geval geen *bias* voor het huis, zoals bij bijvoorbeeld blackjack of roulette. Bij poker heeft elke speler in principe evenveel kans. Echter dit geld niet voor losse handen.

Stel jij krijgt twee azen in je hand. Je hebt nu gewoon de hoogst mogelijke kaart in handen (op dat moment, paar azen is het hoogst haalbare met 2 kaarten); geen enkele speler kan betere kaarten hebben dan jij. Naarmate het spel vordert en er meer kaarten bijkomen (flop, turn, river) veranderen de kansen: een paar is namelijk niet de hoogst mogelijke hand met 7 kaarten. Dit kun je dus meenemen in je strategie: extra kaarten gaan jouw kansen bijna zeker verslechteren, dus dat moet je dan voorkomen (door hoog te betten).

Zo kun je, puur op basis van je eigen kaarten en wat statistische kennis over wat de gemiddelde sterkte van een hand is bij 2, 5, 6 en 7 kaarten al een heel redelijke schatting maken van de kansverdeling: jouw kans om te winnen of te splitten vs om te verliezen. Als die kans groter is dan 1 / het aantal spelers, dan is de verhouding goed voor jou.

Dus ja het is een gok. Maar nee het is geen gokken. Met wat slim rekenwerk kom je al een heel eind. En de volgende stap is dan om je tegenstanders te gaan lezen; hoe schat hij zijn eigen kansen in... Bluft hij nu? Hoe groot is eigenlijk de kans dat hij heeft wat hij zou moeten hebben om die bet waar te maken? Gebeurt dat niet wat heel vaak? Is hij wellicht gewoon wanhopig geworden door zijn lage stack en speelt hij nu heel loose (vee;l/hoog betten bij slechte kaarten) of juist heel tight? Goede spelers weten zo hun kansen op te krikken. Combineer dat met het spelen van heel veel potjes (grinden) en je kunt er een carriere van maken :)
Online gokken wordt hiermee nog interessant, hoe willen ze dit tegengaan.
Het is dan ook een doodlopend spel, er word al jaren gestreden tegen pokerbots die precies volgens een instructieset kunnen spelen(maar natuurlijk een veel zwart wittere speelstijl hebben dan Libratus).

[Reactie gewijzigd door Sergelwd op 31 januari 2017 19:36]

Die poker bots werken prima omdat je met conservatief spelen (wat niet al te veel bluffen of inzicht of tactiek vereist) structureel gewoon meer geld kunt winnen dan je verliest.

Die bots werken dan ook omdat ze statistisch gezien meer verdienen dan verliezen.

Dat werkt echter alleen omdat die bots in 'random' tafels ingezet worden met een hoog verloop. Als jij lang genoeg tegen zo'n bot zou spelen (zoals bvb in dit toernooi) dan krijg je vanzelf door precies hoe zo'n bot speelt en zou je hem dus helemaal uit kunnen kleden (door zelf nůg voorzichtiger te spelen dan die bot doet). Wel saai en duurt lang, maar je kunt dan wel degelijk gemakkelijk structureel winnen van die bot.
Punt is dat de eigenaar gewoon honderd bots heeft lopen. Als hij gewoon een max. verlies instelt waarna die bot weggaat, dan loopt de eigenaar weinig risico terwijl jij de hele nacht moet grinden om wat te verdienen.
Yup en dat is dus waarom die bots zo goed werken.
Er zijn tig van die tafels dus je kunt ook gewoon je bots automatisch laten switchen van tafel na x aantal minuten. Immers hoeven dŪt soort simpele bots geen rekening te houden met hun tegenstander dus maakt geen drol uit hoe lang ze aan ťťn tafel zitten. Dat max verlies hoeft dus ook nog niet eens want het duurt zelfs een goede speler toch zeker een kwartier op zijn minst voor hij door heeft dattie tegen een bot speelt.
Hoe kun je door hebben dat je tegen een bot speelt?Als die bot wat variaties in zijn timing legt zou ik het nooit door hebben denk ik (maar ik maak dan ook bijna altijd verlies als ik online speel)

Hoe vaak zie je de flop?2 op 10 handen die je speelt?En daaruit zien mensen of het een bot is ?

[Reactie gewijzigd door C00P op 1 februari 2017 01:55]

Hoe herken je een bot vs een normaal mens in een online game? Meestal wordt het verschil toch al snel duidelijk? Mensen doen menselijke dingen, bots verraden zichzelf meestal al snel door hun robotische gedrag.
Incorrect.

Libratus is een heel ander soort bot (en veel complexer) dan zo'n standaard poker botje dat een of andere rus of chinees zou gebruiken om te cheaten bij online pokersites. Er is een reden dat zo'n bot makkelijk van consumer grade hardware kan runnen en dit ding een supercluster van 600 nodes nodig heeft....
Als je nou zijn eerste reactie goed leest, had je je posts achterwege kunnen laten.
Leuk om te lezen maar mijns inziens pas echt interessant zodra een AI die draait vanaf een (relatief krachtige) desktop computer een mens kan verslaan. Wanneer we het over 600 nodes met elk 128GB ram hebben dan vind ik dat we nog niet echt op het niveau van 'AI > mens' gekomen zijn. Zodra de benodigde hardware in eenzelfde omvangrijke verpakking als een stel mensenhersenen past kunnen we pas echt spreken van 'AI > mens'. :+
600 nodes nu is 300 nodes volgend jaar.
Is 150 nodes in 2019.
Is 75 nodes in 2020.
Is 38 nodes in 2021.
Is 19 nodes in 2022.
Is 10 nodes in 2023.
Is 5 nodes in 2024.
Is 2 nodes in 2025.
Is 1 nodes in 2026.

Dus in tien jaar zit deze technologie in je broekzak.
"Dus in tien jaar zit deze technologie in je broekzak."

Veel eerder. Die 600 nodes zijn nodig om het neuralnet te verbeteren met nieuwe input. Dat is rekenintensief. Geen idee wat voor rekenkracht nodig is om een geoptimaliseerd neuralnet te draaien maar dat zal heel erg veel minder zijn. Misschien honderden keren minder. Dus het kan goed zijn dat je de technologie al binnen een paar jaar in je broekzak hebt....
Nee. Als je een neuraal netwerk traint, vindt je arbitraire wegingen voor alle verbindingen. Die wegingen werken om de ťťn of andere reden heel goed, maar er is geen aanwijsbare reden waarom dat zo is. Het is niet zo dat je die gegevens kunt samenvatten of anderszins "optimaliseren". Als je het getrainde netwerk wilt gebruiken, heb je dus het gehele netwerk nodig.

Dat netwerk is gigantisch. Dat is de voornaamste reden dat er zo'n enorm cluster nodig is. Trainen kost inderdaad veel meer tijd dan toepassen, maar daarom heeft Libratus ook de hele nacht nodig om de nieuwe gegevens te verwerken, terwijl het overdag gewoon op tijd beslissingen kan nemen tijdens het spel.

Je kunt er gerust van op aan dat alle berekeningen die bij het trainen en het beslissen komen kijken al tot het uiterste geoptimaliseerd zijn. Deze hardware is immers niet goedkoop.

Edit: bovenstaande is geschreven onder de aanname dat Libratus gebaseerd is op een neuraal netwerk, maar counterfactual risk minimization (waar Libratus zeker op gebaseerd is) lijkt niets met neurale netwerken te maken te hebben. Ik heb er nog nooit eerder van gehoord, maar het zou kunnen dat wat je zegt wel geldt voor dit algoritme.

Tweede edit: uit een reactie van Reynouts blijkt dat het in dit geval inderdaad mogelijk zou zijn om dezelfde bot op een eenvoudiger PC te draaien, hoewel de prestaties dan waarschijnlijk niet even goed zouden zijn. Goed speurwerk, Reynouts!

[Reactie gewijzigd door J_Gonggrijp op 1 februari 2017 00:07]

Je kunt er gerust van op aan dat alle berekeningen die bij het trainen en het beslissen komen kijken al tot het uiterste geoptimaliseerd zijn. Deze hardware is immers niet goedkoop.
Is het niet zo dat het juist zo langzaam is omdat het slecht te optimaliseren is en dat je hier dan ook geen ASIC voor kan toepassen maar eerder vrij universele hardware gebruikt?
Klassieke neurale netwerken, die floating point numbers gebruiken om de wegingen te representeren, zijn inderdaad niet zo efficiŽnt. GPU's zijn er beter in dan CPU's, en je hebt ook speciale vectorprocessors die er nog iets beter in zijn dan standaard GPU's, zodat de Google TPU en de Nervana Engine. Het houdt allemaal niet over en het betekent inderdaad dat AlphaGo alleen al in rekenchips minstens 130kW aan vermogen vreet. Dat neemt niet weg dat je natuurlijk toch probeert om zoveel mogelijk uit je hardware te persen (want geld); dat bedoelde ik met "tot het uiterste geoptimaliseerd".

Neurale netwerken zijn efficiŽnter te implementeren met neuromorfe chips, maar die techniek staat nog in de kinderschoenen.

Dit is overigens allemaal off-topic, want zoals ik in mijn edits al zei is Libratus niet gebaseerd op neurale netwerken maar op counterfactual risk minimization. Van die techniek weet ik nog te weinig af om zinnige uitspraken te kunnen doen over hoe goed of slecht dat te optimaliseren is.
De wet van Moore is verdubbeling elke anderhalf jaar... en in de praktijk gaat het inmiddels richting 2 jaar. Maar alsnog leuk om eens zo uit te schrijven hoe hard het gaat als iets volgens een power law verloopt!
Wet van moore is geen wet, het heeft gewoon betrekking op de mensheid en de evolutie van techniek. computers zijn slechts 1 onderdeel van de evolutie.

Maar feit is computers worden sneller en sneller en over x jaar is dit standaard in je telefoon. Je telefoon van nu was in zeg 1990 een supercomputer.

Probleem is dat men nu van het spel is plastisch maakt. Je tegenstander kan niet zien of een computer bluft. Bij mensen gaat het om de emotie. De ene ziet dat de ander bluft omdat deze een tik heeft bijv, bij een computer kun je nooit zien of weten of deze bluft, geen emotie dus.
Het is natuurlijk knap dat een computert kan winnen maar bij gebrek aan menselijke emotie sta ik er niet van te kijken.
Het is geen wet nee.

Maar 'Moore's law' als de meer generieke term 'power law' hebben dat woord in zich. Net zoals de natuurwetten eigenlijk ook geen wetten zijn. Het zijn modellen + de observering dat ontwikkelingen zich volgens die modellen voltrekken.

Ik vind overigens een AI specifiek voor een domain geschreven (zoals deze voor Poker) geen sterke AI maar zwakke. Ik vraag me af of/hoe deze zou presteren als je hem liet schaken bijvoorbeeld.

Echt sterke AI zou in staat moeten zijn om de regels te leren en strategieŽn te ontdekken zonder van tevoren voorgeprogrameerd te zijn. Deze past volgens mij zijn speelstijl aan (waarschijnlijk een paar parameters tweaken) op basis van geobserveerd gedrag, maar ik vraag me af of hij zelf creatief een strategie kan 'bedenken'.
Je hebt gelijk dat dit een weak AI is. Als het een strong AI was, zou dat meteen wereldnieuws zijn!

Het punt van machine learning is echter dat de machine jķist zelf een strategie ontdekt. Dat is weliswaar binnen een specifiek probleemdomein en daarmee nog steeds weak AI, maar dat neemt niet weg dat de AI zelf iets "bedenkt".

Als we de makers mogen geloven is het specifieke probleemdomein van de gebruikte techniek (counterfactual risk minimization) nog relatief algemeen; het zou overal ingezet kunnen worden waar sprake is van potentieel misleidende informatie. Dat kun je een beetje vergelijken met neurale netwerken, die overal inzetbaar zijn waar je patroonherkenning nodig hebt.
Heb jaren terug zo eens een mooi voorbeeld gezien van strategie van ai.

Was iets van beestje kreeg armen en wie van de 2 een balletje als eerste kon pakken, mocht verder groeien. Je kreeg dan leuke dingen te zien als beestje met lange arm die om het balletje heen ging waardoor de ander niet meer aan de bal kon komen.

Wat je ook zag was een beestje dat het andere beestje kapot wilde maken want ja ook dan kon de ander niet bij het balletjes komen.

Exact dat laatste is dus een voorbeeld van een probleem, agressie en hoe kun je ai leren dat dat niet mag. Je kan zoals in film leuke geboden opstellen maar zal ai zich daar aan houden. Mensen mogen ook niet stelen, doden en weet ik wat maar doen het toch.

ai heeft dus zeker ook zijn gevaren.
Je hebt gelijk dat dit een weak AI is. Als het een strong AI was, zou dat meteen wereldnieuws zijn!
Jazeker.

Maar om nou te zeggen dat ik het heel nieuwswaardig vindt om elke keer de vorderingen met tree based search AI als nieuws te presenteren... Deze algoritmes doen eigenlijk al jaren hetzelfde... Ze kiezen wat slimmer hoe ze zoeken en wanneer ze stoppen met zoeken en wat ze bijhouden in de search tree... oh en ze stoppen er steeds meer hardware achter....

Mijn 'probleem' hiermee is dat deze mensen wat mij betreft een doodlopend spoor aan het verkennen zijn. Je kunt vanaf kilometers afstand zien dat deze weg doodloopt (want deze algoritmes schalen niet naar een groter domein) en toch staan ze er op om voetje voor voetje richting die betonnen muur te schuifelen en bij elke stap te doen alsof ze weer een stuk verder zijn...

Strong AI gaat heel anders werken dan dit. Vraag me niet hoe, maar niet zoals dit. Want dit schaalt gewoon echt niet.
Ik ben het deels met je eens: op deze manier komen we niet bij strong AI terecht. De vooruitgang is inderdaad ook voor een groot deel te danken aan de beschikbaarheid van steeds meer rekenkracht per euro en per watt.

Toch vind ik dit wel nieuwswaardig. Het is dan weliswaar tegen hoge kosten, maar het is toch de eerste keer dat menselijke topspelers in poker verslagen worden door een computer. Poker is een heel moeilijk spel. Er was veel rekenkracht voor nodig, maar er zijn ook innovaties gedaan. Om nou te zeggen dat AI helemaal niet meer nieuwswaardig is tenzij iemand strong AI voor elkaar krijgt, lijkt me wel een beetje ver gaan.

Slecht schaalbaar? Hangt ervan af wat je daaronder verstaat. Naar ik begreep zou je hetzelfde programma op veel lichtere hardware kunnen draaien; de prestaties zouden dan niet meer zo extreem goed zijn maar nog wel goed. Als je dit algoritme op lichte hardware draait en combineert met andere algoritmes met andere sterktes en zwaktes (wellicht neurale netwerken, liefst op neuromorfe hardware natuurlijk), kun je misschien wel net zulke goede prestaties krijgen tegen "gereduceerd tarief".
Ja je hebt wel gelijk natuurlijk eerste keer Poker kampioen is wel sort of nieuwswaardig...

Ik merk dat jij het verchil goed doorhebt; helaas worden maar al te vaak deze berichtjes als grote stap vooruit in Ai gezien terwijl het feitelijk hoofdzakelijk door de brute rekenkracht komt.

Met schaalbaar bedoel ik in AI termen dat het niet meeschaalt met het probleemdomein... hoe meer mogelijkheden, hoe trager (kwadratisch) deze aanpak wordt.
Het is mijn vak (MSc in AI), dus het zou wat zijn als ik het niet doorhad... ;)
Ik vraag me af of/hoe deze zou presteren als je hem liet schaken bijvoorbeeld.
Er valt dan niks te presteren; deze bot weet niet eens hoe een schaakbord er uit ziet.
De computer laat geen emotie zien (en heeft die waarschijnlijk ook niet), maar de emoties van de menselijke spelers zijn ook niet zichtbaar voor de computer. In dat opzicht hebben de computer en de menselijke spelers precies even veel informatie. Daarnaast denk ik dat dergelijke professionele spelers sowieso erg goed hun emotie kunnen verbergen of opzettelijk anders tonen dan die is. Het gaat hier wel om topspelers. "Poker face" is niet voor niets een ding.

Hoewel emoties dus uit het spel zijn, wordt er nog steeds gebluft, zowel door de computer als door de menselijke spelers. Beide partijen moeten nog steeds proberen de bluf van de ander te doorzien. Door het gebrek aan emotie is er minder informatie op basis waarvan ingeschat kan worden of er sprake is van bluf. Dat maakt het spel dus eigenlijk moeilijker.

Je hebt wel gelijk dat het probleem van emotie niet is opgelost, maar dat zou je als een apart probleem kunnen zien. Libratus kan goed omgaan met potentieel misleidende informatie, alleen bestaat die informatie hier uit inzetten en niet uit emotie. Er wordt elders wel onderzoek naar emotie gedaan in de AI, met name in de academische wereld.
Het is een andere manier van spelen , eigenlijk moet je gewoon proberen het algoritme te ontregelen.Leuker zou zijn als twee AI computers het tegen elkaar opnemen.Gewoon face to face pokerspelen met echte mensen is toch leuker !
Maar dit is wel interessant.
Maar in dit geval gaat het om zowel rekenkrachtverbetering als algoritmeverbetering. Dus het zou best nog weleens een heel stuk sneller kunnen zijn.
Ik neem aan dat je aan Moore refereert, dat ging per 1,5 jaar en houdt al geen stand meer, en gaat steeds verder afbrokkelen. 600 nodes heb je over 10 jaar echt niet in je broekzak zitten.
Nope, implantaatje icm. contactlenzen.
Eerst zien, dan geloven!
En daarnaast, nog een veel belangrijker puntje, zo 'AI' is deze AI niet. Alle AI tegenwoordig is gebouwd op algoritmes die patronen proberen te herkennen. Een soort van uit de klouwen gelopen pattern matcher. De AI is niet slimmer dan de mens die het gepgroammeerd heeft. Enige verschil is dat de AI op een cluster met duizenden cores en gigantische hoeveelheden ram draait. Iets wat wij fysiek nooit op kunnen redden uiteraard. Maar´echte' AI, nee, dat bestaat nog niet. We kunnen het simuleren, maar dat is alles. Desondanks een ontzettend knap staaltje werk.
Echte AI bestaat wel.

"However, onlookers commonly discount the behavior of an artificial intelligence program by arguing that it is not "real" intelligence after all; thus "real" intelligence is whatever intelligent behavior people can do that machines still can not. This is known as the AI Effect: "AI is whatever hasn't been done yet.""
https://en.m.wikipedia.org/wiki/Artificial_intelligence
Tja dat argument ken ik ook.

Maar de opmerking van Vale vista is wel terecht.

Echte AI kan ťcht leren. Ik zeg niet dat dat onmogelijk is of zo maar ik heb het nog nooit gedemonstreerd zien worden.
Zoals Google deepmind die leert door tegen zichzelf te spelen (go).
Echt leren is iets anders dan je strategie aanpassen.

Als deepmind het spel Go kan leren (dus de regels ontdekken) door gewoon te beginnen met spelen, dŠn begin ik een beetje onder de indruk te raken... maar eerlijk gezegd... Go en schaken e.d. zijn nogal kunstmatige toepassingen. Ik zou liever beginnen met de AI door een (virtueel) doolhof te laten lopen of zo... iets minder abstracts dan Go.

Je verwacht van een kind van 6 niet dat het Go kan spelen. Of kan lezen. Of toernooien Texas Hold-em winnen. Toch verslaat een kind van 6 deze supercomputers op *alle* vlakken, *behalve* de genoemde.

Het feit dat onze AI wel kan lezen maar niet een chat gesprek voeren zou bellen moeten doen rinkelen. We doen iets fout. Lezen en schrijven zouden hogere functies moeten zijn, geconstrueerd bovenop begrip van de onderliggende woorden en concepten. Net zoals wij mensen eerst leren wat een bal is, dan wat het woord ervoor is en dan pas hoe je het moet schrijven.
Weak AI: een machine voert een intellectuele taak uit die voorheen alleen door mensen uitgevoerd kon worden. Verschuivend concept. Van rekenen vinden we al lang niet meer dat het een menselijke taak is. OCR beschouwen we sinds ongeveer 15 jaar geleden niet meer als AI maar gewoon als een functie die bij scanners hoort. Go, poker en zelfrijdende auto's zijn nog wel zo nieuw dat we het "knap" of "verrassend" vinden dat een computer er goed in kan zijn, dus dat noemen we op dit moment wel (weak) AI. We wennen eraan (zie ook de reactie van pim) en vervolgens duikt er weer iets nieuws op dat computers eerst niet konden en nu wel.

General AI: een machine kan zelf nieuwe taken leren, in principe alle taken die een mens kan leren.

Strong AI: een machine heeft creativiteit, bewustzijn, emotie, taalbegrip en common sense.

General AI en strong AI worden vaak over ťťn kam geschoren. Naar mij mening terecht, want het ligt voor de hand dat ze samengaan.

Alle bestaande AI is weak AI, zoals je al zei. Dat neemt niet weg dat weak AI echt AI is en dat het een uitdagend vakgebied is waarvoor je hard moet studeren. Het is helemaal niet triviaal om een computer zo te programmeren dat die zelf oplossingen kan vinden voor problemen die zelfs mensen moeilijk vinden, ook al is het dan nog binnen een beperkt domein.
Nee weak AI is zeker niet triviaal.

Sterker nog, ergens diep in mijn programmeurs-hart weet ik dat strong AI *simpeler* is dan weak AI... Want voor weak AI moet allerlei kennis uit het precifieke probleemdomein in het programma worden opgenomen.... terwijl als het je lukt het programma te leren leren, dan kan hij al die kennis zelf tot zich nemen.

Punt is alleen dat degene die weer de volgende weak-AI stap maken het nooit weak AI zullen noemen.... Maar er moet wat tegenwicht tegen het ondezoeks-gejubel zijn want als je dat leest dan denk je dat ze er al bijna zijn.
Ik snap het screenshot niet goed? Allemaal dezelfde bedragen?
"Parentheses indicate a negative number."
Slim van ze. Het bedrag met een min-teken ervoor en in het rood zou veel te duidelijk zijn. |:(
Rood op rood is inderdaad niet heel duidelijk ;).
in het rood op een rode achtergrond? ;-) daar wordt het niet duidelijker van
Tja misschien omdat een rode achtergrond gewoon hun tweede fout is? :+
Cool! Ik ben het helemaal met je eens.
Ah! Dat duurde bij mij ook schandalig lang voor ik dat door had...
Een minbedrag wordt ook wel geschreven als een getal met haakjes aan weerszijden. Links zie je dus het verlies van de 'Brains' ofwel de mensen en rechts de winst.
Als je ťťn tegen ťťn speelt (heads up), is de winst van je tegenstander precies jouw verlies.
tussen haakjes = negatieve waarde
te laat :)

[Reactie gewijzigd door breew op 31 januari 2017 19:34]

Dit zie ik niet echt als een overwinning voor de AI, omdat deze 's nachts steeds werd geŁpdatet met een heel team er achter zich.
Als het zelfstandig zonder manipulatie een toernooi kan winnen, dan is het weer een nederlaag voor de mensheid.
Hier ben ik het mee eens. Natuurlijk gaat het trainen van AI in stappen, maar een echte kunstmatige intelligentie leert natuurlijk 'on the fly', zoals mensen dat ook doen.

En dat kan best met een stukje na-analyse, want dat doen mensen ook. Als ik in de auto naar huis zit, denk ik ook even na over wat ik die dag heb gedaan en hoe dingen beter kunnen, soms tot aan ik in mijn bed lig. Deze AI heeft natuurlijk ook dat 'recht' als hij een meerdaags toernooi speelt (of welke andere taak dan ook), maar dan moet dat reflectie- en leerproces wel volledig geautomatiseerd zijn. Anders is de term AI wat mij betreft te veel eer (zoals in 99% van de gevallen waarin deze term wordt gebruikt).
Als hij naast de poker ook maar nuchter op het werk komt om de vol automatische fabriek draaiende te houden :+
Dit is een mooi resultaat voor Libratus en zijn scheppers.

Het knappe aan deze prestatie is dat No Limit Texas Hold 'em Poker een spel is waarbij je als speler niet alle informatie hebt (imperfect information), je weet namelijk niet welke kaarten je tegenspeler heeft. Dit in tegenstelling tot de spellen schaken en Go. In de variant die de bot speelde, speel je slecht tegen ťťn persoon (heads up), waardoor het nog enigszins behapbaar blijft.

Een ander tof aspect is dat na een avond pokeren, de wetenschappers de strategieŽn van de bot opnieuw te trainen door de gespeelde handen toe te voegen aan het model.

Helaas is er nog geen officieel paper over deze bot, maar wat zaken zijn wel in te vullen gezien de historie van ťťn van de wetenschappers (Noam Brown). Ik wacht op het officiŽle paper achter het model, ben benieuwd!

Voor de tussentijd is dit een leuk paper voor de mensen die geÔnteresseerd zijn in de technieken achter dergelijke pokerbots: de concurrent DeepStack.

[Reactie gewijzigd door Reynouts op 31 januari 2017 23:16]

Betekend dit nu dat alle Texas Holdem gok sites in kunnen pakken?

Er is vast ergens iemand die deze bot gaat verkopen en dan krijg je bots die tegen bots spelen (met al dan niet een mens die de commando's doorstuurt)?
Tja kan een computersysteem niet gewoon veel beter kaarten tellen?
Als je weet wat er geweest is weet je wat er niet meer komen kan en dus kan je een betere kansberekening maken.
De enige skill die je met poker dan ook nodig heb is de skill om te onthouden welke kaarten er nog in het spel is zodat je weet welke opties hoger als jou hand er nog mogelijk zijn.

Op dit item kan niet meer gereageerd worden.


Nintendo Switch Google Pixel XL 2 LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*