Poker Driving Artificial Intelligence Research
J-Hawker writes "The Canadian Press has a story about a University of Alberta team that is using Texas Hold-'em to study artificial intelligence. Poker seems to be a much more useful game for this research than chess. From the article: 'Poker has what are currently some of the biggest challenges to (artificial intelligence) systems, and uncertainty is the primary hurdle that we're facing,' said Michael Bowling, adding that the University of Alberta program was able to use its opponents' actions to infer certain things about their hands. 'The same techniques, the same principles that we're developing to build poker systems are the same principles that can be applied to many other problems. The nice thing about chess as a property of the game is what we call perfect information. You look at the board, you know where all the pieces are, you know whose turn it is — you have complete knowledge of the game,' he said. 'But in the real world, knowing everything is just so rare. Everything we do all day long is all about partial information. So poker's much more representative of what the real world's like, and in that sense it becomes a much harder problem.'"
What confuses me is how the poker openings differ. I would speculate that a program would be some heuristic relating the ratio of bluffing to "playing the odds." I have gambling friends that play poker all the time and they have these rules that they follow when they play initially against people. They say it's the best until you "know" the people you're playing. Once you can read them then you deviate from the rules. The real irony is that the most successful people I know adhere to a system until they learn someone's movements. Sounds to me like I would write an application that specializes in playing the odds until it recognizes a historical action that statistically reveals the player is bluffing/not bluffing.
Simply put, unless you knew someone's reputation as being a bluffer, you would play the opening hand always the same way. Aren't we forced to program the "AI" of the poker software as being this simple heuristic? Will programs ever be able to "read" players intelligently or will they rely on Markov models & statistics they develop from playing against the same human over and over?
Most unfortunate is the fact that the primary reason my friends gamble is they don't experience the same kind of rush while playing other games as they do with poker because it's more social than other games. If we program applications to beat humans, where does the "social aspect" of the game go?
Even more interesting is the network of poker bots that are set up and running some of the web sites that host poker players. Imagine sitting down at a table of five with four of the other seats taken. Now imagine that these aren't humans but instead bots on four different IP addresses that are sharing card information over an IP connection so that they can leverage odds over you and stop themselves from making stupid mistakes (i.e. they share a card on the table for a pair but really need three of a kind to pose a threat). There's a reason why the percentages fluctuate on TV when cards are revealed whether they be in the flop or in another player's hand.
My work here is dung.
The AI is "able to use its opponents' actions to infer certain things about their hands"
While it may seem logical to use the actions of people playing to determine something about their hands, in reality people do not play logically. My uncle has been playing spades for probably better than 30 years, yet I have yet in my relatively limited 10+ years of playing to determine any rational for how he plays. Basically, he really sucks at spades. No matter how "Intelligent" artifical or otherwise I manage to code a game, it can't reason out the reasoning behind a non-logical person.
Good quote I say somewhere: Artifical intelligence is no match for natural stupidity!
And this holds true for more than card game AI. It will not be too long until AI could reasonably drive around and get from point A to point B safely. But it will be a damn long time before it can do it if it has to share the road with people driving as well!
I only look human.
My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
Also, why ensure that no one computer got lucky? Isn't that the point of playing several thousand hands of limit poker, to eliminate the effect of luck in the study? If it's necessary to normalize all the hands received by the players, then something else is wrong with the study. I'd like to see if the results differed, and how, when the hand repetition is removed.
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
Before anyone goes off about how AIs will eventually replace us, my company runs a (GPL and GNU/linux friendly) poker site and the last thing i am worried about is bots taking over humans in no-limit games. To win consistently against serious players an AI would need to be a LOT smarter than what the guys from Alberta have. It would need to have a serious grasp of human psychology. It might happen, eventually, but by then society might have changed so much that "money" might also be an obsolete concept...
:)
And even if such software existed, it would basically mean that you couldn't win at online poker anymore because skill would not be relevant anymore. That wouldn't be very different from the current situation with player-versus-casino luck games (like roulette or slots).
And we can all see how poorly these are doing, right?
Most good players don't actually "Bluff" in the sense that they are totally full of crap, and have no hand. Most bluffs are calculated risks based on the overall odds of "Improving" the hand, such as the case with four of a suit and two cards left to be turned over. In that case, the overall odds of hitting the flush are good enough to bet on (unless of course there is a pair showing on the board, which would indicate a possible full-house), even though the player has no "real" hand yet. Situations such as this can be quantified. Granted there are some real morons out there who will try to "bluff" with nothing, they are relatively rare and don't usually last long.
I'm not fat, just big boned...
There are already bots playing against unsuspecting people at the online casinos. I'm not sure how much AI is involved, but apparently they play better than most humans.
Good poker players constantly semi-bluff and do continuation bets. They do plain bluffs in some situations too. Its all about reading your opponent- if I think an opponent will lay down a hand if he doesn't have a pair, I will always bet on the flop even with nothing- the odds favor him having nothing as well, and if he always lays down non-pairs I'll win more money by betting than I lose.
I still have more fans than freaks. WTF is wrong with you people?
Kirk had to 'splain the same thing to Spock at least once...(Re: Episode #3, "The Corbomite Maneuver")
This space intentionally left (almost) blank.
If someone had a bot that could successfully beat online poker, why would they sell it?
...given a large enough stack. I think I could write a perfect Sudoku program in about 30 lines of code. Most of it would be a reursive routine.
"Computers aren't particularly good at learning, for example, or reasoning by analogy"
Computers aren't good at retaining knowledge and recognizing patterns? That's news to me... this statement is obviously made by someone who doesn't know what he's talking about...
A very strong and useful technique in AI is to create learning algorithms. Some of these, such as reinforcement learning, are actually quite effective. Using something like Monte Carlo methods to give it a randomness factor simulates human learning, and computers don't forget what they are taught. The difficulty with learning isn't that computers can't do it... it's being able to define an effective set of state-action pairs for the computer to learn upon.
I spent time researching natural language processing, sometimes using AI techniques that did exactly what this person claims computers aren't good at: reasoning by analogy. One method involved building a knowledge base which generalized input so that patterns can be found and the grammar could be recovered. The weakness in the system wasn't reasoning by analogy, in fact I'd say computers are much better at that than people. It was rather a lack of a real world model which allowed for a wider array of perception.
The reason this game is difficult is not based on a computer's inability to solve problems, rather that there are so many possibilities that we cannot effectively design algorithms that the can be put to use. This isn't even news, the same has been said about the game of Go for the longest time.
I think a more accurate statement for this person to make would've been: "The overwhelming complexity of poker makes it a difficult game to define in a way for a computer to be able to play effectively."
--
"A man is asked if he is wise or not. He replies that he is otherwise" ~Mao Zedong
Capitalism: When it uses the carrot, it's called democracy. When it uses the stick, it's called fascism.
Analogies don't equal equalities, they are merely somewhat analogous.
Considering that a lot of naval technology of the 16th, 17th, and 18th centuries was stimulated by things like warfare, tobacco, sugar/rum, tea, coffee, and the slave trade, is this really surprising?
The Independent: Reverend Spooner Arrested in Friar Tuck Incident - ISIHAC, Historical Headlines
Why don't you read about the software? This is just a toolkit. This software provides a .DLL that will allow your machine to interface with online poker sites and gather statistical data. There is also a mode that allows for automated play. It is important to note that you really need to be skilled (software/mathematics) to effectivly use the automated software. Again, if anyone is really interested in AI/online poker, this is THE tool to get you started.
The operative word there is "profit". Profit is the motive - vice is merely the easiest way to achieve it.
While it probably doesn't have nearly the financial motivation that poker does, the AI behind Computer Go also represents a huge challenge. The rules of Go are very simple, but it is impossible to 'solve' using brute-force techniques like you might use with something like chess.
www.DIYTVAntennas.com
If you are chasing a flush, knowing the suits of the other person's two cards can ajust your odds bu a huge factor. For example, if you were four to a flush post-flop (giving you odds of 38/100 to hit your flush), and you all of a sudden know that two cards not in play are *not* of your suit, that ups the odds to 43/100 - this is a huge odd jump in hold-em, and can mean the difference between folding and going all-in in a race situation.
Two players colluding in a game is a huge problem. Even a marginal advantage equals to a huge advantage played out over time.
Poker is only one of many double-blind, "real-world" games out there. I like the idea of making an AI learn poker (poker masters are more like human beings than chess masters, certainly), but it is my humble opinion that Kriegspiel is where it's really at.
I used to carry a bottle of whiskey for snake bite. And two snakes. -Nefarious Wheel
AI as a field is still very hot. The difference is that the goals have changed and the field has fractured into smaller sub-fields. The goal of a truly "human intelligence" doesn't seem feasible in any near term scenario. Fields such as statistical learning theory, natural language processing, computer vision, genetic algorithms, and many more yielded very interesting results.
One distinction to make is that bots can be and have been successful playing against human opponents in limit poker, where the bet size is fixed on each betting round.
In no-limit poker, when each bet has the potential to cost your opponent all of their money/chips, the decision making process is more critical and mistakes more costly. Variance in no-limit poker is much larger and the AI required to determine whether your opponent is bluffing or has "the nuts" becomes a much larger problem to solve.
Praying for the end of your wide-awake nightmare.
How can Poker be better to test IA than Chess? Isn't Poker a random game of chance, where Chess is a game of strategy and tactics? I don't get it.
Somewhere I read Go was a more challenging setting for AI... Anyways, in the end the bot will only be as smart as the programmer(s) and whatever weakness a programmer has in his game/logic an elite player will be able to abuse that weakness in the bot. Lets not forget, poker also involves a great deal of acting. If you can determine how a bot analyzes its opponents, you can feed it bad information then wait for the full house (on the low pocket pair) against the ace high flush...I'm all in!
I am a member of the Alberta team.
The article did not explain this part of the competition very well. The bots did not have access to any hidden information. The opponent's cards were only revealed at a showdown.
Here's how it works. A mini-match (1000 games) was played, with all of the cards recorded. Then a completely separate mini-match was played with the same cards, but with the positions reversed. This is possible because fresh copies of the programs can be started with a clean slate, having no memory of the previous match. (In fact, the two halves of the mini-match aren't even played on the same computer). Many of these duplicate matches were then played (40 for the fast competition, 12 for the slow competition) between each pair of players.
It is essential to run the matches in duplicate, in order to equalize the opportunities each side gets. The natural fluctation (variance) due to luck is huge in poker, making it very difficult to separate the signal from the noise. The problem is much worse than most people imagine, making accurate measurement of performance a sticky problem. The duplicate matches go a long way toward reducing that variance, and revealing the true long-term expectation.
[On a related note, I created a technique for direct assessment of poker decisions, which cuts away much of the noise. It is described in detail in my PhD thesis, which should be available from the CPRG website (http://games.cs.ualberta.ca/poker/) in September. A detailed analysis of the AAAI matches will also be available.]
Incidentally, there are a lot of incorrect statements being made in this thread. See the post titled "Some Actual Factual Information" for links to some of the original sources.
- Darse.
char*p="char*p=%c%s%c;main(){printf(p,34,p,34);}"