Closed mooskagh closed 6 years ago
Here are moves we generate for move_to_id table: https://gist.github.com/mooskagh/907436d7430b4dc96ae35adc780849f5 Note there are promotion moves for black (like a2a1q)
What we can do is completely drop the color plane (always fill with zeros), and fix the move flipping. That way no retraining is needed at all, network will always think as white.
What's the current problem with the position flipping? Is https://github.com/glinscott/leela-chess/blob/0cb27d5de925c65bfd29df5c906b22cf94e319c2/src/Position.cpp#L988 unsuitable for this purpose?
I implemented this into alpha-chess-zero and would love to see it here too!
What's the current problem with the position flipping?
The problem is with move flipping which has to go together with position flipping.
Indeed, that function is suitable for flipping moves, the problem is just that it's not called.
Fixed in #231.
I'm pretty sure it's not supposed to be so, but if fact we do generate separate probabilities for "white promotion" move from "black promotion".
So the problem is that different response is expected from the network depending on colour plane. For example in the starting position, it responds highest probability for move e2e4 (element 332 in policy head) for white, while it should be e7e5 (element 1498 in policy head) for black.
Example: