Neural Networks for Opponent Modeling in Poker John Pym
Introduction Texas Hold’em poker Texas Hold’em poker –2 down cards, followed by a round of betting. –5 community cards, 3 more rounds of betting. Imperfect information Imperfect information –Correct strategy depends on opponent’s hand Goal: Implement a neural network predictor of an opponent’s hand Goal: Implement a neural network predictor of an opponent’s hand
Code I used University of Alberta’s Computer Poker Research Group ( University of Alberta’s Computer Poker Research Group ( –Java source code for hand evaluation, other miscellaneous routines. –Predictor.java – interface for action predictor system –Context.java – class containing context information
Code I used Fast Artificial Neural Network Library (fann.sourceforge.net) Fast Artificial Neural Network Library (fann.sourceforge.net) –Open source neural network library written in C –Linked into Java program using System.load() IRC poker database (games.cs.ualberta.ca/poker/IRC/) IRC poker database (games.cs.ualberta.ca/poker/IRC/) –History of 10 million hands played between 1995 and 2001 on the IRC poker server
Steps Finding the probability distribution for hole card combinations. Finding the probability distribution for hole card combinations. –Predictor finds probability of raise/call/fold given a context. –We want a probability distribution of hole card combinations. –Used Bayesian logic to find these probabilities, given a predictor and partial context.
Steps Implemented a neural network predictor Implemented a neural network predictor –Inputs: 22 context variables (hand strength, pot odds, number of players in hand, etc). –Output: prediction of raise/call/fold for a hand. –This is used to obtain a probability distribution for an opponent’s hole cards.