60 likes | 169 Views
Neural Networks for Opponent Modeling in Poker. John Pym. Introduction. Texas Hold’em poker 2 down cards, followed by a round of betting. 5 community cards, 3 more rounds of betting. Imperfect information Correct strategy depends on opponent’s hand
E N D
Introduction • Texas Hold’em poker • 2 down cards, followed by a round of betting. • 5 community cards, 3 more rounds of betting. • Imperfect information • Correct strategy depends on 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 (www.cs.ualberta.ca/~games/poker/) • 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) • Open source neural network library written in C • Linked into Java program using System.load() • 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. • 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 • 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.