
This post is months overdue at this point, but I figure late is better than never! Back in May, I did a project and presentation as part of the ML Summer School 2025 at Northeastern University. Specifically, I created a variation of Poker (which I deem “Pocket Poker”) and then utilized Counterfactual Regret Minimization (CFR) to train a playable opponent bot.
CFR is essentially a self-play algorithm which iteratively minimizes average overall “regret” for both players used in training. In doing so, CFR uncovers a strategy which is guaranteed to converge to a Nash equilibirum – the ultimate defensive strategy that cannot be beaten in expectation.
You can check out my brief presentation slides here, or play against my bot here!
Pocket Poker Rules
- 20 card deck (4 suits of 10,J,Q,K,A)
- 2 hole cards dealt to each player
- 1 shared community card
- 1 chip mandatory blind bet
- 1 round of fixed betting
- If no player folds, go to showdown and compare hands
- Hand ranking:
- Three-of-a-kind
- Pair
- High card
