In the previous research, in 2015, Deep Q-Learning shows its great performance on single player Atari Games. But why do AlphaGo's researchers use CNN + MCTS instead of Deep Q-Learning? is that because Deep Q-Learning somehow is not suitable for Go?


2 Answers 2


$Q$-learning (and also its deep variant, and most of the other well-known reinforcement learning algorithms) are inherently learning approaches for single-agent environments. The entire problem setting that these algorithms are developed for (Markov decision processes, or MDPs) is always framed in terms of a single agent situated in some environment, where that agent can take actions that have some level of influence over the states that they lead to, and rewards may be observed.

If you have a problem that is, in reality, a multi-agent environment, there is a way to translate this environment to a single-agent setting; you simply have to assume that all other agents (i.e. your opponent in Go) are an inherent part of "the world" or "the environment", and that all the states in which these other agents make moves are not really states (not visible to your agent), but just intermediate steps where these part-of-the-environment-agents cause the environment to change and, as a result, create state transitions.

The primary issue with this approach is; we still need to model the decision-making of these agents in order to implement this new view of "the world", where our opponents are really a part of the world. Whatever implementation we give them, that is what our single-agent RL algorithm will learn to play against. We can just implement our opponents to be random agents, and run a single-agent RL algorithm like DQN, and then we will likely learn to play well against random agents. We'll probably still be very bad against strong opponents though. If we want to use a single-agent RL algorithm to learn to play well against strong opponents, we need to have an implementation for those strong opponents first. But if we already have that... why even bother with learning at all? We've already got the strong Go player, so we're already done and don't need to learn!

MCTS is a tree search algorithm, one that actively takes into account the fact that there is an opponent with opposing goals, and tries to model the choices that this opponent can make, and can do so better the more computation time we give it. This algorithm, and learning approaches built around it, are inherently designed to tackle the multi-agent setting (with agents having opposing goals).

  • $\begingroup$ It is a nice reply, but it is better to emphasize that deep Q-learning can be used for multi-agent games. TDGammon, for example play gammon and uses temporal difference learning with a neural network, a similar algorithm to deep Q-learning. Even though gammon is a two-agent game, the things you say do not apply for the algorithm of TDGammon because it uses Bellman's equation to update the parameters. $\endgroup$ Commented Sep 16, 2023 at 9:39
  • $\begingroup$ @FıratKıyak Actually, even TD-Gammon's algorithm probably "shouldn't" have worked in theory, at least in the sense that such an algorithm was not guaranteed to converge to a correct solution for a 2-player game, even given infinite computation time and an infinitely large neural network. The fact that it happened to work well in practice there was likely due to the high degree of stochasticity in the game, automatically creating variety in experience. See also: papers.neurips.cc/paper/1292-why-did-td-gammon-work.pdf $\endgroup$
    – Dennis Soemers
    Commented Sep 16, 2023 at 10:34

Deep Q Learning is a model-free algorithm. In the case of Go (and chess for that matter) the model of the game is very simple and deterministic. It's a perfect information game, so it's trivial to predict the next state given your current state and action (this is the model). They take advantage of this with MCTS to speed up training. I suppose Deep Q Learning would also work, but it would be at a huge disadvantage.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .