lifrordi/DeepStack-Leduc

Hands isomorphism question

Closed this issue · 5 comments

snarb commented

Hello Martin!
Can you please say did you use hands isomorphism properties to convert hole hands to canonical form and make things faster? From the paper Figure 3 looks like not. If so what are the reasons that you didn't use it?

Hi,

Are you asking about the input of the network?
If so, the input is not (distribution over) raw cards, but rather (distribution over) hand cluster ("bucketing"). This is even more compact than using isomorphisms.
This speeds things even more, but unfortunately such abstraction is not lossless. On the other hand it's just much easier to train the values using such simple representation.
I am happy to elaborate more on that if this does not clarify it.

snarb commented

Martin, I mean to convert inside the lookahead. For every round. Let say that we are in the 1 round - preflop. There are 1326 possible hole hands. So the player random ranges size is 1326. We are solving round up to the flop(where we got values from NN), and get 1326 CF values(or strategy) as a result.
But there are only 169 canonical preflop hands. So player range can have size only 169, equity matrix will be 169 x 169(not 1326 x 1326) and all things will be faster. For NN inputs we can convert from canonical hands to buckets. That is lossless abstraction so it should not make exploitability higher but make the things faster. What do you think about this?

In the supplementary paper, there was a snippet saying that preflop was solved using 169 buckets (search for 169)

Yes, if the question was about the lookahead, than indeed we operate only on isomorphic hands there

we can also use Hands isomorphism to speed up generate random poker situation.