Submitted by computing_professor t3_ynouh9 in deeplearning
I asked this a couple weeks ago in /r/learnmachinelearning but maybe it will get some more traction here.
I'm familiar with things like self-play in training a player for games like Chess, Checkers, and many other games where move sets and goals are the same for both players - e.g. eliminate the other player's pieces, prevent the other player from moving (like in Amazons, for example), etc. But what about training a computer player for a game where one side has a different goal than the other? Things like Maker-Breaker Games. I imagine I would want to train a strong Maker and then train a strong Breaker. So it seems less like an application of Reinforcement Learning and more like a Generative Adversarial Network. But it's not really generative, so not a simple GAN application. I imagine it's still an RL task, but I'm interested in how to go about it.
Does anyone have any reading on these types of problems? Thanks.
dualmindblade t1_iva5ncr wrote
Disclaimer: not even close to an expert, I just keep up with the state of the field
If you were using something the AlphaZero algorithm, I'm fairly certain the asymmetry is not an issue, it would work unmodified, and also I don't think you'd want to use two models, it would weaken the play. Argument is that the NN part is trying to intuit the properties of a big tree search in which both players are participants, so it must understand both strategies about equally regardless of which side it's playing. It's no different from a human player, when you make a move the next step is to consider the resulting position from the other side and evaluate their potential moves. BTW chess is not super symmetric in practice, usually black will need to adopt a defensive strategy in the opening.