Quote:
Originally Posted by dontbescurrrred
how can a bot spot a perfect bluff-squeeze-spot ?
I'm going to use this one particular example but what I'm about to say applies to any specific thing you can come up with and ask how a bot can do it.
The way a human spots a perfect "bluff squeeze spot" isn't through some sort of magical power that triggers some magical warning bell in a different plane of existence that peeks through the aether at the exact right moment and whispers in the player's ear "hey you should bluff here, it's a perfect spot to squeeze."
The way a human finds a spot like that is by playing a bunch of hands where similar situations occur and then identifying the pattern or patterns that are common to those situations and then looking for them going forward. A contrived but somewhat realistic simplified example of a pattern that might help identify the opportunity for a squeeze might be something like:
Player A in seat 5 limps, player B in seats 6 raises and we are play C in seat 7.
From our history with these players we know that player A is a loose passive player that likes to limp and see flops but often folds to raises.
Player B is a laggy player that raises >50% of their hands preflop but often folds to re-raises.
We can identify this pattern because we are aware of concepts like "loose passive", "LAG", "limp", etc. and we talk about, think about, and study what various combinations of all of these things mean.
No bot is ever going to do the talking, thinking, and studying and then come to the realization that that spot is a good spot to squeeze.
However, there are two reasons why this doesn't matter.
1. A human can do the talking, thinking, and studying and and then program a rule into a bot to look for this situation. On the surface this doesn't seem like that big of a risk because it seems as if no one would ever be able to program a bot that plays better then themselves then... but there are two very simple and obvious flaws with that line of thinking.
First, even the Ivey's and Durrr's of the world are prone to tilt or mistakes like misreading a hand or misjudging their equity and/or other math errors. Bot programmers may make mistakes as well, but over time they'll find them and fix them until the bots are perfect. So even if you could only make a bot that was as good at poker decision making as you it would play better than you because it would never tilt or make a math error, etc.
Secondly, and more importantly, there's no rule that says only one person has to program a bot or that that one person can't consult with the greatest minds of the game. If I had a year to write a bot and for that year I had unlimited access to any 10 top NLHE players and they were completely open in answering my questions I am sure I could write a bot that would beat them all (and pretty much anyone else). I'm sure the UoA guys could do it even more quickly.
2. There are learning algorithms that make it unnecessary to go the route described in (1). This is just off the top of my head but I could imagine a bot that was essentially built as a series of
Restricted Boltzmann Machine's where each RBM maps to one "level" of thinking and the bot can basically derive what level of thinking each player is on by often their shown-down hands don't match up to what it would predict. Each RBM would know how to very closely to perfectly play a player on each level of thinking. Each time a player adjusts the bot would adjust the RBM that's its using to analyze that player. It would take a long time to polish the whole thing off but my guess is you could train something to beat average players with just a few hundred thousand hand histories and top players with a few million.
I'm not a machine learning expert so I may be way off base in the applicability of RBM's specifically and that particular idea may be hogwash but my point in general is that the state of the art on these types of techniques is advancing extremely rapidly and computers will soon be better than humans at a number of tasks that years ago nobody would've guessed, e.g. voice recognition, image recognition, etc.
And this stuff isn't pie-in-the-sky stuff either. At my company we use some very simple machine learning algorithms (Bayesian classifiers, voted perceptron, etc) to do tasks quickly and cheaply that would be either cost- or time- prohibitive if humans had to do it. These tasks are much more simple than playing NLHE but most people are very surprised when we tell them that the output they were looking at was generated by computers and not by humans. And these are basically entry level machine-learning algorithms.