Neural Networks and Go
Neural networks (or NNs) are an artificial intelligence technology inspired by the workings of organic brains. They have been found particularly suited to pattern matching and evaluation and have been used to create go-playing systems (AlphaGo) of superhuman ability.
Table of contents |
Sketch of the principles of neural networks
Neural networks consist of many small components (“neurons”) which receive and transmit signals according to rules with adjustable parameters. In a typical application, some neurons are fed with input to be processed, these send signals via intermediate (“hidden”) neurons to a set of output neurons which produce a result for use outside the network.
- For go, one could have as input a position on the board and as output an estimate of the prospective scores or a proposal for one or more moves for consideration.
By adjusting the parameters based on the quality of the output, networks can be “trained” to produce better results. This requires a way of evaluating the results.
- For go, this could be how well the estimated score or suggested move match opinions of professional players; this is the way AlphaGo Master was trained.
- A more ambitious way of evaluating the result is simply to let a system using the network play another version of itself and see how well it scores; this is the approach of AlphaGo Zero.
Go-playing neural networks
Neural networks (NNs) have been successfully implemented for dan-level programs (notably Hira, Dark Forest, Zen, and AlphaGo) since 2015.
Zen reached KGS 7d in early 2016 after implementing DCNN. http://computer-go.org/pipermail/computer-go/2016-January/008541.html
Links to related Papers
Move Evaluation In Go Using Deep Convolutional Neural Networks
There's an article called The Integration of A Priori Knowledge into a Go Playing Neural Network. (Also available here. There's also a PostScript version.)
Another paper on the subject is Co-Evolving a Go-Playing Neural Network.